【MyEclipse 2015】 逆向破解实录系列【2】(纯研究)
声明
- My Eclipse 2015 程序版权为Genuitec, L.L.C所有.
- My Eclipse 2015 的注册码、激活码等授权为Genuitec, L.L.C及其付费用户所有.
- 本文只从逆向工程的兴趣出发,研究软件保护机制.
- 不会释出完整源代码和破解补丁.
- 会直接推测出授权信息的地方打码处理
- 本文针对My Eclipse 2015 Stable 2.0或CL版本
背景
在上篇博文中,我们针对My Eclipse 2015,熟悉了其软件运行特点,并完成了以下几件事:
- 搭建了静态分析环境。利用全文搜索,方便按路径、符号等方式搜索java文件
- 搭建了动态调试环境。将我们静态分析得到的关键代码,抽出来,修复依赖,搭建一个很小的运行时环境。
- 破除了My Eclipse 2015 的软件完整性保护机制。
- finder用来进行字节级搜索
- patch用来进行文件补丁
参见:【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)
本篇,我们将针对My Eclipse 2015的注册和激活保护机制进行研究,并破除其限制。
本篇将进行暴力破解,意即不考察软件的注册、激活算法,而是去除其验证部分。
后话:实际上,针对My Eclipse 2015这款软件,暴破比推出注册、激活算法还复杂,晕一个先!
最后再吐槽下,ME 2015实在太卡了 : [
调试中,死机N次是再正常不过的事!有个心理准备吧。
先看暴破后的成果,绕过了注册码的验证机制、激活验证机制:
分析注册验证机制
由于有了上篇的环境,我们可以“任意”的玩小范围内的调试。
其实不是任意,因为My Eclipse 2015同时采用了数字签名技术,不过这个可以绕过或者...你懂的.
看看动态调试能够给我们带来什么?以及为什么我们要先去除其软件完整性验证:
这里,混淆神马的都是浮云,^^。
这次,我们依然利用如下的调用栈推测:
main
-> start
-> ..
-> dialogLicenseInfo("骚年,你的注册码不对哟!")
然后利用我们的检索环境,进行检索,定位到关键代码段,抽出这部分代码,做进我们的动态调试环境中,接着回溯和查找周围信息吧。
至于具体的分析过程,不是重点,关键是方法: ]有兴趣的同学可以自行分析。
看看关键验证部分之一:
关键验证部分之二:
好了,天机不可泄露,就说这么多: ]
务必十分熟悉软件的验证保护后,再做代码补丁,否则,各种遗漏会让你的逆向过程成本大增。
同时,对你的补丁代码要多做测试哦!
去除注册验证##
好了,到这里,各种分析结果在手,要做的事情,不用我再细说了吧?
呵呵,赶紧写好patch,打上补丁,测试下效果吧。
贴一些patch的图:
ViperCore:
ProductRegistar:
GSDCController:
你看到了,这里只列出一部分注册验证的代码,搞到这里,你就明白为啥前文说对My Eclipse 2015进行暴力破解,比推出注册算法还复杂了。
类多不爱啊!!!!!!!!!!!!!!!
**分析激活验证机制 **
ME 2015在输入注册码后,还有个激活的过程。
我们来看看激活的部分:
- Connection
- Manual Activation(手动激活)
- Need Activation (是否需要激活呢)
好了,这一步和上面分析注册验证部分类似,耐心分析、多调试、多记录,确保已经理解激活验证的步骤,全面掌握了激活验证的点。
**去除激活验证及联网验证 **
了解了激活验证和联网验证的机制后,我们开始去除,这一步和注册验证去除的步骤一致,不再赘述。
补丁:
- Activator
- Licence Expired(注册码是否过期)
打补丁:
- 配置:
- 执行:
- 输出:
结语
本篇,我们对MyEclipse 2015的注册机制和激活机制进行了分析,并且采用暴力方式去除其限制,效果如下:
你在文中也看到,这样的方式,侵入感太强,而且ME的验证几乎遍地开花,稍不注意就会遗漏,导致破解失败,那么如何实现相对简单、优雅的破解呢?
在下篇,我们对以下两个问题进行研究,
- 注册码算法
- 激活码算法
以期在不修改其验证机制的前提下,成为ME 2015的"合法"授权用户。
撰文不易,若觉得本文对你有益,留个言,点个推荐吧 : ]
【MyEclipse 2015】 逆向破解实录系列【2】(纯研究)的更多相关文章
- 【MyEclipse 2015】 逆向破解实录系列【终】(纯研究)
声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...
- 【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)
声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...
- myeclipse 2015 myeclipse2010破解共存
1.高版本选择bling版本,低版本选择profession版本2.用高版本的公钥替换低版本的公钥3.先破解低版本的后破解高版本的4.最后用高版本的替换低版本的文件
- MyEclipse 2015 Stable 2.0安装包及破解工具下载
MyEclipse 2015 Stable 2.0安装包及破解文件下载 之前一直在用myeclipse10.7,后来发现10.7版本有点老了,所以就换了2015稳定版的myeclipse,里面附带了破 ...
- Myeclipse 2015 stable 2.0 完美破解方法
2015-08-21 以前写了一篇<Myeclipse 2015 stable 1.0 完美破解方法>,现 在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法 ...
- Myeclipse 2015 stable 1.0 完美破解方法(转自 http://yangl.net/2015/07/14/myeclipse_2015stable_1/)
Myeclipse 2015 stable 1.0 完美破解方法 http://yangl.net/2015/07/14/myeclipse_2015stable_1/ 破解包(注册机)下载地址:链接 ...
- MyEclipse 2015 Stable 1.0下载安装破解日志
前言 这2天下载了许多myeclipse版本,基本上是14/15版本的,各种破解均告以失败,这次下载了贴吧一个吧友提供的版本,现已破解.破解结果现不好说--目前已装SVN,根据经验,只有等待一定时间验 ...
- java ee@ Myeclipse 2015 stable 1.0 完美破解方法
Myeclipse 2015 stable 1.0 完美破解方法 破解步骤: 使用以前的注册机算号,版本选择Blue即可,后续可解锁Spring高级功能,即Bling的所有功能全部具备 1.1 进入m ...
- MyEclipse 2015 Stable 2.0破解方法
本篇博文简单介绍一下利用网上说明的方法破解MyEclipse 2015 Stable 2.0的具体细节.因为原来在贴吧上的方法不够详细,所以本人重新整理了一下.方法源自:http://tieba.ba ...
随机推荐
- 未能找到元数据文件“引用的DLL的路径”
使用VS的时候 偶尔会出现错误 [未能找到元数据文件“引用的DLL的路径”] 但是实际上项目中这些DLL都是做了引用的,甚至你前一天打开还是好好的,睡一觉起来 不知道什么原因 就酱紫了 原因:不详 ...
- sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换
1. 处理 sql server 导出的 datetime 类型的字段 在进行sql server向mysql等其他数据进行迁移数据时,会发现使用sql server导出的datetime类型的结果是 ...
- 在VS项目中通过GIT生成版本号作为编译版本号
上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...
- 烂泥:ubuntu安装vmtools
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近由于工作需要,需要使用桌面版的linux系统,所以就选择了ubuntu.同时为了方便使用,就在VM中安装ubuntu. 但是为了文件以及操作的方便就 ...
- javascript特效实现(4)——当前时间和倒计时效果
这个效果的实现关键是对Date对象和setTimeout的使用. 一共有三个例子,HTML结构如下,就不添加CSS样式了. <body> 当前时间:<p id="p1&qu ...
- 初识zookeeper(一)之zookeeper的安装及配置
1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送.除此还可以用作dubbo服务的注册中心. 2.安装 2.1 下 ...
- mysql启动不成功显示The server quit without updating PID file的解决方法
上午在编译安装mysql的时候 就出现标题中的错误,经实践在第二步操作后启动成功,参考链接 链接http://linuxadministrator.pro/blog/?p=225 You may fa ...
- 【温故而知新-Javascript】使用数组
Javascript 数组的工作方式与大多数编程语言的数组类似. <!DOCTYPE html> <html lang="en"> <head> ...
- 2014 Super Training #6 F Search in the Wiki --集合取交+暴力
原题: ZOJ 3674 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3674 题意不难理解,很容易想到用暴力,但是无从下 ...
- React/React Native 的ES5 ES6写法对照表
//es6与es5的区别很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component ...