OD的SFX自跟踪寻找OEP
前言:OD的SFX自跟踪寻找OEP
SFX跟踪
OD程序自带的调式功能,用来寻找相应程序的OEP
SFX法和模拟跟踪法比较相似,只不过SFX是OD本身提供的功能。
SFX法有两种方式,一种是通过判断块的形式看是否到达OEP处,另一种是通过判断字节的形式。显而易见块判断形式速度快但是准确度低,字节形式速度慢但是准确度高。
我们在实际分析时结合具体情况选择合适的方式进行跟踪。
我自己没找到相关SFX跟踪寻找OEP的原理,不过我自己理解了下应该就是跟代码段有关,每单步走都会判断是否来到代码段的地址吧,如果有大佬知道麻烦告知下
使用注意:
1、SFX使用的范围是当程序载入OD之后,入口点必须是代码段之外才可以用,所以当载入加壳程序的EIP是如下代码段的地址(PE中的BaseOfCode字段)之外才可以使用SFX跟踪
如下情况如果要使用SFX跟踪的话,那么壳的入口点就不能是在401000-402000这个地址了
比如如下的情况ASPACK2.12的壳子,这种情况下就可以看到壳子的入口点是在408000,但是代码段是在401000,可以看到SFX都有提示,这种情况下的话可以使用OD的SFX跟踪
2、因为CPU在执行的时候可能会触发异常,被调试器接管了就可能导致中断,可以使用SFX的时候记得忽略所有的异常
块方式跟踪真正入口点
设置完红标处直接运行F9,发现入口点并没有发生变化,还是一样,说明这种确实不准确
字节方式跟踪真正入口点
设置完红标处直接运行F9,发现入口点改变,并且确实来到了OEP处