IDA遇到的坑
jumpout
简介
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的伪代码, 可以发现返回了特定的值

最后更新于