新手破解练习Crackme160之149 - tc.17
IDR查看源码, check事件分析:
Unit1::TForm1.Button1Click
004402EC push ebx
004402ED mov ebx,eax
004402EF mov eax,dword ptr [ebx+308]; TForm1.CheckBox14:TCheckBox
004402F5 mov edx,dword ptr [eax]
004402F7 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
004402FD test al,al
>004402FF jne 004403EB
00440305 mov eax,dword ptr [ebx+310]; TForm1.CheckBox16:TCheckBox
0044030B mov edx,dword ptr [eax]
0044030D call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
00440313 test al,al
>00440315 jne 004403EB
0044031B mov eax,dword ptr [ebx+31C]; TForm1.CheckBox19:TCheckBox
00440321 mov edx,dword ptr [eax]
00440323 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
00440329 test al,al
>0044032B jne 004403EB
00440331 mov eax,dword ptr [ebx+320]; TForm1.CheckBox20:TCheckBox
00440337 mov edx,dword ptr [eax]
00440339 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
0044033F test al,al
>00440341 jne 004403EB
00440347 mov eax,dword ptr [ebx+324]; TForm1.CheckBox21:TCheckBox
0044034D mov edx,dword ptr [eax]
0044034F call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
00440355 test al,al
>00440357 jne 004403EB
0044035D mov eax,dword ptr [ebx+328]; TForm1.CheckBox22:TCheckBox
00440363 mov edx,dword ptr [eax]
00440365 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
0044036B test al,al
>0044036D jne 004403EB
0044036F mov eax,dword ptr [ebx+330]; TForm1.CheckBox24:TCheckBox
00440375 mov edx,dword ptr [eax]
00440377 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
0044037D test al,al
>0044037F jne 004403EB
00440381 mov eax,dword ptr [ebx+304]; TForm1.CheckBox13:TCheckBox
00440387 mov edx,dword ptr [eax]
00440389 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
0044038F test al,al
>00440391 je 004403EB
00440393 mov eax,dword ptr [ebx+30C]; TForm1.CheckBox15:TCheckBox
00440399 mov edx,dword ptr [eax]
0044039B call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
004403A1 test al,al
>004403A3 je 004403EB
004403A5 mov eax,dword ptr [ebx+314]; TForm1.CheckBox17:TCheckBox
004403AB mov edx,dword ptr [eax]
004403AD call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
004403B3 test al,al
>004403B5 je 004403EB
004403B7 mov eax,dword ptr [ebx+318]; TForm1.CheckBox18:TCheckBox
004403BD mov edx,dword ptr [eax]
004403BF call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
004403C5 test al,al
>004403C7 je 004403EB
004403C9 mov eax,dword ptr [ebx+32C]; TForm1.CheckBox23:TCheckBox
004403CF mov edx,dword ptr [eax]
004403D1 call dword ptr [edx+0B8]; TCustomCheckBox.GetChecked
004403D7 test al,al
>004403D9 je 004403EB
004403DB mov edx,4403F8; 'Registered'
004403E0 mov eax,dword ptr [ebx+2D0]; TForm1.Panel2:TPanel
004403E6 call TControl.SetText
004403EB pop ebx
004403EC ret
分析可得, CheckBox13,CheckBox15,CheckBox17,CheckBox18,CheckBox23这几个选中才能注册成功, 其它不选中, (代码中找JE), 程序中操作可知, 右边要选中, 得操作左边, IDR查看可知, 所有选框事件都是set_up, 进入代码分析(代码有点长就不贴了, 比较简单都能看懂), 翻译出来就是:
CheckBox1选中, 则右侧: CheckBox18、CheckBox23选中,CheckBox15、CheckBox24未选中
CheckBox2选中, 则右侧: CheckBox14、CheckBox17选中,CheckBox15、CheckBox24未选中
CheckBox3选中, 则右侧: CheckBox13、CheckBox22选中,CheckBox17、CheckBox14未选中
CheckBox4选中, 则右侧: CheckBox16、CheckBox18选中,CheckBox22、CheckBox13未选中
CheckBox5选中, 则右侧: CheckBox19、CheckBox20选中,CheckBox22、CheckBox18未选中
CheckBox6选中, 则右侧: CheckBox13、CheckBox14选中,CheckBox15、CheckBox16未选中
CheckBox7选中, 则右侧: CheckBox21、CheckBox23选中,CheckBox24、CheckBox16未选中
CheckBox8选中, 则右侧: CheckBox24、CheckBox17选中,CheckBox13、CheckBox15未选中
CheckBox9选中, 则右侧: CheckBox15、CheckBox23选中,CheckBox13、CheckBox14未选中
CheckBox10选中,则右侧: CheckBox16、CheckBox18选中,CheckBox23、CheckBox13未选中
CheckBox11选中,则右侧: CheckBox17、CheckBox14选中,CheckBox16、CheckBox21未选中
CheckBox12选中,则右侧: CheckBox18、CheckBox13选中,CheckBox24、CheckBox22未选中
所以
CheckBox13要选中可选择左侧的CheckBox3, CheckBox6, CheckBox12
CheckBox15要选中可选择左侧的CheckBox9
CheckBox17要选中可选择左侧的CheckBox2, CheckBox8, CheckBox11
CheckBox18要选中可选择左侧的CheckBox1, CheckBox4, CheckBox10, CheckBox12
CheckBox23要选中可选择左侧的CheckBox1, CheckBox7, CheckBox9
优先我们可以选中CheckBox9, 因为CheckBox15只有这个能选中, 同时也选中了CheckBox23
还剩下CheckBox13, CheckBox17, CheckBox18 这三个, CheckBox6中会把CheckBox15取消, CheckBox3又会把CheckBox17取消, 所以只能选CheckBox12, 同时也选中CheckBox18
现在还剩下一个CheckBox17, 这个有三个, 直接程序中分别测试, 可得, CheckBox2, CheckBox8都满足要求
所以, 答案就是CheckBox2或CheckBox8 加上 CheckBox9 和 CheckBox12
左侧的控件作者没有按顺序排, 右侧是按顺序排的, IDR中可分析出顺序, 如下:
1 2 3 4 13 14 15 16
5 7 8 9 17 18 19 20
6 10 11 12 21 22 23 24
答案图形:
0 / 0 0
0 0 / /
0 0 0 /
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号