入口之后是不停的跳转,没完没了的,这是个虚拟机,还是别看代码的好,按F9直接运行,
结果提示:A debugger has been found running in your system.Please,unload it from memory and restart your program。
这个时候得想办法拦截它调用API的代码,于是:
BP LoadLibralyA
观察堆栈,得到1826101,在tmd1段内,用IDA分析,能找到这个返回地址被设置
然后顺着可以找到关键的一个点了
利用ret来跳转和调用API,就在这个位置下断1823f64,取消其他断点,然后就可以观察这个壳调用API了
直到:一个调用CloseHanle,句柄为DEADC0DE,然后就导入USER32.dll,调用MessageBoxA,输出发现调试器的信息了,失败
观察调用CloseHanle,句柄为DEADC0DE发现,触发了异常,由壳自己的代码处理了这异常。
于是用脚本修改这个位置的返回值,不触发异常
do_CloseHandle:
sti
cmp [esp+4],DEADC0DE
jne check_1
add eip,50 //API ret 位置
mov eax,0
然后可以继续按F9,观察API调用了
直到调用ZwQueryInformationProcess,