在某爱论坛上看到有个师傅写了个Crackme
关于如何绕过IsDebuggerPresent的反调试的,闲来无事复现调试一下
先上原文链接:https://www.52pojie.cn/thread-1432590...总的来说就是将内存地址虚拟化,我们看到的内存地址并不是真正的内存地址偏移
ASLR的作用
地址空间配置随机加载利用随机方式配置数据地址空间,使某些敏感数据配置到一个恶意程序无法事先获知的地址,令攻击者难以进行攻击...再看真实的入口点:
?
明显不一样
用MFC编译出的64位程序默认是开启ASLR的
关闭ASLR
?
找到可选pe头的DllCharacteristics属性,取消DYNAMIC_BASE
?...说实话,这个伪代码不是很能直接看得懂,看了下原作者的,他调试的是Debug版的,更这个release版的还是有差别的,感觉release版ida很多都识别不了了
附上作者关于密码的源代码
void encodeCString...后记
作为学习反反调试初级,重要的是使用x64 debug和ida pro分析的过程,这个还是很有帮助的。
脑海中又浮现了海哥的话:"没有好的正向基础就不会有好的逆向基础。"
?