活着的意义 发表于 2022-11-25 19:49

新人第一次破解软件详细步骤【纪念第一次】

本帖最后由 活着的意义 于 2022-11-25 22:25 编辑

运行环境:
论坛虚拟机WINXP
涉及工具:
OD
教程类型:
新手


历时1周,今天是跟恒大课程学习逆向的第五天,首次破解第一个简单注册程序,有点小激动。
我觉得第一次破解的程序很有意义,虽然对大佬来说这个破解简直就是小儿科,但对我来说是正式开始踏入逆向这一领域的标志,特意写这篇教程做纪念,当做启蒙文章
也送给像我一样刚入门的新人学习{:6_215:}


废话少说,下面开始进入实操


一. 熟悉待破解的软件
1. 打开软件,随便点一下,看软件都有什么操作
      



2. 我们打开注册Register,随便输入用户跟密码点击OK,发现有No luck弹窗,然后点确定,No luck再弹一次,总共有两次错误弹窗
   




3. 已经知道程序是如何 运行,下面我们就开始破解




二. 开始破解软件
1. 打开OD工具,点击左上角文件,打开,然后选择我们需要破解的文件载入OD,或者直接拖入OD也可以,然后放大窗口








2. 鼠标随便点一下,然后右键,选择中文搜索引擎,选择智能搜索




3. 我们看到有注册成功“Great work, mate!\rNow try the next CrackMe!”这行,直接双击,跟随过去看看对应的代码




4.跳到了00401354这行,然后我们看到这行是属于0040134D-00401361这段,我们把鼠标放到该段的第一行,看看它是从哪里调用的,在信息窗口可以看到来自004012C






5. 点击一下信息窗口0040124C这行,右键,选择转到CALL来自0040124C,看到一个call调用,这个call是上面的je条件转跳,我们知道je是根据标志位ZF进行指令转移,如果ZF=1,就跳转,我们要把je直接改成jmp无条件跳转,这样我们注册的时候,不管输入什么都跳到成功注册这里,就能达到破解的目的。鼠标双击je这行,改成jmp








6.改完之后,按F9我们运行一下程序,这时候程序会打开,我们点击注册,随便输入888点击OK,这时候弹出NO luck! ,再点确定就弹出注册成功








7. 很明显,我们破解成功了,但是还有缺陷,因为还会弹出一个No luck窗口,我们还需要去掉这个窗口,在做下一步操作之前,我们先保存一下这个文件,点击右键→复制到可执行文件→所有修改,弹窗选择全部复制,在弹出的绿色窗口点一下,然后右键选择保存文件到自定义目录
保存的时候,可能右键复制到可执行文件那里没有看到 所有修改,这是因为不在当前程序界面了,需要按“-”键返回,这样就会回到可以保存的界面了,如果还没回到需要多按几次








再重新用OD打开刚刚保存的软件,我们再回到第2步,进去中文搜索,进去智能搜索,然后这次我们直接点击第一个 No luck there, mate 双击,然后跳到00401370这行,看右边的注释也是NO luck,说明就是00401362-0040137D这段,同样点击该段第一行,查看调用在哪里,信息窗口显示来自00401245,我们右键,转到CALL跟随过去,call相当于函数,我们要去看看00401362-0040137D这段代码属于哪个函数








8.call定位到了00401245,我们这里没发现没有任何线索了,我试了在这里打断点,运行程序还是弹出报错哪个弹窗,说明这一步找错了,断点没打对才会有弹窗出来,需要重新找{:7_237:}{:7_237:}




9. 这次,我决定给弹出函数打断点,如图在command输入 bp MessageBoxA ,bp是打断点的意思,MessageBoxA是win API函数,作用是用于在用户模块中创建和显示信息框,因为我们点击注册,它就弹出报错窗,在这里打断点肯定不会错,输入完成按回车,然后看到上面有个绿色的B键,我们点击这B进去就能看到我们刚刚打的断点,然后双击进去就会定位到打断点的地方了,现在我们按一下F9运行一下程序重新注册看看








10.注册我们也是输入888,点击ok,可以看到右下角堆栈窗口中显示注册失败的信息,没有弹窗出来了,这是因为我们打了断点,它在这里停了(如果想继续让它运行,可以按F8),我们选择第一行,选择反汇编到窗口中跟随,看看它004013C1处对应的代码,这时候转跳到retn这行(我截图刚好遮住它了),可以看到右边注释就是失败的弹窗信息,然后我点一下该段的第一行 pop esi,看看是哪里调用,发现是上面一个jb转跳过来










11. je是条件转跳,我们想要去除报错的弹窗,那我们就不要它执行这个转跳,所以我们要对这个转跳就行修改,我们在je这行,右键二进制,用nop填充,这样它就不会跳转了,然后按F9再运行一下看看






12. 运行后直接显示注册成功,破解完成,重复运行几次,都无异常,此处应该有花儿{:5_116:}




以上就是一个我这个新手破解第一个软件的思路,磕磕碰碰,破解思路还不是很清晰,不知不觉弄这篇教程都花了两个小时
另外,也希望新人能从这篇文章上学到东西


上面调试的附件如下:








haier8917 发表于 2022-11-25 21:02

寒月 发表于 2022-11-25 20:21
这也太基本了,有没有难度超高的那种

好的,这就给你个软件练练手

禽大师 发表于 2022-11-25 20:21

这也太基本了,有没有难度超高的那种{:5_119:}

五十七 发表于 2022-11-25 20:30

fcguo800 发表于 2022-11-25 20:37

非常不错的经验啊,感谢分享。

活着的意义 发表于 2022-11-25 21:31

寒月 发表于 2022-11-25 20:21
这也太基本了,有没有难度超高的那种

大佬,我这个是启蒙教学{:7_253:},踏出逆向第一步,给跟我一样的小白参考

老飞飞 发表于 2022-11-25 21:35

感谢分享,谢谢

禽大师 发表于 2022-11-25 22:29

haier8917 发表于 2022-11-25 21:02
好的,这就给你个软件练练手

看不懂这有什么用

Cerolluo 发表于 2022-11-25 22:43

继续跟楼主学习!

boot 发表于 2022-11-25 23:21

{:5_193:}这个CM有来头,看图标就知道了。
页: [1] 2 3 4
查看完整版本: 新人第一次破解软件详细步骤【纪念第一次】