• 标 题:我的第?篇破文(exescope v6.00) (5千字)
  • 作 者:exdata
  • 时 间:2001-12-21 12:33:40
  • 链 接:http://bbs.pediy.com

我的第?篇破文(exescope v6.00):
在 Dede中看到一个可疑的跳转004807D8:jz      0048086B    
用鼠标双击跳到00480870:Invalid ID or Name,呵呵知道了吧:)

|
004807D1  E85A790000            call    00488130
004807D6  84C0                  test    al, al    ->改这里让下一

个jz不跳就注册成功!!!,来硬的修改这里就好了。
004807D8  0F848D000000          jz      0048086B    

///////////////////////////////////////////////////////////////////
* Possible String Reference to: 'Invalid ID or Name;搊榐ID傑偨偼柤慜
|                                偑柍岠偱偡'
|
00480870  B8FC084800            mov    eax, $004808FC

|
00480875  E8C625FDFF            call    00452E40
0048087A  8B45F8                mov    eax, [ebp-$08]
0048087D  668B0D2C094800        mov    cx, word ptr [$48092C]
00480884  B201                  mov    dl, $01

|
00480886  E841D7FBFF            call    0043DFCC
0048088B  33C0                  xor    eax, eax
0048088D  5A                    pop    edx
0048088E  59                    pop    ecx
0048088F  59                    pop    ecx
00480890  648910                mov    fs:[eax], edx

****** FINALLY
|

///////////////////////////////////////////////////////////////////////

/////////////////
            注册判断程序:
004807D1  E85A790000            call    00488130
            跳入
///////////////////////////////////////////////////////////////////////

////////////////
00488130  55                    push    ebp
00488131  8BEC                  mov    ebp, esp
00488133  51                    push    ecx
00488134  53                    push    ebx
00488135  8955FC                mov    [ebp-$04], edx
00488138  8B45FC                mov    eax, [ebp-$04]

|
0048813B  E8F0BBF7FF            call    00403D30
00488140  33C0                  xor    eax, eax
00488142  55                    push    ebp

* Possible String Reference to: '檠摈腽嬅[Y]?
|
00488143  68B2814800            push    $004881B2

***** TRY
|
00488148  64FF30                push    dword ptr fs:[eax]
0048814B  648920                mov    fs:[eax], esp
0048814E  33DB                  xor    ebx, ebx
00488150  8B45FC                mov    eax, [ebp-$04]

|
00488153  E824BAF7FF            call    00403B7C
00488158  83F80A                cmp    eax, +$0A    ->判断注册码长

度是否为10位
0048815B  753F                  jnz    0048819C    ->Y不跳,
0048815D  8B55FC                mov    edx, [ebp-$04]

* Possible String Reference to: 'A1910'            - >A191是密码的

前四位
|
00488160  B8C8814800            mov    eax, $004881C8

|
00488165  E89EBCF7FF            call    00403E08
0048816A  48                    dec    eax
0048816B  7410                  jz      0048817D
0048816D  8B55FC                mov    edx, [ebp-$04]

* Possible String Reference to: 'A1423'            - >好象没什么用
|
00488170  B8D8814800            mov    eax, $004881D8

|
00488175  E88EBCF7FF            call    00403E08
0048817A  48                    dec    eax
0048817B  751F                  jnz    0048819C
0048817D  8B45FC                mov    eax, [ebp-$04]
00488180  0FB64008              movzx  eax, byte ptr [eax+$08]    

->eax:倒数第二位ASCII码
00488184  8B55FC                mov    edx, [ebp-$04]
00488187  0FB65209              movzx  edx, byte ptr [edx+$09]    

->edx:倒数第1位ASCII码
0048818B  03C2                  add    eax, edx            

->eax:倒数两位ASCII码之和
0048818D  B90A000000            mov    ecx, $0000000A
00488192  99                    cdq        ->CDQ    双字扩展.    (

把EAX中的字的符号扩展到EDX中去)
00488193  F7F9                  idiv    ecx     ->IDIV    整数除法. 商

回送AL,余数回送AH, (字节运算);
                                  或  商回送AX,余

数回送DX, (字运算).
00488195  83FA04                cmp    edx, +$04        ->余4就

对了,如(A1910???35)
00488198  7502                  jnz    0048819C            

->码不正确时跳
0048819A  B301                  mov    bl, $01
0048819C  33C0                  xor    eax, eax
0048819E  5A                    pop    edx
0048819F  59                    pop    ecx
004881A0  59                    pop    ecx
004881A1  648910                mov    fs:[eax], edx

****** FINALLY
|

* Possible String Reference to: '嬅[Y]?
|
004881A4  68B9814800            push    $004881B9
004881A9  8D45FC                lea    eax, [ebp-$04]

|
004881AC  E84FB7F7FF            call    00403900
004881B1  C3                    ret

004881B2  E9D1B1F7FF            jmp    00403388
004881B7  EBF0                  jmp    004881A9

****** END
|
004881B9  8BC3                  mov    eax, ebx
004881BB  5B                    pop    ebx
004881BC  59                    pop    ecx
004881BD  5D                    pop    ebp
004881BE  C3                    ret

///////////////////////////////////////////////////////////////////////

//////
            得到注册码长度:
///////////////////////////////////////////////////////////////////////

/////
00403B7C  85C0                  test    eax, eax
00403B7E  7403                  jz      00403B83
00403B80  8B40FC                mov    eax, [eax-$04]    -》长度
00403B83  C3                    ret

///////////////////////////////////////////////////////////////////

:)注册ID与用户名无关;
:)ID前四位固定为A1910;
:)ID位数固定为10位;
:)ID第6、7、8位任意;
:)ID第9、10位ASCII码之和除以0x0A(10D)余4就正确!!!

it's your mama! 晚上网上一看,exescope 630出来了,还有注册机,看看生成

的注册码,大同小异,其实没必要写什么注册机(学编程??),用一个码就行

了。