好友
阅读权限40
听众
最后登录1970-1-1
|
本帖最后由 冥界3大法王 于 2014-4-20 20:55 编辑
利用有bug的破解补丁+在线申请到的14天试用码实现梦想:
要破解的这个程序是一个非常不错的硬盘镜像和取证工具
支持的格式超级强大~~
分析:
1,未注册版,点击第一个按钮出来A
2, 标题栏显示未激活版 字样 B
3,关于菜单中是“试用过期字样”C
(如果已激活则是激活字样,当然用OD调试还能发现有未注册字样)
4,我们到官方网站申请一个临时的注册码(前面1说过,不然出A无法试用)
D是我们申请到的14天试用版注册码(到2014年5.1过期)
在线申请临时试用激活成功后的截图E
值得补充交待的是,我们来到软件目录发现:
这里会有两个蛋痛的,超级大的文件,作为业界搞破解的同学们
不用多解释就知道这是干啥的了吧?(当破解成功后可以精简掉的)
通过OD调试和Regshot我们发现注册表中会存在在线申请认证试用版
注册成功的标志的键值。
5之后标题栏变成了F--》 14天试用字样
再次点击第一个按钮 就会出来G
到这里,我们要重点说一说本文的要点啦~~~
在网上你能下载到一个假激活的破解补丁
009667A4 /$ 53 push ebx
009667A5 |. 8BD8 mov ebx,eax
009667A7 |. 8BC3 mov eax,ebx
009667A9 |. E8 6A000000 call MIPGUI.00966818 A1
009667AE |. 84C0 test al,al 它修改了这里84-->85
009667B0 |. 0F94C0 sete al 条件为真,AL为0
009667B3 |. 5B pop ebx
009667B4 \. C3 retn 返回到 009651D8 |这里的数值多次不一样
这样就虽然标题栏和关于中都显示了激活字样,但是来到图G的地方
你会发现新创建的磁盘加载时就会报错(这里少图一张稍候补充)
我们现在开始初步下以下结论:
1,它破解的地方虽然是全局的,但破坏了某些东西
2,网上申请到的14天试用版走的路线分支和赋值语句是局部的,所以导致标题栏是14天试用字样
当然14天后肯定得过期(有人说是不是可以无线申请?)OD调试时发现14天字样不会变化,但过期的字符还是隐约能看到的
说到这里大家应该明白,我打算做干什么了吧?把两者的结论合二为一,取长补短。
好吧,费话说了一大堆,现在开始OD调试没解决的问题
------------------------------------------------------------------------------
先把断点设在A1,按下F9,三次后,我们能进入主界面中。(以14天试用版来调试)
------------------------------------------------------------------------------
当点击关于或第一个按钮时,同样来到A1处
009667A9 |. E8 6A000000 call MIPGUI.00966818 ( A1)
009667AE |. 84C0 test al,al
009667B0 |. 0F94C0 sete al ;al为0
009667B3 |. 5B pop ebx ; 04348120 此时寄存器eax=1
009667B4 \. C3 retn ;返回到 00BBF61C
按一下F8我们来到
00BBF61C |. 84C0 test al,al
00BBF61E |. 75 6B jnz XMIPGUI.00BBF68B 实现跳到A3 (A2)
00BBF620 |. E8 9375DAFF call MIPGUI.00966BB8
00BBF625 |. 8B80 10010000 mov eax,dword ptr ds:[eax+0x110]
00BBF62B |. 8B10 mov edx,dword ptr ds:[eax]
00BBF62D |. FF52 20 call dword ptr ds:[edx+0x20]
00BBF630 |. 85C0 test eax,eax
00BBF632 |. 7E 45 jle XMIPGUI.00BBF679
00BBF634 |. 8D45 A0 lea eax,[local.24]
00BBF637 |. 50 push eax
00BBF638 |. E8 7B75DAFF call MIPGUI.00966BB8
00BBF63D |. 8B80 10010000 mov eax,dword ptr ds:[eax+0x110]
00BBF643 |. 8B10 mov edx,dword ptr ds:[eax]
00BBF645 |. FF52 20 call dword ptr ds:[edx+0x20]
00BBF648 |. 8D55 94 lea edx,[local.27]
00BBF64B |. E8 504E86FF call MIPGUI.004244A0
00BBF650 |. 8B45 94 mov eax,[local.27]
00BBF653 |. 8945 98 mov [local.26],eax
00BBF656 |. C645 9C 11 mov byte ptr ss:[ebp-0x64],0x11
00BBF65A |. 8D55 98 lea edx,[local.26]
00BBF65D |. 33C9 xor ecx,ecx
00BBF65F |. B8 84F7BB00 mov eax,MIPGUI.00BBF784 ; Trial (%s days left)
00BBF664 |. E8 5F6B86FF call MIPGUI.004261C8
00BBF669 |. 8B55 A0 mov edx,[local.24]
00BBF66C |. 8B83 CC030000 mov eax,dword ptr ds:[ebx+0x3CC]
00BBF672 |. E8 31308FFF call MIPGUI.004B26A8
00BBF677 |. EB 22 jmp XMIPGUI.00BBF69B
00BBF679 |> BA BCF7BB00 mov edx,MIPGUI.00BBF7BC ; Trial expired.
00BBF67E |. 8B83 CC030000 mov eax,dword ptr ds:[ebx+0x3CC]
00BBF684 |. E8 1F308FFF call MIPGUI.004B26A8
00BBF689 |. EB 10 jmp XMIPGUI.00BBF69B
00BBF68B |> BA E8F7BB00 mov edx,MIPGUI.00BBF7E8 ; Activated. A3
这里后台窗口虚化中。。。。。
我们把
00BBF61E |. 75 6B jnz XMIPGUI.00BBF68B 这句NOP掉
00BBF61E 90 nop ; Y (申请试用成功的实现了)
00BBF61F 90 nop
00BBF620 |. E8 9375DAFF call MIPGUI.00966BB8
00BBF625 |. 8B80 10010000 mov eax,dword ptr ds:[eax+0x110]
00BBF62B |. 8B10 mov edx,dword ptr ds:[eax]
00BBF62D |. FF52 20 call dword ptr ds:[edx+0x20]
00BBF630 |. 85C0 test eax,eax
00BBF632 |. 7E 45 jle XMIPGUI.00BBF679 ; 很显然这句,过期后实现,肯定我们到时得NOP掉
00BBF634 |. 8D45 A0 lea eax,[local.24]
00BBF637 |. 50 push eax
00BBF638 |. E8 7B75DAFF call MIPGUI.00966BB8 (B1)
00BBF63D |. 8B80 10010000 mov eax,dword ptr ds:[eax+0x110]
00BBF643 |. 8B10 mov edx,dword ptr ds:[eax]
00BBF645 |. FF52 20 call dword ptr ds:[edx+0x20] (B2)
00BBF648 |. 8D55 94 lea edx,[local.27]
00BBF64B |. E8 504E86FF call MIPGUI.004244A0 (B3)
00BBF650 |. 8B45 94 mov eax,[local.27] ; 在这里我们看到一个12(算算时间果然是剩12天)
00BBF653 |. 8945 98 mov [local.26],eax
00BBF656 |. C645 9C 11 mov byte ptr ss:[ebp-0x64],0x11
00BBF65A |. 8D55 98 lea edx,[local.26]
00BBF65D |. 33C9 xor ecx,ecx
00BBF65F |. B8 84F7BB00 mov eax,MIPGUI.00BBF784 ; Trial (%s days left)
字样果然变了
------------------------------------------------------------------------------
再把B1 B2 B3设断点
看一下,为什么是12,12是怎么来的?
先尝试破解思路1,永远是激活的试用版
跟过后发现B1不是
我们要找的是0B字样 12天
B2进入后不久
我,靠,重大发现!
004640EA |. 0FB745 10 movzx eax,word ptr ss:[ebp+0x10]
我们尝试在寄存器中修改为FF 255天看!到底下面再F8时,是否会影响到?
当我们再路过
00BBF650 |. 8B45 94 mov eax,[local.27] 时看到的不是255,为啥是256?
又时啥时候+1的?
虽然上面显示的是试用字样,不好看,但确证明了我们的猜测
这个程序为了到期后过期真是煞费苦心啊。
当我们第二次再调试时发现上面的搞法不太灵光了
B3处仍然有赋值语句,寄存器中能看到第二次赋值
不但有网络验证还有注册表同样B3里会再一次时间
004640EA |. 0FB745 10 movzx eax,word ptr ss:[ebp+0x10]这个地方是公共的交集部分
点击第一个按钮时,也会来到此处传递东西
好吧,我们再次大胆的猜测下,
这里的时间显示问题:标题栏上显示的是假14天,而关于中是我们修改过的天数
而那个授权管理器中显示的也是12天,也就间接证明了,时间天数至少还会有一个地方初始化14天
很有可能是注册表中假申请试用码的那个有关~~~
依然第二次时,来到后修改
堆栈 ss:[0018F654]=4002
eax=0000000B
寄存器
EBX的值 修改255
我也就是说明,我们得改EBX
再F8跟下来可看到上图显示的试用字样天数256
接下来,我们尝试找到那个地址初始化的地方
让它每次都是255天(256)
当我们使用的是未申请激活码版时,这里改了后,只能让
局部显示显示注册成功字样,也就说明修改的地方只是一部分
所以:
009667A9 |. E8 6A000000 call MIPGUI.00966818 A1这里必须得跟入
009667AE |. 84C0 test al,al
009667B0 |. 0F94C0 sete al
009667B3 |. 5B pop ebx
009667B4 \. C3 retn 这里的返回值前边也说过得3次F9
当我们用一次注册表比较后,
新添加值 (20) 快照 B
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{11DD82BD-11DD-11DD-11OD-11DD82BD7CBC}]
"ProgVersionId"=hex:11,dd,82,bd,7c,bc,c0,77,d0,f8,30,df,dd,b4,04,12,f0,7d,ef,\
2c,3c,e3,ac,ca,82,41,9a,0f,a6,82,a2,06
"Binary"=hex:98,a9,bd,fd,35,23,5a,44,9f,37,61,b2,0c,86,a8,36,16,25,fe,27,a2,35,\
55,21,4e,43,33,05,5f,6a,ca,6e
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2EO684O7-2EO6-2EO6-2EO6-2EO684O71O6A}]
"ProgVersionId"=hex:2e,06,84,07,10,6a,45,a3,80,b7,db,e4,de,af,31,a7,98,94,cf,\
ba,3c,71,f4,51,08,72,c8,1f,b2,7b,8d,cf
"Binary"=hex:03,ce,68,23,83,5d,63,58,6f,c2,b9,a6,6b,1f,35,d7,c6,9e,fb,a8,ed,1d,\
d5,8c,fd,07,08,26,5d,9e,a5,ed
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{7195FDCE-7195-7195-71O5-7195FDCE9343}]
"ProgVersionId"=hex:71,95,fd,ce,93,43,38,65,62,0a,59,a8,1f,3e,30,4f,11,4e,b5,\
e3,d7,d3,b6,99,42,03,1f,da,22,c1,78,f7
"Binary"=hex:7d,79,ea,8b,3a,68,48,61,5b,ee,cc,e3,76,05,36,f6,1c
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B5181O5D-B518-B518-B518-B5181O5D9CD2}]
"ProgVersionId"=hex:b5,18,10,5d,9c,d2,4a,e2,1b,7c,fc,b7,57,d5,9e,ed,70,51,5e,\
cb,f2,d2,c5,40,ff,12,b6,a4,5b,8d,72,fe
"Binary"=hex:1a,e5,0a,8e,d6,93,a4,e6,27,5f,10,79,0b,fe,83,15,60
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{11DD82BD-11DD-11DD-11OD-11DD82BD7CBC}]
"ProgVersionId"=hex:11,dd,82,bd,7c,bc,c0,77,d0,f8,30,df,dd,b4,04,12,f0,7d,ef,\
2c,3c,e3,ac,ca,82,41,9a,0f,a6,82,a2,06
"Binary"=hex:98,a9,bd,fd,35,23,5a,44,9f,37,61,b2,0c,86,a8,36,16,25,fe,27,a2,35,\
55,21,4e,43,33,05,5f,6a,ca,6e
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{2EO684O7-2EO6-2EO6-2EO6-2EO684O71O6A}]
"ProgVersionId"=hex:2e,06,84,07,10,6a,45,a3,80,b7,db,e4,de,af,31,a7,98,94,cf,\
ba,3c,71,f4,51,08,72,c8,1f,b2,7b,8d,cf
"Binary"=hex:03,ce,68,23,83,5d,63,58,6f,c2,b9,a6,6b,1f,35,d7,c6,9e,fb,a8,ed,1d,\
d5,8c,fd,07,08,26,5d,9e,a5,ed
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{7195FDCE-7195-7195-71O5-7195FDCE9343}]
"ProgVersionId"=hex:71,95,fd,ce,93,43,38,65,62,0a,59,a8,1f,3e,30,4f,11,4e,b5,\
e3,d7,d3,b6,99,42,03,1f,da,22,c1,78,f7
"Binary"=hex:7d,79,ea,8b,3a,68,48,61,5b,ee,cc,e3,76,05,36,f6,1c
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{B5181O5D-B518-B518-B518-B5181O5D9CD2}]
"ProgVersionId"=hex:b5,18,10,5d,9c,d2,4a,e2,1b,7c,fc,b7,57,d5,9e,ed,70,51,5e,\
cb,f2,d2,c5,40,ff,12,b6,a4,5b,8d,72,fe
"Binary"=hex:1a,e5,0a,8e,d6,93,a4,e6,27,5f,10,79,0b,fe,83,15,60
已改变值 (7) 快照 A
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\24]
"ffffffffffffffffffffffffffffff01"=hex:00,00,00,00,03,01,00,00,02,00,00,00,ff,\
ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
"ffffffffffffffffffffffffffffff01"=hex:00,00,00,00,03,01,00,00,07,00,00,00,ff,\
ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\24]
"ffffffffffffffffffffffffffffff01"=hex:00,00,00,00,03,01,00,00,02,00,00,00,ff,\
ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
"ffffffffffffffffffffffffffffff01"=hex:00,00,00,00,03,01,00,00,07,00,00,00,ff,\
ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
上面的部分,跟不去了,不知思路了
------------------------------------------------------------------------------
------------------------------------------------------------------------------
我们换个思路,开始找AL=0的地方
00F9C1E0 >/$ B8 FF000000 mov eax,0xFF ; 打开OD后停在这里,一路F8
00F9C1E5 |. 8B1D 28820501 mov ebx,dword ptr ds:[0x1058228]
00F9C1EB |. F7C3 00010000 test ebx,0x100
00F9C1F1 |. 74 0C je XMIPGUI.00F9C1FF ; Y
00F9C1F3 |. 8BFC mov edi,esp
00F9C1F5 |. 8B47 0C mov eax,dword ptr ds:[edi+0xC]
00F9C1F8 |. 50 push eax
00F9C1F9 |. 8B47 08 mov eax,dword ptr ds:[edi+0x8]
00F9C1FC |. 50 push eax
00F9C1FD |. EB 02 jmp XMIPGUI.00F9C201
00F9C1FF |> 50 push eax
00F9C200 |. 50 push eax
00F9C201 |> E8 5AFFFFFF call MIPGUI.00F9C160 ; 这里按F8时,就会等待一下来到009667A9
接着一路F8
我们要密切关注:
movzx eax,word ptr ss:[ebp+0x10]的地方和 0B
我们尝试把00934425 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
改成00934425 8B55 10 mov edx,dword ptr ss:[ebp+0x10]
发现程序标题栏变成了 未激活版本,等点击第一个按钮时,又变成了14天字样
我们把进程中的这东西杀掉~~
C:\Program Files (x86)\CodeMeter\Runtime\bin\CodeMeter.exe
我们用Process Monitor看看还有啥发现?
用regworkshop来到
HKEY_LOCAL_MACHINE\SOFTWARE\WIBU-SYSTEMS\CodeMeter\Server\CurrentVersion
发现一个叫ApiCommunicationMode的键值 正好是14,我们改成其他的试试发现不管用,重启软件后,会再变回来,我们这次把网络关上
HKEY_LOCAL_MACHINE\SOFTWARE\WIBU-SYSTEMS\CodeMeter\Server\CurrentVersion\CmAct\ActivatedLicenses
HKEY_LOCAL_MACHINE\SOFTWARE\WIBU-SYSTEMS\CodeMeter\Server\CurrentVersion\CmAct\SerialNumberMapper
我们发现依然还是激活的试用14字样
我们再把文件夹也移到回收站
哈哈,这次我们发现程序终于变回原始样子了。
此时,就算你导入刚才的注册表部分 是无效果的。
------------------------------------------------------------------------------
但是!一旦你把注册表 和 上面 粗红斜 字体显示的地方归还回去(文件和注册表),
你会发现这个程序
又欢快的跑起来,不然运行速度就打折了。
可见这个作者脑子动的够绝的~~
到处配合的环环相扣~~滴水不露~~
------------------------------------------------------------------------------
我们再去看一下
这个程序的主要参数和用途可知
连日志文件也是多个都够服务器有关
难怪用抓包工具只能看到端口号 和 一堆乱码,连网址都没有看到
发现一个重要网址还是在OD中多次蒙到的
难怪我们在WinHex内存中看到的激活字样有4个
可见似乎我们修改时间限制的那条路不好走~~~
我们先尝试把上面的信息备份出来一份,看重安之后能否再用(试用期内,不连网)
我们现在是在deepfreeze环境下搞的~~
重启后发现,还是不行。
------------------------------------------------------------------------------
00BD265C /75 2E jnz XMIPGUI.00BD268C ; 这里强改能跳过,但程序因此无法装载
00BD265E |. |8D55 FC lea edx,[local.1]
00BD2661 |. |B8 14E6BC00 mov eax,MIPGUI.00BCE614
00BD2666 |. |E8 75A483FF call MIPGUI.0040CAE0
00BD266B |. |B0 02 mov al,0x2
00BD266D |. |0FB715 4427BD>movzx edx,word ptr ds:[0xBD2744]
00BD2674 |. |33C9 xor ecx,ecx
00BD2676 |. |51 push ecx
00BD2677 |. |6A FF push -0x1
00BD2679 |. |6A FF push -0x1
00BD267B |. |6A 00 push 0x0
00BD267D |. |8B4D FC mov ecx,[local.1]
00BD2680 |. |92 xchg eax,edx
00BD2681 |. |91 xchg eax,ecx
00BD2682 |. |E8 612495FF call MIPGUI.00524AE8 ; 这里弹出请激活对话框
00BD2687 |. |E9 8F000000 jmp MIPGUI.00BD271B
00BD268C |> \E8 2745D9FF call MIPGUI.00966BB8
------------------------------------------------------------------------------
进级操作第2部分(设法强制修改程序,让它认为自己是试用激活版的)
------------------------------------------------------------------------------
进级操作第3部分(终级激活)
一路F8
00BBF632 |. /7E 45 jle XMIPGUI.00BBF679
00BBF634 |. |8D45 A0 lea eax,[local.24]
00BBF637 |. |50 push eax
00BBF638 |. |E8 7B75DAFF call MIPGUI.00966BB8
00BBF63D |. |8B80 10010000 mov eax,dword ptr ds:[eax+0x110]
00BBF643 |. |8B10 mov edx,dword ptr ds:[eax]
00BBF645 |. |FF52 20 call dword ptr ds:[edx+0x20]
00BBF648 |. |8D55 94 lea edx,[local.27]
00BBF64B |. |E8 504E86FF call MIPGUI.004244A0
00BBF650 |. |8B45 94 mov eax,[local.27]
00BBF653 |. |8945 98 mov [local.26],eax
00BBF656 |. |C645 9C 11 mov byte ptr ss:[ebp-0x64],0x11
00BBF65A |. |8D55 98 lea edx,[local.26]
00BBF65D |. |33C9 xor ecx,ecx
00BBF65F |. |B8 84F7BB00 mov eax,MIPGUI.00BBF784 ; Trial (%s days left)
00BBF664 |. |E8 5F6B86FF call MIPGUI.004261C8
00BBF669 |. |8B55 A0 mov edx,[local.24]
00BBF66C |. |8B83 CC030000 mov eax,dword ptr ds:[ebx+0x3CC]
00BBF672 |. |E8 31308FFF call MIPGUI.004B26A8
00BBF677 |. |EB 22 jmp XMIPGUI.00BBF69B
00BBF679 |> \BA BCF7BB00 mov edx,MIPGUI.00BBF7BC ; Trial expired.
00BBF67E |. 8B83 CC030000 mov eax,dword ptr ds:[ebx+0x3CC]
00BBF684 |. E8 1F308FFF call MIPGUI.004B26A8
00BBF689 |. EB 10 jmp XMIPGUI.00BBF69B
00BBF68B |> BA E8F7BB00 mov edx,MIPGUI.00BBF7E8 ; Activated.
|
免费评分
-
查看全部评分
|