分析:
通过附加的文本文件可以知道是想要找到程序入口点(Original Entry Point,OEP)地址,PEiD查了一下加了壳,然后放到OD中分析,注意这里千万不要选择分析:
如果解压了,那么关键代码会消失:
我们采用单步跟踪法进行调试:
使用单步跟踪法追踪OEP的常见步骤:
1、用OD载入待脱壳文件,如果出现压缩提示,选择“不分析代码”;
2、向下单步跟踪,实现向下的跳转;
3、遇到程序往上跳转的时候(包括循环),在回跳的下一句代码上单击并按键盘上的“F4”键跳过回跳指令;
4、OD中的绿色线条表示跳转没有实理,不必理会,红色线条表示跳转已经实现;
5、如果刚载入程序的时候,在附近有一个CALL指令,那么就要按键盘上的“F7”键跟进这个CALL内,不然程序很容易运行起来;
6、在跟踪的时候,如果执行某个CALL指令后就运行,一定要按键盘上的“F7”键进入这个CALL之内再单步跟踪;
7、遇到在popad指令下的远转移指令时,要格处注意,因为这个远转移指令的目的地很可能就是OEP。
载入后程序如下图所示:
然后我们按照单步跟踪法的提示进行操作:
发现这里的跳转范围比较大,于是猜测跳转地址即为OEP,提交为Flag即可。