求metasequoia4.5.6水杉4.5.4汉化版下载!

水杉Metasequoia3.1.2汉化版_3d定制女仆吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:61,104贴子:
水杉Metasequoia3.1.2汉化版
此楼为想做MOD的吧友提供工具,不过汉化版加载日文的话容易出现乱码,另外有时候会有点BUG,建议使用日文版,刚入门汉化版作用比较大----用法请教程是也----1L防被吞,2L上链接另外大学也快开学了,开学前将一部分个人自己做的MOD发布出来,质量不及与11区大神的MOD,也请见谅~~MOD的帖子将另外开一个~~
随后会放制作过程
此帖对国内两位新生代男...
一年一届的中国金鸡百花...
@丨周慧敏丨 大声告诉...
【ID】腐海无涯不回头 ...
万众期待的第33届大众百...
  日,乔...
其实我觉得学历也就只有...
先总结: 上世纪九十年代...
最近微微一笑很倾城出来...
据说还要打遍全中国的初...
贯彻一贯拆开了、嚼烂了...
找私人定制代运营尽在淘宝网,万千商家大比价,品质护航收藏无忧.找私人定制代运营上淘宝网,海量用户的选择,淘,你喜欢!
水杉3.1.2汉化版链接:http://☆/☆share/link?shareid=☆&uk=记得去掉星星哟~~
技术宅拯救技术宅
我们来做盆友好嘛~~~~~
贴吧热议榜
使用签名档&&
保存至快速回贴AutoCAD 2015已经更新到SP1版本,它是用于二维绘图、详细绘制、设计文档和基本三维设计。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非
AutoCAD 2007最新软件版本将直观强大的概念设计和视觉工具结合在一起,促进了2D设计向3D设计的转换!Autodesk推出AutoCAD 2007软件,该软件将帮助建筑师、工程师和设计师更。
3D Studio Max ,常简称为3ds Max或MAX,是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,最新版本是201
AutoCAD2007是目前工程人员使用的最多的cad软件,在国内外广泛应用于机械、建筑、家居、纺织等诸多行业。这里给大家提供一个免注册版的cad2007下载,很多网友安装时会发现自己安装过程中出现缺
AutoCAD是由美国Autodesk欧特克官方于二十世纪八十年代初为微机上应用CAD技术(Computer Aided Design,计算机辅助设计)而开发的绘图程序软件。
安装激活:1、安装Autodesk AutoCAD 20142、使用以下序列号666-安装。3、产品密码为001F14、安装完成后,启动Autodesk产品5、点击
&PTC日前宣布其MCAD/CAM/CAE软件的主要版本Pro/ENGINEER Wildfire野火版(PTC一体化产品开发体系的重要部分)隆重上市。Pro/ENGINEER Wildfi
利用AutoCAD图形平台开发的最新一代建筑软件TArch 8.0,继续以先进的建筑对象概念服务于建筑施工图设计,成为建筑CAD的首选软件,同时天正建筑对象创建的建筑模型已经成为天正电气、给排水、日照
CAD2014功能方面有了很大的提升。喜欢用草图大师作图的人可以试下2014,CAD2014已经支持Sketch Up软件存取的SKP格式的图形而且还可继承SKP格式文件已经附的材质。SKP格式的图形
在SolidWorks2012破解版中增加了大型审阅图和走查等众多功能,其中大型审阅图可以快速打开复杂的大型装配体,节省系统资源。走查功能可以模仿人眼的观察走向,可以更加清晰的看到复杂的构造内部。
Metasequoia(水杉软件) 汉化中文版V3.1.4
其他下载地址:查看: 6535|回复: 17
水杉4 爆破过程
阅读权限20
本帖最后由 cdj68765 于
01:51 编辑
水杉4,在日本发售的一款建模软件,可以在官网下载到完整的源程序供安装试用,输入购买的后,才能享受完整的功能,
该程序仅仅只用线下的用户名+验证,验证过程并不需要联网,不过序列号验证过程会需要验证版本,一共五个版本,限期高级版和限期普通版,不限期高级版和普通版,以及试用版
该软件有64位以及32位版本,由于考虑到当前32位的动态调试技术比较成熟,而且估计作者并不会为了64位重新写一遍代码,而只会在原有代码的基础上,直接让IDE生成64位的程式,因此只要作者用的IDE是同一款,就可以保证汇编层面代码的相似性,所以本次就先突破32位程序,再突破64位的
32位下主要的动态调试工具还是OD,然后用做辅助分析,哎,果然能直接保存修改结果的工具都是好工具啊,IDA你也学学,每次都让我用16位编辑修改程序,我会想死的。(别跟我提IDA6.0版本以后能直接保存修改结果的问题,我不想听QAQ)
64位使用X64dbg动态调试工具,根据32位的修改,修改相应的64位指令完成破解就行。
废话不多说,先从官网下载程式
然后第一件事情么,查壳
QQ截图59.png (36.8 KB, 下载次数: 1)
14:59 上传
唔,然而并没有找到什么,两个可能性,未知壳,或者没壳
嘛,先不管了,直接载入OD吧,看OD怎么说
QQ截图59.png (17.31 KB, 下载次数: 1)
15:01 上传
唔,没壳,而且注释巨详细无比,好像没啥挑战性的感觉,233
嘛,不管了,直接运行下,找下破解的线索呗
一运行,直接跳出一个框,要求你输入ID
QQ截图59.png (40.64 KB, 下载次数: 1)
15:04 上传
按否的话,直接进入主程序并且是试用版的,按是的话,就是要求输入账号以及序列号的结构。
可以了,我们的线索已经找到,就从这个对话框入手,然后我们给MessageBox下断..下断,下毛断啊,这个明显不是系统的Wndows的API啊
来,我们换一套套路,右键 搜索字符串,看能不能从字符串下手,看能不能找到我感兴趣的东西
QQ截图59.png (14.35 KB, 下载次数: 1)
15:12 上传
还真被我找到了,一个明显是注册表地址的东西,以及V4ID1和V4ID2,V4明显说的是版本4,ID1 2 就更不用说了。
我们双击进去看看
很长很长一段代码,不过不知道为什么,这个程序给的提示太明显
QQ截图59.png (9.48 KB, 下载次数: 1)
15:14 上传
MQ就是水杉的简写,后面跟着一个英文字注册字样以及作用域符::外加一个清除密码的字样
嘛,我们在返回下一个断,然后运行看看
果真,一运行就直接断下来了,而且什么窗体都没有出现,估计这一块就是跟验证有关的过程,我们跟下去瞅瞅
首先我看到了
QQ截图59.png (8.29 KB, 下载次数: 1)
15:20 上传
额,作用域后面写着检查注册证明..嘚,要不要这么为反汇编人员着想,把明显是编写人员写的函数名称展现给我看?
嘛,也不管吧,Ctrl+F9,跳转到函数的返回,下个断,然后跟下去看看
[Asm] 纯文本查看 复制代码$ ==&
&call Metaseq.MQRegister::CheckRegistrat&
&mov ebx,dword ptr ds:[&&MTKit.MTDialog:&;
MTKit.MTDialog::messageYesNoBox
&mov esi,dword ptr ds:[&&MLibs.MString::&;
MLibs.MString::MString
&mov edi,dword ptr ds:[&&MLibs.MString::&;
MLibs.MString::~MString
&add esp,0x4
&mov dword ptr ss:[esp+0x6C],
把验证结果输入到该堆栈地址
&cmp eax,0x3
判断验证结果是否是3; Switch (cases 0..6)
&jnz XMetaseq.
判断不通过则跳转
&push Metaseq.016A41BC
M Case 3 of switch
&lea ecx,dword ptr ss:[esp+0x54]
&&MLibs.MString::MString&
&mov byte ptr ss:[esp+0x380],0x1
&mov ecx,Metaseq.016A41E0
SerialTimeover
不知道各种有木有从这里看出什么没,
至少我这边看到,经过刚才那个叫做CheckRegistration的函数以后,后面紧跟着一个叫做MTDialog::messageYesNoBox的函数,看来程式一打开就显示的确认序列号窗口,就是这货了,只不过这里还没有call,只是把虚拟地址给了ebx寄存器,准备找个时机call ebx就行
后面一个选择跳转,然后又看到了SerialTimeover,估计是试用期限到了的意思
我们不管,直接F9,等待下一次断在CheckRegistration的地方
跳出来验证窗口,我不管,直接运行程序,然后程序又一次断下来了
再按下F9,然后程序直接运行了
好,以上都是收集线索的过程,接下来我们要开始调试了
首先我确认,CheckRegistration就是一个验证你注册与否的地方,也就是说,将来我要修改的地方指令,就在这里面,只不过现在这个函数对我来说,还是个黑匣子,我想从外部了解他
我们回到之前那个我看到MTKit.MTDialog::messageYesNoBox的地方,我认为,如果我们注册通过了,程序就不应该call这个函数的
于是我们跟踪下去
[Asm] 纯文本查看 复制代码$-50
&test eax,eax
经过CheckRegistration后,不久就跳到这里
&je Metaseq.00F398F6
确认是否跳过messageYesNoBox
call 了MTKit.MTDialog::messageYesNoBox
经过CheckRegistration以后很快就到了这里,用test进行对比rax寄存器的与操作,我们没有注册,所以这里的对比结果是真,因此后面的je不跳过
我把后面的je改成jne以后,再启动,messageYesNoBox窗口果然不见了,不过仅仅只是确认注册信息的窗口不见了而已,软件启动以后还是试用版
不过至少,我清楚了,经过CheckRegistration以后,会影响rax寄存器里面的数值,如果call这个函数以后,输出到rax里面的是1,就代表没有注册
于是我们回到CheckRegistration这个函数里面,现在开始,才认真观看这个函数到底干了什么
首先是一大段的初始化过程
[Asm] 纯文本查看 复制代码$ ==&
&mov ebp,esp
&and esp,0xFFFFFFF8
&push -0x1
&push Metaseq.013E0352
&mov eax,dword ptr fs:[0]
&sub esp,0xA0
&mov eax,dword ptr ds:[__security_cookie]
&xor eax,esp
&mov dword ptr ss:[esp+0x98],eax
&mov eax,dword ptr ds:[__security_cookie]
&xor eax,esp
&lea eax,dword ptr ss:[esp+0xB0]
&mov dword ptr fs:[0],eax
&mov eax,[arg.1]
&mov edi,ecx
&xor ebx,ebx
&mov dword ptr ss:[esp+0x24],ebx
&mov esi,dword ptr ds:[&&MLibs.MString::MSt&;
MLibs.MString::MString
&lea ecx,dword ptr ss:[esp+0x18]
&mov dword ptr ss:[esp+0x58],eax
&mov dword ptr ss:[esp+0x5C],edi
&&MLibs.MString::MString&
&lea ecx,dword ptr ss:[esp+0x60]
&mov dword ptr ss:[esp+0xB8],ebx
&lea ecx,dword ptr ss:[esp+0x80]
&mov byte ptr ss:[esp+0xB8],0x1
&mov byte ptr ss:[esp+0xB8],0x2
&mov dword ptr ss:[esp+0x34],0x1
&mov dword ptr ds:[edi],-0x1
&mov byte ptr ds:[0x14D1AC0],bl
&mov dword ptr ss:[esp+0x38],ebx
&mov dword ptr ss:[esp+0x3C],ebx
&mov dword ptr ss:[esp+0x40],ebx
&mov byte ptr ss:[esp+0xB8],0x3
&xor ecx,ecx
&mov dword ptr ss:[esp+0xA0],0x7
&mov dword ptr ss:[esp+0x9C],ebx
&mov word ptr ss:[esp+0x8C],cx
&lea ecx,dword ptr ss:[esp+0x8C]
&lea ebx,dword ptr ss:[esp+0x38]
&mov byte ptr ss:[esp+0xB8],0x4
&call Metaseq.std::vector&std::basic_string&
&mov byte ptr ss:[esp+0xB8],0x3
&cmp dword ptr ss:[esp+0xA0],0x8
&jb XMetaseq.013B8524
&mov edx,dword ptr ss:[esp+0x8C]
&call dword ptr ds:[&&MSVCR100.operator del&;
msvcr100.operator delete
&add esp,0x4
&xor ebx,ebx
&xor eax,eax
&lea ecx,dword ptr ss:[esp+0x6C]
&mov dword ptr ss:[esp+0xA0],0x7
&mov dword ptr ss:[esp+0x9C],ebx
&mov word ptr ss:[esp+0x8C],ax
初始化各种参数,我估计很多都是迷惑人的,
然后是从注册表获得激活码的过程
[Asm] 纯文本查看 复制代码$+126
&call dword ptr ds:[&&MLibs.MRegistry::MReg&;
MLibs.MRegistry::MRegistry
&mov byte ptr ss:[esp+0xB8],0x5
&mov edi,dword ptr ds:[&&MLibs.MRegistry::O&;
MLibs.MRegistry::Open
&mov dword ptr ss:[esp+0x48],ebx
&mov edi,edi
&/cmp byte ptr ds:[0x14D1AC0],0x0
&|jnz Metaseq.013B86E6
&|mov esi,ebx
&|push 0x0
&|sbb esi,esi
&|push Metaseq.
SOFTWARE\Tetraface\Metasequoia
&|add esi,0x
&|push esi
&|lea ecx,dword ptr ss:[esp+0x78]
&|call edi
&|test al,al
&|jnz XMetaseq.013B85A1
&|push 0x1
&|push Metaseq.
SOFTWARE\Tetraface\Metasequoia
&|push esi
&|lea ecx,dword ptr ss:[esp+0x78]
&|call edi
&|test al,al
&|je Metaseq.013B86B8
&|mov esi,dword ptr ds:[&&MLibs.MRegistry::&;
MLibs.MRegistry::ReadString
&|lea ecx,dword ptr ss:[esp+0x18]
&|push ecx
&|push Metaseq.0144D4AC
&|lea ecx,dword ptr ss:[esp+0x74]
&|call esi
&&MLibs.MRegistry::ReadString&
&|lea edx,dword ptr ss:[esp+0x60]
&|push edx
&|push Metaseq.
&|lea ecx,dword ptr ss:[esp+0x74]
&|call esi
&|lea ecx,dword ptr ss:[esp+0x6C]
&|call dword ptr ds:[&&MLibs.MRegistry::Clo&;
MLibs.MRegistry::Close
到此为止,后面跟了一大片我看不懂的代码,很乱
[Asm] 纯文本查看 复制代码$+2D0
/maxlen = 0x5
&push Metaseq.
&add esp,0xC
&test eax,eax
&je Metaseq.013B87D3
&mov edx,dword ptr ss:[esp+0x18]
&push Metaseq.
&add esp,0xC
&test eax,eax
&je Metaseq.013B87D3
&mov eax,dword ptr ss:[esp+0x18]
&push Metaseq.0144D4DC
push了一个冒充是字符对比的函数,下面跟了一堆意义不明的字符串比如啊56789啊,等等字符串对比
我很清楚,这里都是迷惑我的,而且,你们知道这段指令多少长不?整整4789行啊,作者也是够无聊的
不过到这里,我确实没辙了,迷惑人的代码段太多,光靠OD没戏,我把程序载入了IDA,准备用F5功能直接看
IDA漫长的静态分析结束以后,我们点下功能窗口,既然在OD里面都把函数名一一显示了,那在IDA里面更是如此了,功能窗口里面,都是正儿八经的函数名,我们搜索下目标函数CheckRegistration
QQ截图59.png (29.44 KB, 下载次数: 1)
17:15 上传
双击,什么都不想,直接F5,好吧,即便是把汇编变成了伪C语言代码,代码长度依旧是那么长,595行..
然后,通过之前的分析,我们知道,程序会返回一个数值,如果是0的话,验证不通过,于是我们看下返回那里
QQ截图59.png (6.81 KB, 下载次数: 1)
17:17 上传
恩,程序最后,会返回v50这个变量,我们往上面翻翻,看哪里修改了v50这个变量(鼠标在这里点下V50就会高亮显示v50,往前面翻的时候,注意看高亮显示的地方就行,当然直接搜索V50也未尝不可以)
QQ截图59.png (13.37 KB, 下载次数: 1)
17:22 上传
一共有三个地方会修改V50,一个是我之前将的初始化过程,会被v50初始化成1,然后如果期间都没有被修改,那初始化的结果1会被直接输出
第二处就是如图所示的这里,v50被改成了0,让我们回忆之前的一个地方,test rax,rax,用来判断是否显示验证窗口的地方,
显然v50被改成0就表示那里不会显示验证窗口,也就是说,改成0是正解
那么v50被改成3呢,记不记得我之前提到的试用期限到了?那么改成3,就是代码期限到了
然后我们可以注意到
sub_806C60(v8, v55, (char *)&v45 + 3)
很明显一个功能函数,而且IDA以及OD都没有给明该函数的名字,不过确确实实,是经过这个函数以后,程序才判断是否要改v50的值的,那么我们就可以很轻松的理解,该函数,是一个用来验证你输入账号密码是否正确的函数,当然,事情要是这么简单,我文章标题就不会写爆破,而是【水杉算法分析&kengen编写】
原因很简单,小的无能,实在没有能力解这个验证算法,即便有IDA的F5功能,能看到伪代码也不行,
有兴趣的童鞋可以下载个水杉,然后根据我这篇文章找到这个call然后分析下
我可以稍微提一下
[Asm] 纯文本查看 复制代码
if ( !(unsigned __int8)((int (__thiscall *)(char *, int, _DWORD, _DWORD))v4)(
-(v3 != 0) - ,
L&SOFTWARE\\Tetraface\\Metasequoia&,
&& !(unsigned __int8)((int (__thiscall *)(char *, int, _DWORD, signed int))v4)(
-(v3 != 0) - ,
L&SOFTWARE\\Tetraface\\Metasequoia&,
goto LABEL_20;
MRegistry::ReadString(&v60, L&V4ID1&, &Str1);
MRegistry::ReadString(&v60, L&V4ID2&, &v58);
MRegistry::Close(&v60);
if ( !v47 || !v59 )
goto LABEL_20;
BYTE3(v45) = 0;
MQRegister::UncryptPassword(&v55, &v58);
if ( (unsigned __int8)sub_806C60(v8, v55, (char *)&v45 + 3) )
v9 = Str1[5];
*(_DWORD *)v56 = v9;
byte_921AC0 = 1;
goto LABEL_19;
简化一下过程,便是如你所见的这些代码
代码很简单,就是从注册表获得序列号后首先call一个叫MQRegister::UncryptPassword(&v55, &v58);的函数,根据名字我们知道,是加密密码后,得到一个处理后的加密码
然后call sub_806C60,这个函数会根据用户名以及处理后的加密码来验证,验证过程中甚至用到了本地时间
如果验证通过就开始赋值过程,而我们需要做的,就是让程序直接进入赋值的过程,不用管注册的正确与否,也就是所谓的爆破,
嘛,改代码的过程肯定要回到OD的,但是那将近5000行代码,让人找了头痛,我们该怎么定位呢,
QQ截图59.png (36.24 KB, 下载次数: 1)
17:51 上传
看,点击右键,复制到汇编
QQ截图59.png (11.1 KB, 下载次数: 1)
17:52 上传
这种汇编兼C语言代码的样子是不是很奇怪?
对照这里,就能很轻松找到OD里面的目标位置了
我也不啰嗦了
[Asm] 纯文本查看 复制代码$ ==&
FF15 &call dword ptr ds:[&&MLibs.MRegistry:&;
准备获得验证信息
C6842&mov byte ptr ss:[esp+0xB8],0x5
8B3D &mov edi,dword ptr ds:[&&MLibs.MRegist&;
MLibs.MRegistry::Open
895C2&mov dword ptr ss:[esp+0x48],ebx
mov edi,edi
803D &/cmp byte ptr ds:[0x811AC0],0x0
0F85 &|jnz Metaseq.006F86E6
|mov esi,ebx
6A 00 |push 0x0
|sbb esi,esi
68 60&|push Metaseq.
输入注册表的地址
81C6 &|add esi,0x
8D4C2&|lea ecx,dword ptr ss:[esp+0x78]
|test al,al
75 16 |jnz XMetaseq.006F85A1
判断是从注册表获得用户名密码的,还是键入的
6A 01 |push 0x1
68 60&|push Metaseq.
再次输入注册表地址
8D4C2&|lea ecx,dword ptr ss:[esp+0x78]
|test al,al
0F84 &|je Metaseq.006F86B8
验证该注册表目录是否存在,不存在的话话,下面的验证全部跳过
8B35 &|mov esi,dword ptr ds:[&&MLibs.MRegis&;
MLibs.MRegistry::ReadString
8D4C2&|lea ecx,dword ptr ss:[esp+0x18]
68 AC&|push Metaseq.0078D4AC
8D4C2&|lea ecx,dword ptr ss:[esp+0x74]
读取用户名; &&MLibs.MRegistry::ReadString&
8D542&|lea edx,dword ptr ss:[esp+0x60]
68 B8&|push Metaseq.
8D4C2&|lea ecx,dword ptr ss:[esp+0x74]
8D4C2&|lea ecx,dword ptr ss:[esp+0x6C]
FF15 &|call dword ptr ds:[&&MLibs.MRegistry&;
结束获得验证信息
837C2&|cmp dword ptr ss:[esp+0x1C],0x0
0F84 &|je Metaseq.006F86B8
验证V4ID1是否为空,空的话下面的验证全部跳过
837C2&|cmp dword ptr ss:[esp+0x64],0x0
0F84 &|je Metaseq.006F86B8
验证V4ID2是否为空,空的话下面的验证全部跳过
8D442&|lea eax,dword ptr ss:[esp+0x60]
8D4C2&|lea ecx,dword ptr ss:[esp+0x50]
C6442&|mov byte ptr ss:[esp+0x1F],0x0
E8 D5&|call Metaseq.MQRegister::UncryptPass&;
call一个函数,加密获得的V4ID2
83F8 &||cmp eax,0x13
75 25 ||jnz XMetaseq.006F866E
验证是否有资格进行序列号验证阶段
8B442&||mov eax,dword ptr ss:[esp+0x4C]
8D542&||lea edx,dword ptr ss:[esp+0x17]
||push edx
8B542&||mov edx,dword ptr ss:[esp+0x60]
||push eax
||push edi
E8 03&||call Metaseq.006F6C60
调用序列号验证函数
83C4 &||add esp,0xC
||test al,al
75 11 ||jnz XMetaseq.006F8675
判定验证是否通过
38442&||cmp byte ptr ss:[esp+0x17],al
75 2A ||jnz XMetaseq.006F8694
8B7C2&||mov edi,dword ptr ss:[esp+0x18]
||cmp ebx,esi
&|.^ 72 BD |\jb XMetaseq.006F8630
EB 27 |jmp XMetaseq.006F869C
8B4C2&|mov ecx,dword ptr ss:[esp+0x18]
验证通过开始赋值
0FB75&|movzx edx,word ptr ds:[ecx+0xA]
8B442&|mov eax,dword ptr ss:[esp+0x58]
C7442&|mov dword ptr ss:[esp+0x34],0x0
|mov dword ptr ds:[eax],edx
C605 &|mov byte ptr ds:[0x811AC0],0x1
最重要的赋值,之后判断功能是否注册全部是验证该数值的
EB 08 |jmp XMetaseq.006F869C
好,分析过以后,只要修改几个跳转就行了,就是验证注册表是否为空,验证取得的字符串是否为空,判断验证是否通过,以及是否有资格进行验证
把这几个跳转修改以后,运行程序
很好,前面的序列号验证窗口完全不弹出来了,看来修改的地方没错,
然后看看功能实现呢
QQ截图59.png (17.57 KB, 下载次数: 1)
18:36 上传
阿勒,一堆功能没法实现,这些暗灰色的图标无法点击,并且有小标,标着Std(standard)以及EX,猜测是需要什么版本才能用什么功能的意思
QQ截图59.png (34.8 KB, 下载次数: 1)
18:39 上传
甚至还会出现,许可证错误的提示
好吧,果然没有那么简单就能破解啊
给CheckRegistration下断,然后再次运行程序,看都是哪里在验证许可证
QQ截图59.png (188.85 KB, 下载次数: 1)
18:42 上传
一共也就这么些函数在call CheckRegistration
断在一个奇怪的地方,
QQ截图59.png (23.49 KB, 下载次数: 1)
15:44 上传
OD显示,这一段函数的名字叫做getclass,得到等级/种类?心中大概猜到这里是什么了,
我单步跟踪,看看到底怎么一回事
[Asm] 纯文本查看 复制代码$ ==&
E8 E1&call Metaseq.MQRegister::CheckRegistr&
83C4 &add esp,0x4
test eax,eax
74 0D je XMetaseq.003B2A53
判断CheckRegistration是否验证通过
C746 &mov dword ptr ds:[esi+0x4],0x0
xor eax,eax
mov esp,ebp
8B45 &mov eax,[local.2]
83F8 &cmp eax,0x45
74 20 je XMetaseq.003B2A7B
如果是Ex版就跳转
83F8 &cmp eax,0x54
74 1B je XMetaseq.003B2A7B
如果是Std版本就跳转
83F8 &cmp eax,0x52
74 16 je XMetaseq.003B2A7B
如果是限期版的Ex就跳转
83F8 &cmp eax,0x53
74 05 je XMetaseq.003B2A6F
如果是限期版的Std就跳转
83F8 &cmp eax,0x55
75 18 jnz XMetaseq.003B2A87
如果什么都不是,就跳转
B8 10&mov eax,0x10
8946 &mov dword ptr ds:[esi+0x4],eax
mov esp,ebp
赋值返回rax 10,代表Std版本
B8 20&mov eax,0x20
8946 &mov dword ptr ds:[esi+0x4],eax
mov esp,ebp
赋值返回rax 20,代表Ex版本
8B46 &mov eax,dword ptr ds:[esi+0x4]
mov esp,ebp
C3 赋值返回rax 0,代表试用版
聪明的看官们,如果是你们,应该会选择哪个版本强制跳转呢,233
QQ截图59.png (15.62 KB, 下载次数: 1)
18:54 上传
很好,原来的暗灰色已经变成了可以点击的实色了,并且可以点击实现对应的功能了
QQ截图59.png (33.44 KB, 下载次数: 1)
19:04 上传
看,虽然用户名,密码栏都是空的,但是版本显示却是EX
至此可以表示,水杉4 32位的破解已经完成
让我们转战64位的
================================================================================================================================
有了32位的破解基础,64位也就是找一个call,然后改跳转的节奏,当然,前提都要建立下32位和64位在汇编层面上,指令差不多的情况下
载入64位的程式到X64dbg,然后找CheckRegistration这个函数,怎么找?
QQ截图59.png (42.16 KB, 下载次数: 1)
19:19 上传
在这个标志选项卡里面,选择载入的程式,右边的框里面,就会列出来所有的函数了,当然此方法并不是所有程序都适用就是了
然后搜索下CheckRegistration,很快就精确找到了,双击函数,跳到函数头
然后我们观察下和32位上的指令,有木有区别
QQ截图59.png (36.29 KB, 下载次数: 1)
19:22 上传
一样的取得注册表地址,取得用户名和密码,除了指令表达上面不一样以外,执行的操作都是一模一样的,这样子就好办了
我们按照32位上的操作,如法炮制就行了
[Asm] 纯文本查看 复制代码$ = | jnz metaseq.13FA4A95F
$+6 | mov eax,r13d
$+9 | neg eax
$+B | sbb rdi,rdi
$+E | add rdi,FFFFFFFF
$+1 | xor r9d,r9d
$+1 | lea r8,qword ptr ds:[&`string'&]
| ;取得注册表地址所在地&SOFTWARE\\Tetraface\\Metasequoia&
$+1 | mov rdx,rdi
$+2 | lea rcx,qword ptr ss:[rbp-58]
$+2 | call qword ptr ds:[&__imp_?Open@MRegi | ;准备获得验证信息
$+2 | test al,al
$+2 | jnz metaseq.13FA4A682
$+3 | mov cl,1
$+3 | lea r8,qword ptr ds:[&`string'&]
| ;再次取得注册表地址所在地:L&SOFTWARE\\Tetraface\\Metasequoia&
$+3 | mov rdx,rdi
$+3 | lea rcx,qword ptr ss:[rbp-58]
$+4 | call qword ptr ds:[&__imp_?Open@MRegi |
$+4 | test al,al
$+4 | je metaseq.13FA4A792
| ;判断注册表是否为空,空的话就跳走,不进行注册码验证
$+4 | lea r8,qword ptr ss:[rsp+28]
$+5 | lea rdx,qword ptr ds:[&`string'&]
| ;13FB20AD8:L&V4ID1&
$+5 | lea rcx,qword ptr ss:[rbp-58]
$+5 | call qword ptr ds:[&__imp_?ReadString | ;取得用户名
$+6 | lea r8,qword ptr ss:[rbp-70]
$+6 | lea rdx,qword ptr ds:[&`string'&]
| ;13FB20AE8:L&V4ID2&
$+7 | lea rcx,qword ptr ss:[rbp-58]
$+7 | call qword ptr ds:[&__imp_?ReadString | ;取得密码
$+7 | lea rcx,qword ptr ss:[rbp-58]
$+7 | call qword ptr ds:[&__imp_?Close@MReg | ;结束获得验证信息
$+8 | cmp qword ptr ss:[rsp+30],0
$+8 | je metaseq.13FA4A792
| ;判断用户名是否为空
$+9 | cmp qword ptr ss:[rbp-68],0
$+9 | je metaseq.13FA4A792
| ;判断密码是否为空
$+9 | mov byte ptr ss:[rsp+40],0
$+A | lea rdx,qword ptr ss:[rbp-70]
$+A | lea rcx,qword ptr ss:[rsp+48]
$+A | call &metaseq.class MString __cdecl M | ;加密取得的密码为加密码
$+E | cmp rcx,13
$+F | jnz metaseq.13FA4A74C
| ;判断是否有资格进行验证码验证
$+F | mov r9,r14
$+F | lea r8,qword ptr ss:[rsp+40]
$+F | mov rdx,qword ptr ss:[rsp+48]
$+1 | mov rcx,r10
$+1 | call metaseq.13FA48770
| ;进行验证码验证
$+1 | test al,al
$+1 | jnz metaseq.13FA4A760
| ;验证通过就跳转
$+1 | cmp byte ptr ss:[rsp+40],al
$+1 | xor esi,esi
| ;开始验证通过的各参数赋值
$+1 | mov dword ptr ss:[rsp+44],esi
$+1 | mov rax,qword ptr ss:[rsp+28]
$+1 | movzx ecx,word ptr ds:[rax+A]
$+1 | mov dword ptr ds:[r15],ecx
$+1 | mov byte ptr ds:[13FC666E8],1
| ;最重要的一个参数赋值
$+1 | jmp metaseq.13FA4A77D
修改上述几个跳转以后就算通过验证了,
而验证通过以后就是版本选择阶段
[Asm] 纯文本查看 复制代码000 | call &metaseq.enum MQRegister::REGINF |
000 | test eax,eax
000 | je metaseq.13F3AC459
| ;验证通过就跳转
000 | mov dword ptr ds:[rbx+4],0
000 | xor eax,eax
000 | add rsp,20
000 | pop rbx
000 | mov eax,dword ptr ss:[rsp+38]
000 | cmp eax,45
000 | je metaseq.13F3AC488
| ;是EX版就跳转
000 | cmp eax,54
000 | je metaseq.13F3AC488
| ;Std版就跳转
000 | cmp eax,52
000 | je metaseq.13F3AC488
| ;Ex限期版跳转
000 | cmp eax,53
000 | je metaseq.13F3AC476
| ;限期版Std就跳转
000 | cmp eax,55
000 | jnz metaseq.13F3AC49A
| ;啥都不是就跳转
000 | mov dword ptr ds:[rbx+4],10
000 | mov eax,10
000 | add rsp,20
000 | pop rbx
000 | mov dword ptr ds:[rbx+4],20
000 | mov eax,20
000 | add rsp,20
000 | pop rbx
000 | mov eax,dword ptr ds:[rbx+4]
000 | add rsp,20
000 | pop rbx
好,保存一下结果,64位也就顺势破解完毕了,简单吧
好吧,是这个软件给的提示,实在是太多了,函数连名字都明确告诉你了,再不能破解就真的醉了
不过即便如此,我这样做也只能算是爆破,要想真正的破解,还是需要分析验证算法的
不过本人能力有限,如果仅仅是用户名,密码的验证我还可以处理,不过这个验证是对输入的密码经过一次不明所以的加密以后再验证的,有点头大,以后有时间再慢慢分析,就这样,光速匿
吾爱币 +18
感谢发布原创作品,吾爱破解论坛因你更精彩!
谢谢@Thanks!
热心回复!
感谢发布原创作品,吾爱破解论坛因你更精彩.
感谢发布原创作品,吾爱破解论坛因你更精彩.
纯支持,土豪打赏。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限255
这帖子让我联想到破解Sublime Text和Beyond Compare的过程,都是先拿32位分析,64位就轻车熟路的搞了,赞一个!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
其实日本人的软件不加壳是意料之中的,他们有付费的习惯
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
头像被屏蔽
提示: 作者被禁止或删除 内容自动屏蔽
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
不错,X64破解时亮点,感谢分享经验!!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
高手,各种羡慕
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
竟然在前排发现了h大
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
给发帖者最大的支持!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
奈斯啊&&熊弟
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
学习啦 ~!谢谢~1
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
( 京ICP备号 | 京公网安备 87号 )
Powered by Discuz! X3.2
Comsenz Inc.

我要回帖

更多关于 metasequoia4汉化版 的文章

 

随机推荐