• 标 题:豪杰屏幕录像机2.0
  • 作 者:poppig
  • 时 间:2003年11月16日 04:48
  • 链 接:http://bbs.pediy.com

因为豪杰屏幕录像机2.0的注册码是采用4个部分的明文比较,似乎和超级解霸3000
一样,所以粗略的跟了一下.后面附注册码.
  直接运行AuthReg.exe,就是要我们注册的东东.
  我们输入信息如下:
  用户名:poppig
  注册码:1234-5678-9abc-edfg

  我们下断点GetWindowTextA,我在trw2000下拦截的很好,但是在Onllydbg下却死
机,不知道是什么原因.
:0040249A A134CC4000              mov eaxdword ptr [0040CC34]
:0040249F 8D542409                lea edxdword ptr [esp+09]
:004024A3 6A08                    push 00000008
:004024A5 52                      push edx
:004024A6 50                      push eax
:004024A7 FFD6                    call esi
:004024A9 8B1540CC4000            mov edxdword ptr [0040CC40]
:004024AF 8D4C240E                lea ecxdword ptr [esp+0E]
:004024B3 6A08                    push 00000008
:004024B5 51                      push ecx
:004024B6 52                      push edx
:004024B7 FFD6                    call esi
:004024B9 8B0D3CCC4000            mov ecxdword ptr [0040CC3C]
:004024BF 8D442413                lea eaxdword ptr [esp+13]
:004024C3 6A08                    push 00000008
:004024C5 50                      push eax
:004024C6 51                      push ecx
:004024C7 FFD6                    call esi
:004024C9 8B1530CC4000            mov edxdword 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 eaxdword ptr [0040C758]
:004024F4 5E                      pop esi
:004024F5 85C0                    test eaxeax
:004024F7 740E                    je 00402507 ;是否为空
:004024F9 8D4C2400                lea ecxdword 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
欢迎转载,请保持文章的完整性