碰到一个64位软件的DLL,尝试用x64dbg打补丁,只改了一个字符串,保存,一切正常,再次开软件就报错。尝试逆向定位报错,结果我懵逼了……在软件调用kernel32的loadlibrary函数处,单步步过,发现被改过的dll可以被加载进来,但是再次查看修改的区域,发现上下有很大一部分代码全部变为了00……
使用二进制查看软件静态查看dll确实是有数据的,也没有问题。这是什么蜜汁操作啊……表示这种防篡改机制真的有点看不懂了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
vaguem 感觉无非像上面说的签名验证,或者crc……
mb_xerhroko 如果是签名验证,系统自带loadlibrary会直接报错吗?我试过把别的程序的dll签名去掉,依然正常运行
b!@nk 你要看你的程序在加载dll的之前有没有进行验证和修改。