新手破解练习Crackme160之146 - tc.12

IDR查看注册事件源码:

 Unit1::TForm1.Register1Click
 00446214    push       ebp
 00446215    mov        ebp,esp
 00446217    push       0
 00446219    push       0
 0044621B    push       ebx
 0044621C    push       esi
 0044621D    push       edi
 0044621E    mov        esi,eax
 00446220    xor        eax,eax
 00446222    push       ebp
 00446223    push       446320
 00446228    push       dword ptr fs:[eax]
 0044622B    mov        dword ptr fs:[eax],esp
 0044622E    lea        edx,[ebp-4]
 00446231    mov        eax,dword ptr [esi+2C4]; TForm1.Edit1:TEdit
 00446237    call       TControl.GetText
 0044623C    mov        eax,dword ptr [ebp-4]
 0044623F    call       @LStrLen
 00446244    mov        [004488D4],eax; gvar_004488D4:Longint
 00446249    cmp        dword ptr ds:[4488D4],0; gvar_004488D4:Longint
>00446250    je         00446302
 00446256    xor        ebx,ebx
 00446258    inc        ebx
 00446259    lea        edx,[ebp-4]
 0044625C    mov        eax,dword ptr [esi+2C4]; TForm1.Edit1:TEdit
 00446262    call       TControl.GetText
 00446267    mov        eax,dword ptr [ebp-4]
 0044626A    movzx      eax,byte ptr [eax+ebx-1]
 0044626F    mov        dword ptr [ebx*4+448874],eax; gvar_00448874:TForm1
 00446276    lea        edx,[ebp-4]
 00446279    mov        eax,dword ptr [esi+2C4]; TForm1.Edit1:TEdit
 0044627F    call       TControl.GetText
 00446284    mov        eax,dword ptr [ebp-4]
 00446287    call       @LStrLen
 0044628C    cmp        ebx,eax
<0044628E    jne        00446258
 00446290    call       004461F0
 00446295    mov        eax,4488D8; gvar_004488D8:AnsiString
 0044629A    call       @LStrClr
 0044629F    mov        edi,12
 004462A4    mov        ebx,4488C0; gvar_004488C0
 004462A9    lea        eax,[ebp-8]
 004462AC    mov        dl,byte ptr [ebx]
 004462AE    call       @LStrFromChar
 004462B3    mov        edx,dword ptr [ebp-8]
 004462B6    mov        eax,4488D8; gvar_004488D8:AnsiString
 004462BB    mov        ecx,dword ptr ds:[4488D8]; gvar_004488D8:AnsiString
 004462C1    call       @LStrCat3
 004462C6    inc        ebx
 004462C7    dec        edi
<004462C8    jne        004462A9
 004462CA    mov        eax,[004488D8]; gvar_004488D8:AnsiString
 004462CF    mov        edx,446338; ':倌珊哭}D镶訇I逸迯'
 004462D4    call       @LStrCmp
>004462D9    jne        00446302
 004462DB    mov        eax,dword ptr [esi+2DC]; TForm1.Yeahyoudidit1:TMenuItem
 004462E1    mov        dl,1
 004462E3    call       TMenuItem.SetVisible
 004462E8    mov        eax,dword ptr [esi+2C4]; TForm1.Edit1:TEdit
 004462EE    xor        edx,edx
 004462F0    mov        ecx,dword ptr [eax]
 004462F2    call       dword ptr [ecx+60]; TControl.SetEnabled
 004462F5    mov        eax,dword ptr [esi+2D8]; TForm1.Register1:TMenuItem
 004462FB    xor        edx,edx
 004462FD    call       TMenuItem.SetEnabled
 00446302    xor        eax,eax
 00446304    pop        edx
 00446305    pop        ecx
 00446306    pop        ecx
 00446307    mov        dword ptr fs:[eax],edx
 0044630A    push       446327
 0044630F    lea        eax,[ebp-8]
 00446312    call       @LStrClr
 00446317    lea        eax,[ebp-4]
 0044631A    call       @LStrClr
 0044631F    ret
<00446320    jmp        @HandleFinally
<00446325    jmp        0044630F
 00446327    pop        edi
 00446328    pop        esi
 00446329    pop        ebx
 0044632A    pop        ecx
 0044632B    pop        ecx
 0044632C    pop        ebp
 0044632D    ret

由上可得, 注册码经过算法运算后=":倌珊哭}D镶訇I逸迯" 就成功了~

#include <stdio.h>
#include <string.h>

int main() {
	unsigned char rlt[] = ":倌珊哭}D镶訇I逸迯";
	int tmp;
	for(int i=0; i<9; i++) { //倒序一下 
		tmp = rlt[i];
		rlt[i] = rlt[18 - i - 1];
		rlt[18 - i - 1] = tmp;
	}
	
    for(int i=0; i<18; i++) {
    	tmp = rlt[i];
    	tmp += i + 1 - 8;
    	tmp = tmp >> 1;
    	tmp ^= 3;
    	rlt[i] = tmp;
	}
    printf("注册码: %s\n", rlt);
    
	getchar();getchar();
	return 0;
}

运行结果:
注册码: Good work Cracker!

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

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

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

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

posted @ 2024-08-06 17:40  hankerstudio  阅读(15)  评论(0)    收藏  举报