新手破解练习Crackme160之098 - CRACKME

这是一个警察抓小偷的游戏~ 按了下面的按钮便会开始倒计时, 计时结束游戏便结束~ Delphi写的, 于是我们就用IDR反编译一下, 看到了一堆的label控件是隐藏的(其实是透明的), 双击对应的控件, 预览界面会显示一下, 那我们就先用资源工具修改一下它的隐藏属性(透明属性), ResScope1.96载入程序, 在左边栏RCData栏目下找到TForm1, 右侧可以看到各控件属性, 如:
object Label1: TLabel
Left = 444
Top = 284
Width = 37
Height = 129
AutoSize = False
Transparent = True
end
我们只要把Transparent = True 改为 Transparent = False, 那这个文本框就会显示出来了, 为了能更清楚的知道是哪个文本框, 我们继续给它添加一行属性 Caption = '1', 这样我们就能明明白白的知道它是哪个了, 改完是这样的:
object Label1: TLabel
Left = 444
Top = 284
Width = 37
Height = 129
AutoSize = False
Transparent = False //这行也可以不要, 默认就是False的
Caption = '1'
end
把所以Label都按这样改掉, 另存为新文件, 运行后发现只能看到部分的label, 再认真看才发现, label1~label4是被panel1挡住了, 在它的下面一层, 想要看得到, 我们可以把1~4移到panel1里面去, 也可以不用管, 因为IDR中可以看到, 这4个没有点击事件, 也就是说没用的, 可以不用管它们, 改后效果如下:

13
6
9 2 3
4
10 7 11
8
1

 

回到IDR, 先把各个事件的入口地址都先整理出来, 后面方便在OD中对应下断点

TForm1的方法有
1). 00459270 TForm1.FormCreate //有好多字符串的定义, 后面可能有用到, 备注一下^_^
2). 00459134 TForm1.Label6Click //内存变量[460867]为1时报太高了
3). 0045D574 TForm1.Label7Click //这里满足[460867]=1和[460869]=1后会打开第二个窗体
4). 0045D694 TForm1.Label10Click //满足[460867][460864][46086E]三个条件后才会有相关提示
5). 00459158 TForm1.Label11Click //有两个条件, 会提示, 判断文件是否存在
6). 0045D67C TForm1.Button1Click //更新变量[460867]为1, 并启动计时器
7). 0045D614 TForm1.Timer1Timer //更新进度条, 结束后打开第三个窗体

TForm2的方法有
1). 00458CD4 TForm2.Button1Click //验证输入串(与固定串对比), 满足相关条件后开第三个窗体

TForm3的方法有
1). 00458A7C TForm3.Timer1Timer //更新进度条与相关提示

TForm1方法的分析中可得, label6点击没用, label7中的[460869]是在label10中设置的, label10中的[460864]又是label11中设置的, 所以点击顺序应该为 label11 -> label10 -> label7, 到此思路整理完了, 开始破解吧~ 转场OD~
  1. label11入口00459158下断点~, 将00459178处的0x1改为0x0, 即可满足条件继续往下, 这里顺便把倒计时的计时器干掉, 来到按钮入口0045D67C, 将0045D68B这行nop掉, 这行是启动计时器的操作, 另存搞定~, 测试发现正常, 但是还是会生成annoy.txt这个文件, 我们继续跟踪看是哪里生成的~ 跟踪发现是004591F5~00459238这几行生成的, 我们跳过它们~ 将004591F5改为 jmp 0045923D, 保存~ 万事大吉了~
     

  2. OD重新载入上一步保存的程序, 来到label10的入口0045D694下好断点, 点击开始按钮,再点label11,成功在label10断点处停下~, 此时[460867] 已经=1了, [46086E] = 0走向失败分支, 所以我们将这行 0045D6BD cmp byte ptr ds:[0x46086E], 0x2 改为 cmp byte ptr ds[0x46086E], 0x0, 保存~
     

  3. OD重新载入上一步保存的程序, 来到label7的入口0045D574, 点击后来弹出了第二个窗体, 所以我们直接来到TForm2的按钮点击事件入口00458CD4, 下了断点, 输入伪码, F8单步跟踪~ 00458D03处输入串与固定串"123-456-789-000"对比~, 这个就是正确码了~ 我们重来验证一下~ 完全正确, 提示门已经打开了~ 再点一次label7, 弹出第二个窗体, 提示输入电脑密码, 我们同理输入一个伪码, 第一个判断失败了, 进入第二个判断也是一个固定串"456-678", 同样也是重来验证一下, 也是对的~ 成功弹出了第三个窗体, 下载文件进度条(当然这里并不是真实下载文件, 是模拟的), 100%后, 弹出程序破解成功~

 
 
 
这是160个软件part1
这是160个软件part2

1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-07-10 09:01  hankerstudio  阅读(23)  评论(0)    收藏  举报