- UID
 - 32212
 
 注册时间2007-5-7
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
该用户从未签到  
 | 
 
我的问题是:他怎么知道在ASCII "0000000"这一行附近观察修改?  他怎么知道这一段是重启验证的代码段?  
 
 
重启验证暴破之《中国跳棋大师Chinese Checkers Master 1.03》 
 
------------------------------------------------------------------------ 
一、程序查无壳,Microsoft Visual C++ 6.0编写。 
二、程序注册失败有提示,根据这个提示我们很快找到关键代码段。 
+++++++++++++++++++++++++++++++++++++++++++ 
文本字符串参考位于 Chinese_:.text,项目 268 
地址=004229B8 
反汇编=push Chinese_.004971E4 
文本字符串=ASCII "The registration code you entered in incorrect.  Please try again." 
+++++++++++++++++++++++++++++++++++++++++   
『这里省略了一般的爆破』 
 
但可是太早了!这个程序有重启验证~我晕~拍马屁拍到马脚上了。。。 
看我的~OD中下断 d 536038 ,重新运行程序,程序中断在此~ 
 
004296B3     C605 38605300 01   mov byte ptr ds:[536038],1 
004296BA     BB DF900F00        mov ebx,0F90DF 
 
兄弟们,是不是很熟悉呀~ 
 
004296B3     C605 38605300 01   mov byte ptr ds:[536038],1         ; mov byte ptr ds:[536038],0 
004296BA     BB DF900F00        mov ebx,0F90DF                        ; mov ebx,0 
004296BF     BF 20734900        mov edi,Chinese_.00497320                        ; ASCII "0000000" 
004296C4     83C9 FF            or ecx,FFFFFFFF 
004296C7     33C0               xor eax,eax 
004296C9     8D5424 14          lea edx,dword ptr ss:[esp+14] 
004296CD     F2:AE              repne scas byte ptr es:[edi] 
004296CF     F7D1               not ecx 
004296D1     2BF9               sub edi,ecx 
004296D3     8BC1               mov eax,ecx 
004296D5     8BF7               mov esi,edi 
004296D7     8BFA               mov edi,edx 
004296D9     8A95 14150000      mov dl,byte ptr ss:[ebp+1514] 
004296DF     C1E9 02            shr ecx,2 
004296E2     F3:A5              rep movs dword ptr es:[edi],dword ptr ds:[esi] 
004296E4     8BC8               mov ecx,eax 
004296E6     8A85 18150000      mov al,byte ptr ss:[ebp+1518] 
004296EC     83E1 03            and ecx,3 
004296EF     F3:A4              rep movs byte ptr es:[edi],byte ptr ds:[esi] 
004296F1     8A8D 13150000      mov cl,byte ptr ss:[ebp+1513] 
004296F7     884424 16          mov byte ptr ss:[esp+16],al 
004296FB     8A85 1B150000      mov al,byte ptr ss:[ebp+151B] 
00429701     80E9 14            sub cl,14 
00429704     884C24 14          mov byte ptr ss:[esp+14],cl 
00429708     8A8D 19150000      mov cl,byte ptr ss:[ebp+1519] 
0042970E     885424 15          mov byte ptr ss:[esp+15],dl 
00429712     8A95 1A150000      mov dl,byte ptr ss:[ebp+151A] 
00429718     2C 15              sub al,15 
0042971A     80E9 18            sub cl,18 
0042971D     884424 19          mov byte ptr ss:[esp+19],al 
00429721     884C24 17          mov byte ptr ss:[esp+17],cl 
00429725     8A8D 1C150000      mov cl,byte ptr ss:[ebp+151C] 
0042972B     885424 18          mov byte ptr ss:[esp+18],dl 
0042972F     8A95 1D150000      mov dl,byte ptr ss:[ebp+151D] 
00429735     8D4424 14          lea eax,dword ptr ss:[esp+14] 
00429739     50                 push eax 
0042973A     884C24 1E          mov byte ptr ss:[esp+1E],cl 
0042973E     885424 1F          mov byte ptr ss:[esp+1F],dl 
00429742     E8 54A10000        call Chinese_.0043389B 
00429747     83C4 04            add esp,4 
0042974A     3BC3               cmp eax,ebx                                     ; cmp eax,0 
0042974C     75 07              jnz short Chinese_.00429755                      ; NOP 
0042974E     C605 38605300 00   mov byte ptr ds:[536038],0 
00429755     83C3 11            add ebx,11 
00429758     81FB FF439100      cmp ebx,9143FF 
0042975E   ^ 0F8C 5BFFFFFF      jl Chinese_.004296BF 
00429764     803D 38605300 01   cmp byte ptr ds:[536038],1 
0042976B     0F85 72050000      jnz Chinese_.00429CE3 
 
看到了没有?有共有四种更改的方法,都是考虑到到标志位的~一次暴个够~ 
 
我的问题是:他怎么知道在ASCII "0000000"这一行附近观察修改?  他怎么知道这一段是重启验证的段? 
 
[ 本帖最后由 王永波 于 2007-5-16 22:37 编辑 ] |   
 
 
 
 |