
结论pwn中的go程序大多数都是静态链接的,所以里面含有大量可以使用的gadget。同时在IDA中,go的主函数一般在最下面(最后几个函数一般是用户自己定义的)。
gopwn一般是栈溢出类型,并且使用rop进行系统调用实现shell获取。
例题题目地址:[NSSRound#2 Able]nohelper | NSSCTF
讲题目放进IDA中后难以找到主函数入口。根据师傅的分析,我们可以一般按照如下的流程找到主函数位置。
主函数定位1.
找到Entry Point.
跟进。
跳到这里
继续跟进。
跳到这里:这里是处理程序的参数和CPU信息初始化等。
继续跟进dufby3r09zexgk。
在dufby3r09zexgk函数中找到3个连续call的汇编位置:找到他们下面的off_4D0030。
跟进off_4D0030查看。
c864jqim4vp6:
跟进c864jqim4vp6。
在c864jqim4vp6找到这个代码块:其中e0ijkhbrz就是主函数。
ok了,到这里就能开始调试了。
程序分析
程序首先让我们输入flag。那我们就需要逆向出这个fl ...