飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2553|回复: 1

[07版] 第三章:明码与暴破-暴破后写入正确信息-文一

[复制链接]

该用户从未签到

发表于 2007-4-11 20:11:55 | 显示全部楼层 |阅读模式
某棋类软件 1.46
软件大小:1702KB
软件类别:国产软件/棋牌游戏  
下载次数:148983
软件授权:共享版
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP/2003
更新时间:2005-8-11 16:23:52

软件已经有一年多未更新了,不清楚是作者认为软件已经设计的接近完美,还是由于网络上KEY已经到处流传.通过这个软件,这里我们只是简单的分析下软件在设计注册部分中的不足之处.软件的算法部分设计的还是可以的,但是虽然有高明的算法,但只要修改一个小小的跳转即可达到暴破的目的,因为暴破后,软件向系统保存的是正确的注册信息.所以验证部分出现这样的失误还是很可惜的.

软件输入用户名和错误注册码之后点注册按钮,没有任何反映,但是当我们什么都不输入直接点注册时,软件弹出一个说明窗口:
"注册名或注册码输入不对,其中注意1(数字)、i(大写字母)l(L的小写)、0(数字)、o(小写字母)、O(大写字母)等的区别!"
根据这个提示我们可以轻易的找到下断之处(当然我们也可以通过API函数来下断,但这样定位的速度更快).软件无壳,我们OD载入后直接搜索ASCII,便可找到该关键字符



00444162  |> \66:C785 60FFF>mov     word ptr [ebp-A0], 194
0044416B  |.  BA AE905000   mov     edx, 005090AE                    ;  注册名或注册码输入不对,其中注意1(数字)、i(大写字母)l(L的小写)、0(数字)、o(小写字母)、O(大写字母)等的区别!

双击来到OD的CPU面版,我们在该关键字符上方0044401F 处下断点(因为程序要想执行到注册失败,该地址是必经之处,由于这里我们不分析算法,所以无需在句柄处下断点)

