IDA遇到的坑
最后更新于
最后更新于
jumpout是一种对ida起到反调试的手段,如下图所示,出现了jumpout字眼,看不到后面的源码
jumpout出现的原因是程序多余的汇编代码,如下图所示,将loc_4010A8赋给eax, 然后将eax赋值给局部变量, 再跳转到局部变量, 这样的多余的汇编指令会给ida的识别带来反调试的效果
只需将多余的汇编指令nop掉, 直接jump到对应的地址
对jump汇编指令处点击鼠标右键,选择assemble
将局部变量直接修改成地址,然后按回车键
再将多余的汇编指令给nop掉
然后再按下F5,会发现能够识别后面的代码了
在汇编里面的call,通常是通过eax作为返回值,若改成edx作为返回值,则会影响到ida的识别功能,出现如下图所示的情况
进入这个call(函数),查看一下它的汇编,发现edx作为此call的返回值,因此干扰了ida的识别
设置函数调用约定,将此call设置为__usercall类型的调用约定
再次查看此call的伪代码, 可以发现返回了特定的值