好友
阅读权限10
听众
最后登录1970-1-1
|
【文章标题】: 一个局域网工具的破解
【文章作者】: gzdang
【软件名称】: pease mibbrowser 1.14版
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: 重启验证
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: od ,peid
【操作平台】: win all
【软件介绍】: 一个局域网工具
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1 运行程序,点击出注册界面后, 我的注册信息如下:
填入注册信息,
注册名: gzdang
注册码: 54321
点"注册"后,程序提示信息为 "谢谢您的注册"
看来程序在启动时比较注册码.
2 od载入程序MibBrowser.exe.查找字符串(UNICODE格式).找到:
超级字串参考+ , 项目 21
地址=004017DF
反汇编=push MibBrows.00440114
文本字串=unregistered version
0040175B . 8D4C24 18 lea ecx,dword ptr ss:[esp+18]
0040175F . C64424 70 0C mov byte ptr ss:[esp+70],0C
00401764 . E8 877F0200 call MibBrows.004296F0
00401769 . A1 F07B4400 mov eax,dword ptr ds:[447BF0] :一个全局标志
0040176E . 85C0 test eax,eax
00401770 74 66 je short MibBrows.004017D8 :跳了就是 unregistered version
00401772 . 8B5424 1C mov edx,dword ptr ss:[esp+1C]
00401776 . 52 push edx
00401777 . 51 push ecx
00401778 . 8BCC mov ecx,esp
0040177A . 896424 30 mov dword ptr ss:[esp+30],esp
0040177E . 68 80014400 push MibBrows.00440180 ; this software is registered to:
00401783 . E8 7EDF0200 call <jmp.&MFC42u.#538>
00401788 . 51 push ecx
00401789 . C64424 78 0D mov byte ptr ss:[esp+78],0D
0040178E . 8BCC mov ecx,esp
00401790 . 896424 30 mov dword ptr ss:[esp+30],esp
00401794 . 68 4C014400 push MibBrows.0044014C ; about.dlg.registered.text
00401799 . E8 68DF0200 call <jmp.&MFC42u.#538>
0040179E . 8D8424 800000>lea eax,dword ptr ss:[esp+80]
004017A5 . C64424 78 0C mov byte ptr ss:[esp+78],0C
004017AA . 50 push eax
004017AB . E8 C0CB0200 call MibBrows.0042E370
004017B0 . 83C4 0C add esp,0C
004017B3 . 8B08 mov ecx,dword ptr ds:[eax]
004017B5 . 8D5424 14 lea edx,dword ptr ss:[esp+14]
004017B9 . 51 push ecx
004017BA . 68 40014400 push MibBrows.00440140 ; %s%s
004017BF . 52 push edx
004017C0 . C64424 7C 0E mov byte ptr ss:[esp+7C],0E
004017C5 . E8 90DF0200 call <jmp.&MFC42u.#2810>
004017CA . 83C4 10 add esp,10
004017CD . C64424 6C 0C mov byte ptr ss:[esp+6C],0C
004017D2 . 8D4C24 74 lea ecx,dword ptr ss:[esp+74]
004017D6 . EB 5C jmp short MibBrows.00401834
004017D8 > 51 push ecx
004017D9 . 8BCC mov ecx,esp
004017DB . 896424 2C mov dword ptr ss:[esp+2C],esp
004017DF . 68 14014400 push MibBrows.00440114 ; unregistered version
004017E4 . E8 1DDF0200 call <jmp.&MFC42u.#538>
004017E9 . 51 push ecx
004017EA . C64424 74 0F mov byte ptr ss:[esp+74],0F
3 一开始我nop掉那个跳转,无效.再对全局标志下硬件访问断点.重载程序f9运行.
00407568 . 8D4C24 20 lea ecx,dword ptr ss:[esp+20]
0040756C . E8 B1830200 call <jmp.&MFC42u.#940>
00407571 . 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
00407575 . 889C24 040100>mov byte ptr ss:[esp+104],bl
0040757C . E8 79810200 call <jmp.&MFC42u.#800>
00407581 . 83C7 04 add edi,4
00407584 . 4D dec ebp
00407585 .^ 75 BF jnz short MibBrows.00407546
00407587 . 8B5424 28 mov edx,dword ptr ss:[esp+28]
0040758B . 8B4424 1C mov eax,dword ptr ss:[esp+1C]
0040758F . 52 push edx ; /wstr2
00407590 . 50 push eax ; |wstr1
00407591 . FF15 50544300 call dword ptr ds:[<&MSVCRT.wcscmp>] ; \wcscmp 这里竟然明码比较.可以做
00407597 . 83C4 08 add esp, 内存注册机
0040759A . 85C0 test eax,eax
0040759C . 0F94C1 sete cl :爆破点
0040759F . 81E1 FF000000 and ecx,0FF
004075A5 . 890D F07B4400 mov dword ptr ds:[447BF0],ecx :
004075AB . 56 push esi :od停在这里
004075AC . 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004075B0 . E8 3B210200 call MibBrows.004296F0
004075B5 . 8D4C24 1C lea ecx,dword ptr ss:[esp+1C]
004075B9 . C68424 040100>mov byte ptr ss:[esp+104],7
004075C1 . E8 34810200 call <jmp.&MFC42u.#800>
004075C6 . 8D4C24 60 lea ecx,dword ptr ss:[esp+60]
004075CA . C68424 040100>mov byte ptr ss:[esp+104],6
004075D2 . E8 59050000 call MibBrows.00407B30
004075D7 . 8D4C24 2C lea ecx,dword ptr ss:[esp+2C]
4 删除硬件访问断点,在0407591下断,重载程序f9运行.就会出现真正注册码.
00407585 .^\75 BF jnz short MibBrows.00407546
00407587 . 8B5424 28 mov edx,dword ptr ss:[esp+28]
0040758B . 8B4424 1C mov eax,dword ptr ss:[esp+1C]
0040758F . 52 push edx ; /wstr2
00407590 . 50 push eax ; |wstr1
00407591 . FF15 50544300 call dword ptr ds:[<&MSVCRT.wcscmp>] ; \wcscmp ; od停在这里
00407597 . 83C4 08 add esp,8
0040759A . 85C0 test eax,eax
0040759C . 0F94C1 sete cl
0040759F . 81E1 FF000000 and ecx,0FF
004075A5 . 890D F07B4400 mov dword ptr ds:[447BF0],ecx
004075AB . 56 push esi:;
004075AC . 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004075B0 . E8 3B210200 call MibBrows.004296F0
004075B5 . 8D4C24 1C lea ecx,dword ptr ss:[esp+1C]
004075B9 . C68424 040100>mov byte ptr ss:[esp+104],7
004075C1 . E8 34810200 call <jmp.&MFC42u.#800>
看堆栈:
0012FB7C 00A37B70 |wstr1 = "CiFUdqDDf9LFBLbdTOCMCvaO" ;真正注册码
0012FB80 00A37AE0 \wstr2 = "54321"
0012FB84 00A2BCA8
0012FB88 00000000
0012FB8C 0012FD08
0012FB90 00407340 MibBrows.00407340
0012FB94 00438AB8 MibBrows.00438AB8
0012FB98 003E46B8 UNICODE "CMCvaO"
0012FB9C 00A2D888 UNICODE "gzdangPease MibBrowser"
0012FBA0 00A37B70 UNICODE "CiFUdqDDf9LFBLbdTOCMCvaO"
0012FBA4 00A37C00 UNICODE "Pease MibBrowser"
0012FBA8 003E46B8 UNICODE "CMCvaO"
【注册信息】
注册名:gzdang
注册码:CiFUdqDDf9LFBLbdTOCMCvaO
--------------------------------------------------------------------------------
【经验总结】
这篇文章没有什么技术含量,很抱歉让你花了这么多时间来看这个。
--------------------------------------------------------------------------------
【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!
2008年12月05日 2:09:42 |
免费评分
-
查看全部评分
|