新手破解练习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	/

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

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

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

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

posted @ 2024-08-08 16:06  hankerstudio  阅读(12)  评论(0)    收藏  举报