- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
某棋类软件 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
|