前几天研究一个软件,加密强度不是很大,但在不显眼的N多地方做了手脚,并且出错不提示,能次提示还自绘窗口,用常规APi不太好拦,于是就想到了word里面的查找替换功能,在OD里把源码导出后放到word里,查到83B8940200000B 这样的二进制代三,总共45处限制3分钟搞定.
当然我这次是幸运了,另外一些程序不一定都是相同的代码,但起码是类似的代码,多动动脑子,试着查一下雷同的代码,也许会有意外的收获,这在软件技术难度较大或限制比较多又不明显时,是一个很好的思路。
这种破解思路的出现也给编程提出了新的挑战:我们在多点限制时,不要用相同的判断手法,多变幻一下,也许破解的难度就大一些。比如 我们在这样的语句 if str1='3' then 时我们完全可以改成用把这个字符换成长实数,用10循环除,看小数后的第几位,再用xor检测,这样破解难度成几何系数上升.
附上原软件关键跳部分的源码:
004F7391 |. B8 CC764F00 mov eax, 004F76CC
004F7396 |. E8 01E7F0FF call 00405A9C
004F739B |. 85C0 test eax, eax
004F739D |. 7E 26 jle short 004F73C5
004F739F |. 8B83 E0030000 mov eax, dword ptr [ebx+3E0]
004F73A5 83B8 94020000 0B cmp dword ptr [eax+294], 0B
004F73AC 7E 17 jle short 004F73C5================>关键跳