WeBuilder 2008 V9.0(最新版) Trial 完美去限制分析
【文章标题】:【原创】WeBuilder 2008 V9.0(最新版) 完美去限制【文章作者】: playboysen
【作者邮箱】: [email protected]
【作者相册】: playboysen2.photo.163.com
【软件名称】: WeBuilder 2008 V9.0
【下载地址】: http://www.blumentals.net/download/webuild9.exe
【使用工具】: Ollydbg,PEID
【操作平台】: Windows XP SP2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
TAG: 带壳调试 试用版爆破 去限制 dUP补丁
前几天心血来潮写了篇dll插件类型软件的破解算法分析(http://bbs.pediy.com/showthread.php?t=66796),得到了大家的基本认可,自己觉得写了一下午的东西能给大家开阔思路,很值得,当有人说声“谢谢”的时候,感觉一身的疲惫刹那间烟消云散了,于是一鼓作气,写下本文,以飨读者,请高手飞过:
WeBuilder 2008是一款用来制作和修改网页的软件,界面美观,功能强大,但是较之DreamWeaver,她的身材却苗条的多,最新版是9.0。但唯一遗憾的是官方网站只提供试用版(trial)下载,此版本只能使用30次,而且每次启动和退出时都会提示购买(很烦哪),30次以后软件不再运行,必须卸载购买正式版,汗~~ 但是此试用版在功能上是无限制的,这就给我们今天的教程埋下了伏笔o(∩_∩)o...
我自己也算是个新手,所以就把自己拿到这个软件以后的分析思路较为完整的记录下来,以便告诉新人们,其实人人都很平凡,只要努力,不抛弃不放弃,最终你肯定会成功的,加油!
安装后试运行软件,发现NAG启动框,提示只能使用三十次还剩多少次等等,点击"Evaluate"打开主界面,查看Help文件及观察菜单项各条目并未发现有功能限制,关闭软件——又出现一个NAG窗口提示购买,点“Close”关闭。现在心里已经有个谱了,我们要做的就是去除启动和关闭时的NAG窗口,因为如果试用30次以后,NAG启动框肯定会屏蔽主窗口不让你用(经验,软件见多了你就知道了,呵呵)
首先想到脱壳:PEID查壳Nothing found *,晕,查看EP区段发现“UPX0”,猜测这是个UPX的变形壳,OD载入(竟然并未提示软件被压缩):00D98000 >E8 00000000 call 1.00D98005
00D98005 58 pop eax
00D98006 83D8 05 sbb eax,5
00D98009 89C3 mov ebx,eax
00D9800B 83C3 30 add ebx,30
00D9800E 8B43 39 mov eax,dword ptr ds:
00D98011 05 00004000 add eax,1.00400000 ; ASCII "MZP"
00D98016 8B4B 3D mov ecx,dword ptr ds:
00D98019 89C6 mov esi,eax
00D9801B 89C7 mov edi,eax
00D9801D 8CD8 mov ax,ds
00D9801F 8EC0 mov es,ax
00D98021 B4 00 mov ah,0
00D98023 AC lods byte ptr ds:
00D98024 30E0 xor al,ah
00D98026 88C4 mov ah,al
00D98028 AA stos byte ptr es:
00D98029^ E2 F8 loopd short 1.00D98023
00D9802B 8B43 08 mov eax,dword ptr ds:
00D9802E 50 push eax
00D9802F C3 retn在第一行F7单步,然后F8走到00D9802F会返回到此:00D89F90 60 pushad
00D89F91 BE 0080AB00 mov esi,1.00AB8000
00D89F96 8DBE 009094FF lea edi,dword ptr ds:
00D89F9C 57 push edi
00D89F9D 89E5 mov ebp,esp
00D89F9F 8D9C24 80C1FFFF lea ebx,dword ptr ss:很明显了,可以直接用ESP定律到达OEP=00A26844(篇幅有限,略过,不懂的话去看http://bbs.pediy.com/showthread.php?t=55385),脱壳用ImpREC修复,竟然未找到正确的IAT,无法修复,干脆放弃脱壳,直接带壳调试(你可以手动寻找IAT,方法是“黑鹰破解提高班 第十课”,我试了,不成功)
直接OD载入原文件,F9运行出现NAG窗口后F12暂停,Alt+K打开堆栈调用窗口,双击最后一行反汇编窗口停在004F47D5处,说明NAG窗口的创建和这里有关,往上找段首到004F4678,右击——断点——硬件执行(带壳调试下段不能用F2断点)重新加载后F9运行,成功在004F4678处断下(OD左下角提示“硬件断点...”),此时看右下角堆栈窗口第一行“返回到 1.00A26A45”选中这一行回车后,直接返回到00A26A45处00A269D6 A1 B0B4A400 mov eax,dword ptr ds:
00A269DB 50 push eax
00A269DC E8 9B189EFF call 1.0040827C ; jmp 到 kernel32.UnmapViewOfFile
00A269E1 85FF test edi,edi
00A269E3 0F84 C3010000 je 1.00A26BAC
00A269E9 57 push edi
00A269EA E8 4D139EFF call 1.00407D3C ; jmp 到 kernel32.CloseHandle
00A269EF E9 B8010000 jmp 1.00A26BAC
00A269F4 A1 C011A400 mov eax,dword ptr ds:
00A269F9 8B00 mov eax,dword ptr ds:
00A269FB 83C0 50 add eax,50
00A269FE BA 246CA200 mov edx,1.00A26C24 ; ASCII "help.chm"
00A26A03 E8 A8E59DFF call 1.00404FB0
00A26A08 A1 C011A400 mov eax,dword ptr ds:
00A26A0D 8B00 mov eax,dword ptr ds:
00A26A0F BA 386CA200 mov edx,1.00A26C38 ; ASCII "WeBuilder 2008"
00A26A14 E8 5F0FADFF call 1.004F7978
00A26A19 6A 00 push 0
00A26A1B E8 74229EFF call 1.00408C94 ; jmp 到 USER32.MessageBeep
00A26A20 33C9 xor ecx,ecx
00A26A22 B2 01 mov dl,1
00A26A24 A1 784BA200 mov eax,dword ptr ds:
00A26A29 E8 F297ACFF call 1.004F0220
00A26A2E 8B15 0014A400 mov edx,dword ptr ds: ; 1.00A4B4A0
00A26A34 8902 mov dword ptr ds:,eax
00A26A36 A1 0014A400 mov eax,dword ptr ds:
00A26A3B 8B00 mov eax,dword ptr ds:
00A26A3D 8B10 mov edx,dword ptr ds:
00A26A3F FF92 EC000000 call dword ptr ds: ******这个调用可疑****
00A26A45 83F8 02 cmp eax,2 *******返回到这里*****
00A26A48 0F84 5E010000 je 1.00A26BAC
00A26A4E A1 0014A400 mov eax,dword ptr ds:
00A26A53 8B00 mov eax,dword ptr ds:重新加载跟踪发现00A26A3F的call就是调用NAG的,尝试几次修改它上面的跳转(如00A269E3处)不成功,直接把00A26A3F给NOP掉——成功进入主界面!在记事本上做好记录,接着来处理软件关闭时的NAG。
OD加载运行软件后点关闭按钮,出现NAG时同上用F12暂停法定位关键call,堆栈返回后到达009FB15A,如下009FB11E DFE0 fstsw ax
009FB120 9E sahf
009FB121 77 41 ja short 1.009FB164 *****关键的一个跳转*****
009FB123 8BCB mov ecx,ebx
009FB125 B2 01 mov dl,1
009FB127 A1 9CAA9F00 mov eax,dword ptr ds:
009FB12C E8 EF50AFFF call 1.004F0220
009FB131 A3 A0B2A400 mov dword ptr ds:,eax
009FB136 A1 A0B2A400 mov eax,dword ptr ds:
009FB13B 8B55 F0 mov edx,dword ptr ss:
009FB13E 8990 10030000 mov dword ptr ds:,edx
009FB144 8B55 F4 mov edx,dword ptr ss:
009FB147 8990 14030000 mov dword ptr ds:,edx
009FB14D A1 A0B2A400 mov eax,dword ptr ds:
009FB152 8B10 mov edx,dword ptr ds:
009FB154 FF92 EC000000 call dword ptr ds: ***那这个调用就很可疑了***
009FB15A A1 A0B2A400 mov eax,dword ptr ds: ******返回到这里******
009FB15F E8 E48EA0FF call 1.00404048
009FB164 33C0 xor eax,eax
009FB166 5A pop edx
009FB167 59 pop ecx
009FB168 59 pop ecx
009FB169 64:8910 mov dword ptr fs:,edx
009FB16C 68 81B19F00 push 1.009FB181
009FB171 8D45 FC lea eax,dword ptr ss:
009FB174 E8 E39DA0FF call 1.00404F5C
009FB179 C3 retn尝试把009FB121处的跳转ja改成jb后(机器码是77—>72)可以直接关闭软件!
到此全部工作完成,所有限制都已去除。
用dUP V2.16做文件补丁,共两处,如下:
00A26A3F FF92 EC000000 call dword ptr ds:
改成
00A26A3F 90 nop
00A26A40 90 nop
00A26A41 90 nop
00A26A42 90 nop
00A26A43 90 nop
00A26A44 90 nop
*******************************************************
009FB121 /77 41 ja short webuild.009FB164
改成
009FB121 /72 41 jb short webuild.009FB164
dUP的补丁方案和做好的补丁发布如下:
[ 本帖最后由 playboysen 于 2008-7-20 18:54 编辑 ] 很好很强大,谢谢楼主 谢谢楼主提供这么好的资源啊!我正需要好好研究呢?谢谢楼主了!!! 感谢楼主提供!!!下载收藏了~ 方便大家,给个脱壳的
楼主的ID让我想起了一个人哈
[ 本帖最后由 月之精灵 于 2008-6-30 19:36 编辑 ] 呵呵,想起谁了啊?/:018 谢谢。。。又学习了,碰到这种变形壳,新手就没办法了。 又是变形壳,学习一下.谢谢! 原帖由 月之精灵 于 2008-6-30 18:34 发表 https://www.chinapyg.com/images/common/back.gif
方便大家,给个脱壳的
33845
33846
楼主的ID让我想起了一个人哈
呵呵,月之精灵干脆好人做到底,顺便把此程序的脱壳过程简单说一下,大家也好对照学习,看看自己到底哪里弄错了哦 闲来无事重翻旧账,解决曾经遗留问题......
手动查找IAT可以成功脱壳
OEP:0061D618
RVA:006432F8
SIZE:00000CEC
然后点"获取输入表"修复脱壳文件成功!
页:
[1]
2