* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047BD12(C)
|
:0047BD23 8D45E4 lea eax, dword ptr [ebp-1C];就这里了,从这里开始吧
估计上面就是因为注册码有效才跳这里来的,不然就会显示注册码无效了。。呵呵
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004085D2(C)
|
:004085ED 8BC6 mov eax, esi
:004085EF 83C40C add esp, 0000000C
:004085F2 5E pop esi
:004085F3 5B pop ebx
:004085F4 C3 ret
看起来不复杂。。。
那就看看核心吧。。
靠,太复杂了。。。
call 00402D58
:00402D58 53 push ebx
:00402D59 56 push esi
:00402D5A 57 push edi
:00402D5B 89C6 mov esi, eax
:00402D5D 50 push eax
:00402D5E 85C0 test eax, eax
:00402D60 746C je 00402DCE
:00402D62 31C0 xor eax, eax
:00402D64 31DB xor ebx, ebx
:00402D66 BFCCCCCC0C mov edi, 0CCCCCCC
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402D71(C)
|
:00402D6B 8A1E mov bl, byte ptr [esi]
:00402D6D 46 inc esi
:00402D6E 80FB20 cmp bl, 20
:00402D71 74F8 je 00402D6B
:00402D73 B500 mov ch, 00
:00402D75 80FB2D cmp bl, 2D
:00402D78 7462 je 00402DDC
:00402D7A 80FB2B cmp bl, 2B
:00402D7D 745F je 00402DDE
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DE1(U)
|
:00402D7F 80FB24 cmp bl, 24
:00402D82 745F je 00402DE3
:00402D84 80FB78 cmp bl, 78
:00402D87 745A je 00402DE3
:00402D89 80FB58 cmp bl, 58
:00402D8C 7455 je 00402DE3
:00402D8E 80FB30 cmp bl, 30
:00402D91 7513 jne 00402DA6
:00402D93 8A1E mov bl, byte ptr [esi]
:00402D95 46 inc esi
:00402D96 80FB78 cmp bl, 78
:00402D99 7448 je 00402DE3
:00402D9B 80FB58 cmp bl, 58
:00402D9E 7443 je 00402DE3
:00402DA0 84DB test bl, bl
:00402DA2 7420 je 00402DC4
:00402DA4 EB04 jmp 00402DAA
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402D91(C)
|
:00402DA6 84DB test bl, bl//前面一堆就是在判断是不是数字。。。
:00402DA8 742D je 00402DD7
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402DA4(U), :00402DC2(C)
|
|--------> :00402DAA 80EB30 sub bl, 30//ASCII码-0x30,转数字
| :00402DAD 80FB09 cmp bl, 09
| :00402DB0 7725 ja 00402DD7
| :00402DB2 39F8 cmp eax, edi
| :00402DB4 7721 ja 00402DD7
| :00402DB6 8D0480 lea eax, dword ptr [eax+4*eax]//*5
| :00402DB9 01C0 add eax, eax//*2(并上上面的,不就是*10啊)
| :00402DBB 01D8 add eax, ebx//加到原来的上去
| :00402DBD 8A1E mov bl, byte ptr [esi]
| :00402DBF 46 inc esi
| :00402DC0 84DB test bl, bl
-------- :00402DC2 75E6 jne 00402DAA
整个就是一位位取数,把我们的ASCII的数字变成10进制的。现在你看看你的EAX,是不是很熟悉啊,呵呵,就是出去我们要用的拉,0X4B23526(10进制就是“78787878”)(啊?不会把,这么简单)哈,就这么简单。。后面也不要跟了。。。
我们也可以做注册机了。。。走吧,下面不要看了。。。。。
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DA2(C)
|
:00402DC4 FECD dec ch
:00402DC6 7409 je 00402DD1
:00402DC8 85C0 test eax, eax
:00402DCA 7D54 jge 00402E20
:00402DCC EB09 jmp 00402DD7
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402D60(C), :00402DED(C)
|
:00402DCE 46 inc esi
:00402DCF EB06 jmp 00402DD7
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DC6(C)
|
:00402DD1 F7D8 neg eax
:00402DD3 7E4B jle 00402E20
:00402DD5 7849 js 00402E20
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402DA8(C), :00402DB0(C), :00402DB4(C), :00402DCC(U), :00402DCF(U)
|:00402E05(C), :00402E0C(C)
|
:00402DD7 5B pop ebx
:00402DD8 29DE sub esi, ebx
:00402DDA EB47 jmp 00402E23
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402D78(C)
|
:00402DDC FEC5 inc ch
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402D7D(C)
|
:00402DDE 8A1E mov bl, byte ptr [esi]
:00402DE0 46 inc esi
:00402DE1 EB9C jmp 00402D7F
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402D82(C), :00402D87(C), :00402D8C(C), :00402D99(C), :00402D9E(C)
|
:00402DE3 BFFFFFFF0F mov edi, 0FFFFFFF
:00402DE8 8A1E mov bl, byte ptr [esi]
:00402DEA 46 inc esi
:00402DEB 84DB test bl, bl
:00402DED 74DF je 00402DCE
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402E18(C)
|
:00402DEF 80FB61 cmp bl, 61
:00402DF2 7203 jb 00402DF7
:00402DF4 80EB20 sub bl, 20
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DF2(C)
|
:00402DF7 80EB30 sub bl, 30
:00402DFA 80FB09 cmp bl, 09
:00402DFD 760B jbe 00402E0A
:00402DFF 80EB11 sub bl, 11
:00402E02 80FB05 cmp bl, 05
:00402E05 77D0 ja 00402DD7
:00402E07 80C30A add bl, 0A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DFD(C)
|
:00402E0A 39F8 cmp eax, edi
:00402E0C 77C9 ja 00402DD7
:00402E0E C1E004 shl eax, 04
:00402E11 01D8 add eax, ebx
:00402E13 8A1E mov bl, byte ptr [esi]
:00402E15 46 inc esi
:00402E16 84DB test bl, bl
:00402E18 75D5 jne 00402DEF
:00402E1A FECD dec ch
:00402E1C 7502 jne 00402E20
:00402E1E F7D8 neg eax
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402DCA(C), :00402DD3(C), :00402DD5(C), :00402E1C(C)
|
:00402E20 59 pop ecx
:00402E21 31F6 xor esi, esi
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DDA(U)
|
:00402E23 8932 mov dword ptr [edx], esi
:00402E25 5F pop edi
:00402E26 5E pop esi
:00402E27 5B pop ebx
:00402E28 C3 ret
printf("\t+++++++++++++4nilz Crack+++++++++++++++\n");
printf("\t+tHis Program has FuCkEd bY 4nil......+\n");
printf("\t+just meAn iT Is rbsh....OK share,THX.+\n");
printf("\t+++++++++++++++++++++++++++++++++++++++\n\n");
printf("Enter the machine code:");
scanf("%6X",&n1);