飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 20466|回复: 10

[求助] 顶猫兄---我太菜

[复制链接]

该用户从未签到

发表于 2007-5-16 15:16:39 | 显示全部楼层 |阅读模式
我的问题是:他怎么知道在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 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-16 15:56:42 | 显示全部楼层
回复一下,猫最近很忙,可能很少上线.

兄弟提问的应该是软件重启验证的问题, 我让兄弟思考一个问题: 软件验证时候的算法和重启时候验证KEY的算法是否是相同的?

思考了这个问题后,我想兄弟就应该明白了吧. 如果两处验证的算法不一样,那可就出乱子了,呵呵~

应该我们在第一次注册的时候已经看过算法流程 所以当重启时下断后:d 536038

我们发现断到的指令部分和我们软件注册时候的算法是相同的,所以就知道这里是重启验证的部分.

软件没有跟,只是看了下猫的文章 ,如果出错之处, 还望大家指正.

不知这样回复楼主懂我的意思了没?

评分

参与人数 1威望 +20 收起 理由
tigerisme + 20 热心回帖

查看全部评分

PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-5-16 16:42:43 | 显示全部楼层

歉意--猫兄

我太菜!
重启后下什么断?
d 536038是什么  是在断什么?
nisy就是nisy     ^_^服了
听君一席话....  哈哈
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-16 17:19:24 | 显示全部楼层
d 536038

查看 536038 中的数据 :)
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-5-16 21:26:07 | 显示全部楼层

步骤哪里错误?

od载入,写上“d 536038”,点回车,点运行,软件没有断下来啊,怎么回事,哪里出错了?
谢谢解答  菜鸟非常感激
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-16 21:49:37 | 显示全部楼层
应该是下硬件断点 d 536038 就是来到这个地址 然后和ESP定律下断方式一样 兄弟试一下~ 有问题再跟帖~~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-5-16 22:29:35 | 显示全部楼层

回复 #6 Nisy 的帖子

看到了哈  支持pyg 支持nisy  
非常感谢总坛主    pyg真好
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-20 15:17:16 | 显示全部楼层
为什么不尝试追下码?
PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-5-27 01:03:59 | 显示全部楼层

    建议

    希望先学点基础,打好基础之后才能融会贯通,个人理解,不对的地方请指教!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-6-5 20:59:49 | 显示全部楼层
    PYG就是初学者的天堂,老大都这么热心
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表