好友
阅读权限25
听众
最后登录1970-1-1
|
在你进行逆向分析,单步跟踪的时候,刚好经过了一个跳转,一下就跳向了失败,或者发现刚好跳过了成功的地方,这时你会怎么做?
以前我都是重新在刚才那个跳转的上方的关键CALL重新下断点,再重新运行一下程序,这样就会停在了下断的地方,就可以重新分析了。
现在我会这样,在想下断的地方,直接右键选择"在此处新建EIP“,可以取代上面的方法。不过这时注意,不是在关键CALL的地方下断,而是要上关键CALL上面的第一个参数的位置下断
比如:
push XXX
push yyyy
call zzz
JNZ wwww
就要选择在PUSH XXX的地方新建EIP,因为CALL是受CALL的参数影响的,如果丢失了参数,CALL运行就会出错。
如果只是想改一个关键跳JNZ nop掉,或者改JMP,或者只改一下寄存器标志位的值 ,那也可以在JNZ的位置新建EIP。
如果你走过了过多的代码,在上一个CALL的参数或JNZ新建EIP有可能也不行。因为你走过的代码,可能会影响本段的执行结果。这时你就要找一个,不会影响执行结果的地方新建EIP的了,这是唯一标准。通常在没有改变本段CALL参数的时候,可以直接在段首新建EIP。如果改变了,那么这个方法就不好使了,只能采用下断点的方法,重新来过了。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|