chuiyan121 发表于 2022-3-17 22:29

The050. 反汇编练习,适合破解新手的160个CrackMe [006] 之 [汉化+爆破]

本帖最后由 chuiyan121 于 2022-3-17 22:39 编辑


The050. 反汇编练习,适合破解新手的160个CrackMe 之 [汉化+爆破]
反汇编实战练手,下面是我的学习记录,如有疑问欢迎交流指正。^_^

被试程序合集下载:帖子https://www.52pojie.cn/thread-1598336-1-1.html

0x0、程序无壳,Delphi语言编写。主程序一堆说明,不方便查看,着手汉化一下,顺便巩固一下汉化工具用法。
https://s1.ax1x.com/2022/03/17/qPy34K.png

0x2、使用ResScope工具对程序界面进行汉化,移动控件位置等,下图除了关于-帮助按钮的弹窗没有汉化外,其他的都翻译过来了。
https://s1.ax1x.com/2022/03/17/qPyMH1.png

0x3、弹窗的内容是存储在程序里的,一般资源工具看不到,记得原来在OD里修改过弹窗内容,开始OD载入,Ctrl+D搜索字符串,拉到最下面,发现了弹窗的内容,双击转到反汇编窗口,
https://s1.ax1x.com/2022/03/17/qPylAx.png

0x4、逐句翻译英文提示的方法:反汇编窗口右键->数据窗口跟随->立即数,在数据窗口选中要修改的内容,Ctrl+E编辑数据,在ASCII编辑框内输入内容,或者右键粘贴内容,多余的内容不要用空格代替,在HEX编辑框用二进制00代替。
https://s1.ax1x.com/2022/03/17/qPy1N6.png

0x5、修改完成,测试一下,中文还是亲切多了。
https://s1.ax1x.com/2022/03/17/qPyG9O.png

0x6、DeDe载入1.exe,看到程序有10个事件。
https://s1.ax1x.com/2022/03/17/qPytjH.png

0x7、根据作者要求,去掉【确定】和【清除注册码】按钮才算达成目标。首先用爆破方式看看能否实现,先解决【清除注册码】按钮,因为它是可用的,而【确定】按钮是灰色,后一步在处理。按照DeDe中的【清除注册码】按钮单击事件(CancellaClick事件)的RVA地址00442EA8,在OD中Ctrl+G转到此事件的函数头,F2下断。
https://s1.ax1x.com/2022/03/17/qPyJ3D.png

0x8、F9运行,输入假码,点击【Cancella】按钮,OD断在00442EA8处。这里程序界面还原成英文界面了,因为我重装了系统,没有保存原UDD文件,这里节约时间就不再汉化了。
https://s1.ax1x.com/2022/03/17/qPyYge.png

0x9、查看DeDe中的分析注释,00442EF8处为设置按钮可见的代码,上面00442EEE处的JE跳转跳过了这个设置,因此不能让他跳,直接NOP掉,保存文件为1.exe。
https://s1.ax1x.com/2022/03/17/qPyUud.png

0xA、运行1.exe,输入假码,点击【Cancella】按钮,发现这个按钮自动隐藏了,目标实现。惊喜的发现【OK】按钮居然被激活了。
https://s1.ax1x.com/2022/03/17/qPy0Et.png

0xB、继续来解决【OK】按钮隐藏。按照DeDe中的【确定】按钮单击事件(OkClick事件)的RVA地址00442D64,在OD载入1.exe,反汇编窗口Ctrl+G转到此事件的函数头,F2下断。
https://s1.ax1x.com/2022/03/17/qPydHI.png

0xC、F9运行,输入假码,点击【Cancella】按钮使其隐藏并激活【Ok】按钮,点击【Ok】按钮,OD断在函数头。
https://s1.ax1x.com/2022/03/17/qPyBUP.png

0xD、同样的方法,找到跳过设置按钮可见的关键跳,NOP掉,保存文件为2.exe。
https://s1.ax1x.com/2022/03/17/qPyD4f.png

0xE、运行2.exe,随便输入任何假码,点击【Cancella】按钮,然后点击【Ok】按钮,全部隐藏了,爆破成功。
https://s1.ax1x.com/2022/03/17/qPysC8.png

在此感谢@海天一色001大牛提供的思路。



chuiyan121 发表于 2022-3-18 12:05

ongp1347 发表于 2022-3-18 11:54
大佬 您的破解方法很强大 值得学习
另外 想问您 除了 DeDe 反编译 Delphi 程序外 还有其它反编译 ...

我是使用的Poner大牛提供的工具包里的DeDe,还有一个Delphidecompiler,功能类似。也可用到网络上找找看。

ongp1347 发表于 2022-3-18 14:52

chuiyan121 发表于 2022-3-18 12:05
我是使用的Poner大牛提供的工具包里的DeDe,还有一个Delphidecompiler,功能类似。也可用到网络上找找看 ...

好的 谢谢了

lishufeng 发表于 2022-3-17 22:38

chuiyan121 发表于 2022-3-17 22:40

lishufeng 发表于 2022-3-17 22:38
这个有难度

是的,追码下集再发,篇幅有点长{:1_918:}

lizooo 发表于 2022-3-17 22:45

看完之后不是特别懂,动手尝试一下看看{:17_1073:}

joker12581 发表于 2022-3-17 22:50

有点难度

joker12581 发表于 2022-3-17 22:50

有点难度

icjhao 发表于 2022-3-18 07:48

感觉要入门确实挺难的

iloveasdl 发表于 2022-3-18 08:39

感觉要入门确实挺难的

我今天是大佬 发表于 2022-3-18 09:12

感谢分享, 学习了

youyier 发表于 2022-3-18 09:34


感谢分享, 学习了
页: [1] 2 3
查看完整版本: The050. 反汇编练习,适合破解新手的160个CrackMe [006] 之 [汉化+爆破]