- UID
- 9910
注册时间2006-3-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
发表于 2006-5-16 14:55:23
|
显示全部楼层
2楼的兄弟可能有错误哦
真确的应该是:
- 这个crackme蛮有意思的分两次
- 第1次要点cancella按钮让它消失使得ok按钮变的好用
- 第2次点ok按钮要让它消失显示下面的图片
- ********************************点 cancella 让 ok 按钮显示***************************************************************
- 00442EA8 >/. 55 push ebp ; 在这设断点~~ <-TPrincipale@CancellaClick
- 00442EA9 |. 8BEC mov ebp, esp
- 00442EAB |. 6A 00 push 0
- 00442EAD |. 53 push ebx
- 00442EAE |. 8BD8 mov ebx, eax
- 00442EB0 |. 33C0 xor eax, eax
- 00442EB2 |. 55 push ebp
- 00442EB3 |. 68 322F4400 push <->System.Proc_00403278>
- 00442EB8 |. 64:FF30 push dword ptr fs:[eax]
- 00442EBB |. 64:8920 mov fs:[eax], esp
- 00442EBE |. 8D55 FC lea edx, [ebp-4]
- 00442EC1 |. 8B83 E0020000 mov eax, [ebx+2E0]
- 00442EC7 >|. E8 F403FEFF call 004232C0 ; ->controls.TControl.GetText(TControl):TCaption;
- 00442ECC |. 8B45 FC mov eax, [ebp-4]
- 00442ECF >|. E8 9C47FCFF call 00407670 ; ->Unit_00406994.Proc_00407670
- 00442ED4 |. 50 push eax
- 00442ED5 |. 8D55 FC lea edx, [ebp-4]
- 00442ED8 |. 8B83 DC020000 mov eax, [ebx+2DC]
- 00442EDE >|. E8 DD03FEFF call 004232C0 ; ->controls.TControl.GetText(TControl):TCaption;
- 00442EE3 |. 8B45 FC mov eax, [ebp-4]
- 00442EE6 |. 5A pop edx
- 00442EE7 >|. E8 08FCFFFF call 00442AF4 ; 算法call
- 00442EEC |. 84C0 test al, al ; 测试al
- 00442EEE 74 1C je short 00442F0C ; 关键跳~~~~~爆破改jnz
- 00442EF0 |. 33D2 xor edx, edx
- 00442EF2 |. 8B83 D0020000 mov eax, [ebx+2D0]
- 00442EF8 >|. E8 B302FEFF call 004231B0 ; ->controls.TControl.SetVisible(TControl;Boolean);
- 00442EFD |. B2 01 mov dl, 1
- 00442EFF |. 8B83 CC020000 mov eax, [ebx+2CC]
- 00442F05 |. 8B08 mov ecx, [eax]
- 00442F07 |. FF51 60 call [ecx+60]
- 00442F0A |. EB 10 jmp short 00442F1C
- 00442F0C |> BA 482F4400 mov edx, 00442F48
- 00442F11 |. 8B83 E0020000 mov eax, [ebx+2E0]
- 00442F17 >|. E8 D403FEFF call 004232F0 ; ->controls.TControl.SetText(TControl;TCaption);
- 00442F1C |> 33C0 xor eax, eax
- 00442F1E |. 5A pop edx
- 00442F1F |. 59 pop ecx
- 00442F20 |. 59 pop ecx
- 00442F21 |. 64:8910 mov fs:[eax], edx
- 00442F24 |. 68 392F4400 push 00442F39
- 00442F29 |> 8D45 FC lea eax, [ebp-4]
- 00442F2C >|. E8 8708FCFF call 004037B8 ; ->System.Proc_004037B8
- 00442F31 \. C3 retn
- ****************跟入上面(00442EE7)的call***********************************************
- 00442AF4 /$ 55 push ebp
- 00442AF5 |. 8BEC mov ebp, esp
- 00442AF7 |. 83C4 F8 add esp, -8
- 00442AFA |. 53 push ebx
- 00442AFB |. 56 push esi
- 00442AFC |. 8955 F8 mov [ebp-8], edx
- 00442AFF |. 8945 FC mov [ebp-4], eax
- 00442B02 |. 8B45 FC mov eax, [ebp-4]
- 00442B05 |. E8 DE10FCFF call 00403BE8
- 00442B0A |. 33C0 xor eax, eax
- 00442B0C |. 55 push ebp
- 00442B0D |. 68 902B4400 push 00442B90
- 00442B12 |. 64:FF30 push dword ptr fs:[eax]
- 00442B15 |. 64:8920 mov fs:[eax], esp
- 00442B18 |. 8B45 FC mov eax, [ebp-4]
- 00442B1B |. E8 140FFCFF call 00403A34 ; 取用户名的位数
- 00442B20 |. 83F8 05 cmp eax, 5 ; 位数与5比较
- 00442B23 |. 7E 53 jle short 00442B78 ; 小于等于就跳~~
- 00442B25 |. 8B45 FC mov eax, [ebp-4] ; 用户名放到eax中
- 00442B28 |. 0FB640 04 movzx eax, byte ptr [eax+4] ; 把用户名第5位放到eax中
- 00442B2C |. B9 07000000 mov ecx, 7 ; 把7放到ecx
- 00442B31 |. 33D2 xor edx, edx ; edx清0
- 00442B33 |. F7F1 div ecx ; EAX1=EAX / ECX(7) 余数放edx
- 00442B35 |. 8BC2 mov eax, edx ; EAX2=EDX=余数
- 00442B37 |. 83C0 02 add eax, 2 ; EAX3=EAX2+2
- 00442B3A |. E8 E1FEFFFF call 00442A20 ; eax=把EAX3里的数 逐位相乘
- 00442B3F |. 8BF0 mov esi, eax ; 把eax放到esi中
- 00442B41 |. 33DB xor ebx, ebx ; ebx清0
- 00442B43 |. 8B45 FC mov eax, [ebp-4] ; 把用户名放到eax
- 00442B46 |. E8 E90EFCFF call 00403A34 ; 在取用户名的位数
- 00442B4B |. 85C0 test eax, eax ; 测试 位数
- 00442B4D |. 7E 16 jle short 00442B65 ; 小于等于0就跳
- 00442B4F |. BA 01000000 mov edx, 1 ; 把1放到edx中
- 00442B54 |> 8B4D FC /mov ecx, [ebp-4] ; 把用户名放到ecx中
- 00442B57 |. 0FB64C11 FF |movzx ecx, byte ptr [ecx+edx>; 取用户名第1位 放到ecx中
- 00442B5C |. 0FAFCE |imul ecx, esi ; ECX=ECX*ESI(上面算的值)
- 00442B5F |. 03D9 |add ebx, ecx ; EBX=EBX(0)+ECX
- 00442B61 |. 42 |inc edx ; EDX+1
- 00442B62 |. 48 |dec eax ; EAX-1
- 00442B63 |.^ 75 EF \jnz short 00442B54 ; 没有计算完就继续
- 00442B65 |> 2B5D F8 sub ebx, [ebp-8] ; ebx=计算好的(ebx)中的值-输入的假码
- 00442B68 |. 81FB 697A0000 cmp ebx, 7A69 ; ebx与7A69比较
- 00442B6E 74 04 je short 00442B74 ; 不相等就跳~~~~~~~
- 00442B70 |. B3 01 mov bl, 1 ; 相等就把bl赋值1
- 00442B72 |. EB 06 jmp short 00442B7A
- 00442B74 |> 33DB xor ebx, ebx
- 00442B76 |. EB 02 jmp short 00442B7A
- 00442B78 |> 33DB xor ebx, ebx
- 00442B7A |> 33C0 xor eax, eax
- 00442B7C |. 5A pop edx
- 00442B7D |. 59 pop ecx
- 00442B7E |. 59 pop ecx
- 00442B7F |. 64:8910 mov fs:[eax], edx
- 00442B82 |. 68 972B4400 push 00442B97
- 00442B87 |> 8D45 FC lea eax, [ebp-4]
- 00442B8A |. E8 290CFCFF call 004037B8
- 00442B8F \. C3 retn
- 第1次总结:
- Nome:fantasy
- Codice:30531223
- ****************************点 oK 让下面的 图片全显示*****************************************************
- 00442D64 >/. 55 push ebp ; 在这设断点~~<-TPrincipale@OkClick
- 00442D65 |. 8BEC mov ebp, esp
- 00442D67 |. 6A 00 push 0
- 00442D69 |. 53 push ebx
- 00442D6A |. 8BD8 mov ebx, eax
- 00442D6C |. 33C0 xor eax, eax
- 00442D6E |. 55 push ebp
- 00442D6F |. 68 ED2D4400 push <->System.Proc_00403278>
- 00442D74 |. 64:FF30 push dword ptr fs:[eax]
- 00442D77 |. 64:8920 mov fs:[eax], esp
- 00442D7A |. 8B83 D0020000 mov eax, [ebx+2D0]
- 00442D80 |. 8078 47 01 cmp byte ptr [eax+47], 1
- 00442D84 |. 75 12 jnz short 00442D98
- 00442D86 |. BA 002E4400 mov edx, 00442E00
- 00442D8B |. 8B83 E0020000 mov eax, [ebx+2E0]
- 00442D91 >|. E8 5A05FEFF call 004232F0 ; ->controls.TControl.SetText(TControl;TCaption);
- 00442D96 |. EB 3F jmp short 00442DD7
- 00442D98 |> 8D55 FC lea edx, [ebp-4]
- 00442D9B |. 8B83 E0020000 mov eax, [ebx+2E0]
- 00442DA1 >|. E8 1A05FEFF call 004232C0 ; ->controls.TControl.GetText(TControl):TCaption;
- 00442DA6 |. 8B45 FC mov eax, [ebp-4]
- 00442DA9 >|. E8 C248FCFF call 00407670 ; ->Unit_00406994.Proc_00407670
- 00442DAE |. 50 push eax
- 00442DAF |. 8D55 FC lea edx, [ebp-4]
- 00442DB2 |. 8B83 DC020000 mov eax, [ebx+2DC]
- 00442DB8 >|. E8 0305FEFF call 004232C0 ; ->controls.TControl.GetText(TControl):TCaption;
- 00442DBD |. 8B45 FC mov eax, [ebp-4]
- 00442DC0 |. 5A pop edx
- 00442DC1 >|. E8 DAFDFFFF call 00442BA0 ; 算法call
- 00442DC6 |. 84C0 test al, al ; 测试al
- 00442DC8 |. 74 0D je short 00442DD7 ; 是0就跳~~~
- 00442DCA |. 33D2 xor edx, edx
- 00442DCC |. 8B83 CC020000 mov eax, [ebx+2CC]
- 00442DD2 >|. E8 D903FEFF call 004231B0 ; ->controls.TControl.SetVisible(TControl;Boolean);
- 00442DD7 |> 33C0 xor eax, eax
- 00442DD9 |. 5A pop edx
- 00442DDA |. 59 pop ecx
- 00442DDB |. 59 pop ecx
- 00442DDC |. 64:8910 mov fs:[eax], edx
- 00442DDF |. 68 F42D4400 push 00442DF4
- 00442DE4 |> 8D45 FC lea eax, [ebp-4]
- 00442DE7 >|. E8 CC09FCFF call 004037B8 ; ->System.Proc_004037B8
- 00442DEC \. C3 retn
- ***************************跟入上面00442DC1的算法call********************************************
- 00442BA0 /$ 55 push ebp
- 00442BA1 |. 8BEC mov ebp, esp
- 00442BA3 |. 6A 00 push 0
- 00442BA5 |. 6A 00 push 0
- 00442BA7 |. 6A 00 push 0
- 00442BA9 |. 53 push ebx
- 00442BAA |. 56 push esi
- 00442BAB |. 8BF2 mov esi, edx
- 00442BAD |. 8945 FC mov [ebp-4], eax
- 00442BB0 |. 8B45 FC mov eax, [ebp-4]
- 00442BB3 |. E8 3010FCFF call 00403BE8
- 00442BB8 |. 33C0 xor eax, eax
- 00442BBA |. 55 push ebp
- 00442BBB |. 68 672C4400 push 00442C67
- 00442BC0 |. 64:FF30 push dword ptr fs:[eax]
- 00442BC3 |. 64:8920 mov fs:[eax], esp
- 00442BC6 |. 33DB xor ebx, ebx
- 00442BC8 |. 8D55 F8 lea edx, [ebp-8]
- 00442BCB |. 8BC6 mov eax, esi
- 00442BCD |. E8 6E4AFCFF call 00407640
- 00442BD2 |. 8D45 F4 lea eax, [ebp-C]
- 00442BD5 |. 8B55 F8 mov edx, [ebp-8]
- 00442BD8 |. E8 730CFCFF call 00403850
- 00442BDD |. 8B45 F8 mov eax, [ebp-8]
- 00442BE0 |. E8 4F0EFCFF call 00403A34
- 00442BE5 |. 83F8 05 cmp eax, 5 ; 注册码要大于5位
- 00442BE8 |. 7E 60 jle short 00442C4A
- 00442BEA |. 8B45 F8 mov eax, [ebp-8] ; 假码放到eax
- 00442BED |. E8 420EFCFF call 00403A34
- 00442BF2 |. 8BF0 mov esi, eax ; 把注册码的个数放到esi中
- 00442BF4 |. 83FE 01 cmp esi, 1 ; 与1比较
- 00442BF7 |. 7C 2F jl short 00442C28 ; 小于就跳
- 00442BF9 |> 8D45 F4 /lea eax, [ebp-C]
- 00442BFC |. E8 0310FCFF |call 00403C04
- 00442C01 |. 8D4430 FF |lea eax, [eax+esi-1]
- 00442C05 |. 50 |push eax ; EAX压栈
- 00442C06 |. 8B45 F8 |mov eax, [ebp-8]
- 00442C09 |. 0FB64430 FF |movzx eax, byte ptr [eax+esi-1] ; 把注册码最后1位放到eax中
- 00442C0E |. F7E8 |imul eax ; eax=eax*eax 0C40
- 00442C10 |. 0FBFC0 |movsx eax, ax
- 00442C13 |. F7EE |imul esi ; EAX=EAX*ESI(个数) 6200
- 00442C15 |. B9 19000000 |mov ecx, 19 ; 0x19放到ECX 中
- 00442C1A |. 99 |cdq ; edx清0
- 00442C1B |. F7F9 |idiv ecx ; EAX=EAX / ECX(0x19) 余数放到EDX
- 00442C1D |. 83C2 41 |add edx, 41 ; EDX=EDX(余数)+0x41
- 00442C20 |. 58 |pop eax ; 弹出EAX
- 00442C21 |. 8810 |mov [eax], dl ; 把DL 放到[EAX]中 ‘N’
- 00442C23 |. 4E |dec esi ; ESI-1
- 00442C24 |. 85F6 |test esi, esi ; 测试 ESI
- 00442C26 |.^ 75 D1 \jnz short 00442BF9 ; 不是0就跳
- 00442C28 |> 8B45 F4 mov eax, [ebp-C] ; 把计算好的值放到eax中(在这可以做内存注册机)
- 00442C2B |. 8B55 FC mov edx, [ebp-4] ; 把假值放到edx中
- 00442C2E |. E8 110FFCFF call 00403B44 ; 比较(经典)
- 00442C33 |. 75 17 jnz short 00442C4C ; 不相等就挂~~~
- 00442C35 |. 8B45 FC mov eax, [ebp-4]
- 00442C38 |. 8B55 F4 mov edx, [ebp-C]
- 00442C3B |. E8 040FFCFF call 00403B44
- 00442C40 |. 75 04 jnz short 00442C46
- 00442C42 |. B3 01 mov bl, 1
- 00442C44 |. EB 06 jmp short 00442C4C
- 00442C46 |> 33DB xor ebx, ebx
- 00442C48 |. EB 02 jmp short 00442C4C
- 00442C4A |> 33DB xor ebx, ebx
- 00442C4C |> 33C0 xor eax, eax
- 00442C4E |. 5A pop edx
- 00442C4F |. 59 pop ecx
- 00442C50 |. 59 pop ecx
- 00442C51 |. 64:8910 mov fs:[eax], edx
- 00442C54 |. 68 6E2C4400 push 00442C6E
- 00442C59 |> 8D45 F4 lea eax, [ebp-C]
- 00442C5C |. BA 03000000 mov edx, 3
- 00442C61 |. E8 760BFCFF call 004037DC
- 00442C66 \. C3 retn
- 第2次总结:
- Nome:BADQUVAN
- Codice:12345678
- **********************************************
- 完美破解:
- 第1次点cancell按钮
- Nome:fantasy
- Codice:30531223
- 第2次:点ok按钮
- Nome:BADQUVAN
- Codice:12345678
-
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|