因为豪杰屏幕录像机2.0的注册码是采用4个部分的明文比较,似乎和超级解霸3000
一样,所以粗略的跟了一下.后面附注册码.
直接运行AuthReg.exe,就是要我们注册的东东.
我们输入信息如下:
用户名:poppig
注册码:1234-5678-9abc-edfg
我们下断点GetWindowTextA,我在trw2000下拦截的很好,但是在Onllydbg下却死
机,不知道是什么原因.
:0040249A A134CC4000 mov eax, dword ptr [0040CC34]
:0040249F 8D542409 lea edx, dword ptr [esp+09]
:004024A3 6A08 push 00000008
:004024A5 52 push edx
:004024A6 50 push eax
:004024A7 FFD6 call esi
:004024A9 8B1540CC4000 mov edx, dword ptr [0040CC40]
:004024AF 8D4C240E lea ecx, dword ptr [esp+0E]
:004024B3 6A08 push 00000008
:004024B5 51 push ecx
:004024B6 52 push edx
:004024B7 FFD6 call esi
:004024B9 8B0D3CCC4000 mov ecx, dword ptr [0040CC3C]
:004024BF 8D442413 lea eax, dword ptr [esp+13]
:004024C3 6A08 push 00000008
:004024C5 50 push eax
:004024C6 51 push ecx
:004024C7 FFD6 call esi
:004024C9 8B1530CC4000 mov edx, dword ptr [0040CC30]
:004024CF 6800010000 push 00000100
:004024D4 B02D mov al, 2D ;加上'-'
:004024D6 6880CD4000 push 0040CD80
:004024DB 52 push edx
:004024DC 8844241E mov byte ptr [esp+1E], al
:004024E0 88442419 mov byte ptr [esp+19], al
:004024E4 88442414 mov byte ptr [esp+14], al
:004024E8 C644242300 mov [esp+23], 00
:004024ED FFD6 call esi
:004024EF A158C74000 mov eax, dword ptr [0040C758]
:004024F4 5E pop esi
:004024F5 85C0 test eax, eax
:004024F7 740E je 00402507 ;是否为空
:004024F9 8D4C2400 lea ecx, dword ptr [esp]
:004024FD 51 push ecx
:004024FE 6880CD4000 push 0040CD80
:00402503 FFD0 call eax ;关键call跟进
注册算法关键(00402503处的关键Call)....
0167:100010A0 83EC20 SUB ESP,BYTE +20
0167:100010A3 56 PUSH ESI
0167:100010A4 57 PUSH EDI
0167:100010A5 B908000000 MOV ECX,08
0167:100010AA 33C0 XOR EAX,EAX
0167:100010AC 8D7C2408 LEA EDI,[ESP+08]
0167:100010B0 F3AB REP STOSD
0167:100010B2 8B44242C MOV EAX,[ESP+2C]
0167:100010B6 50 PUSH EAX
0167:100010B7 E8A4010000 CALL 10001260
0167:100010BC 83C404 ADD ESP,BYTE +04
0167:100010BF 89442408 MOV [ESP+08],EAX
0167:100010C3 33F6 XOR ESI,ESI
0167:100010C5 0FBE443408 MOVSX EAX,BYTE [ESP+ESI+08]
0167:100010CA 83F841 CMP EAX,BYTE +41
0167:100010CD 7C08 JL 100010D7
0167:100010CF 83F85A CMP EAX,BYTE +5A
0167:100010D2 7F03 JG 100010D7
0167:100010D4 83C020 ADD EAX,BYTE +20
0167:100010D7 50 PUSH EAX
0167:100010D8 E833020000 CALL 10001310
0167:100010DD 83C404 ADD ESP,BYTE +04
0167:100010E0 88443408 MOV [ESP+ESI+08],AL
0167:100010E4 46 INC ESI
0167:100010E5 83FE04 CMP ESI,BYTE +04
0167:100010E8 7CDB JL 100010C5 ;循环计算注册码第一部分
0167:100010EA 8B7C2430 MOV EDI,[ESP+30]
0167:100010EE 8D4C2408 LEA ECX,[ESP+08]
0167:100010F2 8BF7 MOV ESI,EDI
0167:100010F4 33D2 XOR EDX,EDX
0167:100010F6 2BF1 SUB ESI,ECX
0167:100010F8 8D4C1408 LEA ECX,[ESP+EDX+08] ;d esp+edx+8 即真正注册码
0167:100010FC 0FBE040E MOVSX EAX,BYTE [ESI+ECX]
0167:10001100 83F841 CMP EAX,BYTE +41
0167:10001103 7C08 JL 1000110D
0167:10001105 83F85A CMP EAX,BYTE +5A
0167:10001108 7F03 JG 1000110D
0167:1000110A 83C020 ADD EAX,BYTE +20
0167:1000110D 0FBE09 MOVSX ECX,BYTE [ECX]
0167:10001110 3BC1 CMP EAX,ECX
0167:10001112 0F8532010000 JNZ NEAR 1000124A
0167:10001118 42 INC EDX
0167:10001119 83FA04 CMP EDX,BYTE +04
0167:1000111C 7CDA JL 100010F8 ;第一部分循环逐位比较
0167:1000111E 8B442408 MOV EAX,[ESP+08]
0167:10001122 8D1440 LEA EDX,[EAX+EAX*2]
0167:10001125 8D0C9509000000 LEA ECX,[EDX*4+09]
0167:1000112C 0FAFC8 IMUL ECX,EAX
0167:1000112F 894C240C MOV [ESP+0C],ECX
0167:10001133 33F6 XOR ESI,ESI
0167:10001135 8A54340C MOV DL,[ESP+ESI+0C]
0167:10001139 52 PUSH EDX
0167:1000113A 56 PUSH ESI
0167:1000113B E880030000 CALL 100014C0
0167:10001140 25FF000000 AND EAX,FF
0167:10001145 50 PUSH EAX
0167:10001146 E8C5010000 CALL 10001310
0167:1000114B 83C40C ADD ESP,BYTE +0C
0167:1000114E 8844340C MOV [ESP+ESI+0C],AL
0167:10001152 46 INC ESI
0167:10001153 83FE04 CMP ESI,BYTE +04
0167:10001156 7CDD JL 10001135 ;循环计算注册码第二部分
0167:10001158 33C9 XOR ECX,ECX
0167:1000115A 0FBE440F05 MOVSX EAX,BYTE [EDI+ECX+05]
0167:1000115F 83F841 CMP EAX,BYTE +41
0167:10001162 7C08 JL 1000116C
0167:10001164 83F85A CMP EAX,BYTE +5A
0167:10001167 7F03 JG 1000116C
0167:10001169 83C020 ADD EAX,BYTE +20
0167:1000116C 0FBE540C0C MOVSX EDX,BYTE [ESP+ECX+0C] ;d esp+ecx+c 真正注册码
0167:10001171 3BC2 CMP EAX,EDX
0167:10001173 0F85D1000000 JNZ NEAR 1000124A
0167:10001179 41 INC ECX
0167:1000117A 83F904 CMP ECX,BYTE +04
0167:1000117D 7CDB JL 1000115A ;;循环逐位比较
0167:1000117F 8B44240C MOV EAX,[ESP+0C]
0167:10001183 8B4C2408 MOV ECX,[ESP+08]
0167:10001187 8BD0 MOV EDX,EAX
0167:10001189 33D1 XOR EDX,ECX
0167:1000118B 42 INC EDX
0167:1000118C 0FAFD1 IMUL EDX,ECX
0167:1000118F 8D0C80 LEA ECX,[EAX+EAX*4]
0167:10001192 8D04C8 LEA EAX,[EAX+ECX*8]
0167:10001195 8D0440 LEA EAX,[EAX+EAX*2]
0167:10001198 03D0 ADD EDX,EAX
0167:1000119A 33F6 XOR ESI,ESI
0167:1000119C 89542410 MOV [ESP+10],EDX
0167:100011A0 0FBE4C3410 MOVSX ECX,BYTE [ESP+ESI+10]
0167:100011A5 51 PUSH ECX
0167:100011A6 E865010000 CALL 10001310
0167:100011AB 83C404 ADD ESP,BYTE +04
0167:100011AE 88443410 MOV [ESP+ESI+10],AL
0167:100011B2 46 INC ESI
0167:100011B3 83FE04 CMP ESI,BYTE +04
0167:100011B6 7CE8 JL 100011A0 ;循环计算注册码第三部分
0167:100011B8 33C9 XOR ECX,ECX
0167:100011BA 0FBE440F0A MOVSX EAX,BYTE [EDI+ECX+0A]
0167:100011BF 83F841 CMP EAX,BYTE +41
0167:100011C2 7C08 JL 100011CC
0167:100011C4 83F85A CMP EAX,BYTE +5A
0167:100011C7 7F03 JG 100011CC
0167:100011C9 83C020 ADD EAX,BYTE +20
0167:100011CC 0FBE540C10 MOVSX EDX,BYTE [ESP+ECX+10] ;d esp+ecx+10 真正注册码
0167:100011D1 3BC2 CMP EAX,EDX
0167:100011D3 7575 JNZ 1000124A
0167:100011D5 41 INC ECX
0167:100011D6 83F904 CMP ECX,BYTE +04
0167:100011D9 7CDF JL 100011BA ;循环逐位比较
0167:100011DB 8B44240C MOV EAX,[ESP+0C]
0167:100011DF 8B4C2408 MOV ECX,[ESP+08]
0167:100011E3 0FAFC1 IMUL EAX,ECX
0167:100011E6 8D14C500000000 LEA EDX,[EAX*8+00]
0167:100011ED 2BD0 SUB EDX,EAX
0167:100011EF 8D0489 LEA EAX,[ECX+ECX*4]
0167:100011F2 83C205 ADD EDX,BYTE +05
0167:100011F5 0FAF542410 IMUL EDX,[ESP+10]
0167:100011FA 03D0 ADD EDX,EAX
0167:100011FC 33F6 XOR ESI,ESI
0167:100011FE 89542414 MOV [ESP+14],EDX
0167:10001202 0FBE4C3414 MOVSX ECX,BYTE [ESP+ESI+14]
0167:10001207 51 PUSH ECX
0167:10001208 E803010000 CALL 10001310
0167:1000120D 83C404 ADD ESP,BYTE +04
0167:10001210 88443414 MOV [ESP+ESI+14],AL
0167:10001214 46 INC ESI
0167:10001215 83FE04 CMP ESI,BYTE +04
0167:10001218 7CE8 JL 10001202 ;循环计算注册码第四部分
0167:1000121A 33C9 XOR ECX,ECX
0167:1000121C 0FBE440F0F MOVSX EAX,BYTE [EDI+ECX+0F]
0167:10001221 83F841 CMP EAX,BYTE +41
0167:10001224 7C08 JL 1000122E
0167:10001226 83F85A CMP EAX,BYTE +5A
0167:10001229 7F03 JG 1000122E
0167:1000122B 83C020 ADD EAX,BYTE +20
0167:1000122E 0FBE540C14 MOVSX EDX,BYTE [ESP+ECX+14] ;d esp+ecx+14 真正注册码
0167:10001233 3BC2 CMP EAX,EDX
0167:10001235 7513 JNZ 1000124A
0167:10001237 41 INC ECX
0167:10001238 83F904 CMP ECX,BYTE +04
0167:1000123B 7CDF JL 1000121C ;循环逐位比较
0167:1000123D 5F POP EDI
0167:1000123E B801000000 MOV EAX,01 ;置标志位为1
0167:10001243 5E POP ESI
0167:10001244 83C420 ADD ESP,BYTE +20
0167:10001247 C20800 RET 08
0167:1000124A 5F POP EDI
0167:1000124B 33C0 XOR EAX,EAX ;置标志位为0
0167:1000124D 5E POP ESI
0167:1000124E 83C420 ADD ESP,BYTE +20
最后我的注册码是:
用户名:poppig 或者 用户名:dengkeng
注册码:qyn7-b91u-jn3t-3nej 注册码:5cq3-dt3q-9v1k-253f
Made By dengkeng
E-mail:shellc0de@sohu.com
欢迎转载,请保持文章的完整性