本人菜鸟,自己分析一个软件的破解,和你们分享一下: 这个是分析软件: Acid burn.zip 应用程序Acid burn.exe的分析文档 运行界面截图: 1、打开后,首先是一个NAG窗口2、点击“确定”后,出现真正的程序运行界面 图中1、2处,分别是不同的选择项入口执行不同的程序 现在我们进入1中: 现在进入2中:3、首先取消NAG窗口弹出 (1)使用OD载入程序 (2)调用这个函数后,弹出NAG窗口信息,直接F8执行窗口,执行到返回,看看是哪一个函数在调用这个函数 返回后,可以看到一个关键跳转je 据分析可知,如果跳转成功,就不能跳转出来Nag窗口,如果跳转不满足条件,就出现NAG窗口 所以修改je为JMP就可以防止NAG窗口出现 保存修改为Acid burn1.exe,打开此文件,可以看到NAG窗口已经消除 4、使用OD载入程序,在提示输出错误的地方F2下断点,找到下面的断点断在提示错误的之前的代码段,输入验证name和序列号,点击”Chek it Baby!”如下: 分析反汇编代码看看: 可以判断出,输入name至少为4位数,如果大于等于4位数就会绕过第一个错误提示,反之提示错误信息接着分析:(主要算法) 其实这段代码就是:取出输入的name的第一个字符设置为X, 设Y= X*29*2村放进固定地址431750中,我们来看看下面的信息: 将Y转化成十进制后,会经过CALL 004039AC、CALL 0041AA58 加上一些信息得到真实序列号:如下图这个正是正确的注册码,测试一下:二、下面分析,只有Serial部分的 载入OD中,在“查找所有参考字符串文本”中,找到Failed!和 Try Again!!字样的语句,双击后:和上一个差不多,可以F2下段如图所示,沿着断点向上F8步过,可以很容易的分析出来,原来此处是固定的Serial: 来验证一下: 亲们请多多指教
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)