0044401F  |.  E8 74B1FFFF   call    0043F198                         ; \我们在这里下断
00444024  |.  83C4 08       add     esp, 8
00444027  |.  85C0          test    eax, eax
00444029  |.  74 15         je      short 00444040                   ; 我们可以看到,这里的跳转跳到00444040。正好跳过下方的标志位比较,所以修改这里,将je修改为jmp 只要这里跳走,软件将向系统写入正确注册文件.以后再次打开程序时,软件已经是注册版.
0044402B  |.  8B85 4CFFFFFF mov     eax, dword ptr [ebp-B4]
00444031  |.  50            push    eax                              ; /Arg1
00444032  |.  E8 51E6FFFF   call    00442688                         ; \****.00442688
00444037  |.  59            pop     ecx
00444038  |.  84C0          test    al, al
0044403A  |.  0F84 22010000 je      00444162                         ;  这里跳向注册失败!
00444040  |>  8B15 B8EB5000 mov     edx, dword ptr [50EBB8]          ;  ****._ChessForm
00444046  |.  33C0          xor     eax, eax
00444048  |.  8DBD 94FEFFFF lea     edi, dword ptr [ebp-16C]
0044404E  |.  8B0A          mov     ecx, dword ptr [edx]
00444050  |.  81C1 B1210000 add     ecx, 21B1
00444056  |.  8BF1          mov     esi, ecx
00444058  |.  83C9 FF       or      ecx, FFFFFFFF
0044405B  |.  F2:AE         repne   scas byte ptr es:[edi]
0044405D  |.  F7D1          not     ecx
0044405F  |.  2BF9          sub     edi, ecx
00444061  |.  8BD1          mov     edx, ecx
00444063  |.  87F7          xchg    edi, esi
00444065  |.  C1E9 02       shr     ecx, 2
00444068  |.  8BC7          mov     eax, edi
0044406A  |.  F3:A5         rep     movs dword ptr es:[edi], dword p>
0044406C  |.  8BCA          mov     ecx, edx
0044406E  |.  83E1 03       and     ecx, 3
00444071  |.  F3:A4         rep     movs byte ptr es:[edi], byte ptr>
00444073  |.  A1 B8EB5000   mov     eax, dword ptr [50EBB8]
00444078  |.  8DBD A8FEFFFF lea     edi, dword ptr [ebp-158]
0044407E  |.  8B10          mov     edx, dword ptr [eax]
00444080  |.  33C0          xor     eax, eax
00444082  |.  81C2 CA210000 add     edx, 21CA
00444088  |.  83C9 FF       or      ecx, FFFFFFFF
0044408B  |.  F2:AE         repne   scas byte ptr es:[edi]
0044408D  |.  F7D1          not     ecx
0044408F  |.  2BF9          sub     edi, ecx
00444091  |.  8BF2          mov     esi, edx
00444093  |.  87F7          xchg    edi, esi
00444095  |.  8BD1          mov     edx, ecx
00444097  |.  8BC7          mov     eax, edi
00444099  |.  C1E9 02       shr     ecx, 2
0044409C  |.  F3:A5         rep     movs dword ptr es:[edi], dword p>
0044409E  |.  8BCA          mov     ecx, edx
004440A0  |.  83E1 03       and     ecx, 3
004440A3  |.  F3:A4         rep     movs byte ptr es:[edi], byte ptr>
004440A5  |.  A1 B8EB5000   mov     eax, dword ptr [50EBB8]
004440AA  |.  8B10          mov     edx, dword ptr [eax]
004440AC  |.  C682 01220000>mov     byte ptr [edx+2201], 1
004440B3  |.  33DB          xor     ebx, ebx
004440B5  |>  E8 DAC40800   /call    004D0594
004440BA  |.  99            |cdq
004440BB  |.  B9 32000000   |mov     ecx, 32
004440C0  |.  F7F9          |idiv    ecx
004440C2  |.  8D049B        |lea     eax, dword ptr [ebx+ebx*4]
004440C5  |.  80C2 65       |add     dl, 65
004440C8  |.  8B0D B8EB5000 |mov     ecx, dword ptr [50EBB8]         ;  ****._ChessForm
004440CE  |.  8D0443        |lea     eax, dword ptr [ebx+eax*2]
004440D1  |.  C1E0 03       |shl     eax, 3
004440D4  |.  2BC3          |sub     eax, ebx
004440D6  |.  8B09          |mov     ecx, dword ptr [ecx]
004440D8  |.  8D0483        |lea     eax, dword ptr [ebx+eax*4]
004440DB  |.  889481 EA0A00>|mov     byte ptr [ecx+eax*4+AEA], dl
004440E2  |.  43            |inc     ebx
004440E3  |.  83FB 05       |cmp     ebx, 5
004440E6  |.^ 7C CD         \jl      short 004440B5
004440E8  |.  66:C785 60FFF>mov     word ptr [ebp-A0], 188
004440F1  |.  BA A3905000   mov     edx, 005090A3                    ;  注册成功!
004440F6  |.  8D45 80       lea     eax, dword ptr [ebp-80]
004440F9  |.  E8 6E360900   call    004D776C
004440FE  |.  FF85 6CFFFFFF inc     dword ptr [ebp-94]
00444104  |.  8B00          mov     eax, dword ptr [eax]
00444106  |.  33D2          xor     edx, edx
00444108  |.  8995 7CFFFFFF mov     dword ptr [ebp-84], edx
0044410E  |.  8D95 7CFFFFFF lea     edx, dword ptr [ebp-84]
00444114  |.  FF85 6CFFFFFF inc     dword ptr [ebp-94]
0044411A  |.  E8 A136FEFF   call    004277C0
0044411F  |.  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00444125  |.  8B00          mov     eax, dword ptr [eax]
00444127  |.  E8 A47C0400   call    0048BDD0
0044412C  |.  FF8D 6CFFFFFF dec     dword ptr [ebp-94]
00444132  |.  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]
00444138  |.  BA 02000000   mov     edx, 2
0044413D  |.  E8 82370900   call    004D78C4
00444142  |.  FF8D 6CFFFFFF dec     dword ptr [ebp-94]
00444148  |.  8D45 80       lea     eax, dword ptr [ebp-80]
0044414B  |.  BA 02000000   mov     edx, 2
00444150  |.  E8 6F370900   call    004D78C4
00444155  |.  8B85 4CFFFFFF mov     eax, dword ptr [ebp-B4]
0044415B  |.  E8 7CBD0300   call    0047FEDC
00444160  |.  EB 73         jmp     short 004441D5
00444162  |>  66:C785 60FFF>mov     word ptr [ebp-A0], 194
0044416B  |.  BA AE905000   mov     edx, 005090AE                    ;  注册名或注册码输入不对,其中注意1(数字)、i(大写字母)l(L的小写)、0(数字)、o(小写字母)、O(大写字母)等的区别!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

x
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-4-11 20:15:13 | 显示全部楼层
楚汉棋缘 1.46
http://www.onlinedown.net/soft/8961.htm

地址和软件是这个 算法以前我看过 一点也没弄明白 /:03
由于是国软 我已经将文中涉及到的相关字符隐去

大家有时间的话 可以将以前分析过的软件 做成个帖子来投稿
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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