一个局域网工具的破解
【文章标题】: 一个局域网工具的破解【文章作者】: 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:
0040175F .C64424 70 0Cmov byte ptr ss:,0C
00401764 .E8 877F0200 call MibBrows.004296F0
00401769 .A1 F07B4400 mov eax,dword ptr ds: :一个全局标志
0040176E .85C0 test eax,eax
00401770 74 66 je short MibBrows.004017D8 :跳了就是 unregistered version
00401772 .8B5424 1C mov edx,dword ptr ss:
00401776 .52 push edx
00401777 .51 push ecx
00401778 .8BCC mov ecx,esp
0040177A .896424 30 mov dword ptr ss:,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 0Dmov byte ptr ss:,0D
0040178E .8BCC mov ecx,esp
00401790 .896424 30 mov dword ptr ss:,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:
004017A5 .C64424 78 0Cmov byte ptr ss:,0C
004017AA .50 push eax
004017AB .E8 C0CB0200 call MibBrows.0042E370
004017B0 .83C4 0C add esp,0C
004017B3 .8B08 mov ecx,dword ptr ds:
004017B5 .8D5424 14 lea edx,dword ptr ss:
004017B9 .51 push ecx
004017BA .68 40014400 push MibBrows.00440140 ;%s%s
004017BF .52 push edx
004017C0 .C64424 7C 0Emov byte ptr ss:,0E
004017C5 .E8 90DF0200 call <jmp.&MFC42u.#2810>
004017CA .83C4 10 add esp,10
004017CD .C64424 6C 0Cmov byte ptr ss:,0C
004017D2 .8D4C24 74 lea ecx,dword ptr ss:
004017D6 .EB 5C jmp short MibBrows.00401834
004017D8 >51 push ecx
004017D9 .8BCC mov ecx,esp
004017DB .896424 2C mov dword ptr ss:,esp
004017DF .68 14014400 push MibBrows.00440114 ;unregistered version
004017E4 .E8 1DDF0200 call <jmp.&MFC42u.#538>
004017E9 .51 push ecx
004017EA .C64424 74 0Fmov byte ptr ss:,0F
3 一开始我nop掉那个跳转,无效.再对全局标志下硬件访问断点.重载程序f9运行.
00407568 .8D4C24 20 lea ecx,dword ptr ss:
0040756C .E8 B1830200 call <jmp.&MFC42u.#940>
00407571 .8D4C24 14 lea ecx,dword ptr ss:
00407575 .889C24 040100>mov byte ptr ss:,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:
0040758B .8B4424 1C mov eax,dword ptr ss:
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:,ecx :
004075AB .56 push esi :od停在这里
004075AC .8D4C24 14 lea ecx,dword ptr ss:
004075B0 .E8 3B210200 call MibBrows.004296F0
004075B5 .8D4C24 1C lea ecx,dword ptr ss:
004075B9 .C68424 040100>mov byte ptr ss:,7
004075C1 .E8 34810200 call <jmp.&MFC42u.#800>
004075C6 .8D4C24 60 lea ecx,dword ptr ss:
004075CA .C68424 040100>mov byte ptr ss:,6
004075D2 .E8 59050000 call MibBrows.00407B30
004075D7 .8D4C24 2C lea ecx,dword ptr ss:
4 删除硬件访问断点,在0407591下断,重载程序f9运行.就会出现真正注册码.
00407585 .^\75 BF jnz short MibBrows.00407546
00407587 .8B5424 28 mov edx,dword ptr ss:
0040758B .8B4424 1C mov eax,dword ptr ss:
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:,ecx
004075AB .56 push esi:;
004075AC .8D4C24 14 lea ecx,dword ptr ss:
004075B0 .E8 3B210200 call MibBrows.004296F0
004075B5 .8D4C24 1C lea ecx,dword ptr ss:
004075B9 .C68424 040100>mov byte ptr ss:,7
004075C1 .E8 34810200 call <jmp.&MFC42u.#800>
看堆栈:
0012FB7C 00A37B70|wstr1 = "CiFUdqDDf9LFBLbdTOCMCvaO" ;真正注册码
0012FB80 00A37AE0\wstr2 = "54321"
0012FB84 00A2BCA8
0012FB88 00000000
0012FB8C 0012FD08
0012FB90 00407340MibBrows.00407340
0012FB94 00438AB8MibBrows.00438AB8
0012FB98 003E46B8UNICODE "CMCvaO"
0012FB9C 00A2D888UNICODE "gzdangPease MibBrowser"
0012FBA0 00A37B70UNICODE "CiFUdqDDf9LFBLbdTOCMCvaO"
0012FBA4 00A37C00UNICODE "Pease MibBrowser"
0012FBA8 003E46B8UNICODE "CMCvaO"
【注册信息】
注册名:gzdang
注册码:CiFUdqDDf9LFBLbdTOCMCvaO
--------------------------------------------------------------------------------
【经验总结】
这篇文章没有什么技术含量,很抱歉让你花了这么多时间来看这个。
--------------------------------------------------------------------------------
【版权声明】:转载请注明作者并保持文章的完整, 谢谢!
2008年12月05日 2:09:42 学习下。谢谢楼主分享!:handshake 楼上的真强大,那你继续顶撒!!! 学习下。谢谢楼主分享 好久没写破文了,
支持你 谢谢分享 学习了 学习下。谢谢楼主分享! 楼上的真强大! 谢谢楼主了!!!