声明

  • 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】(纯研究)的更多相关文章

  1. 【MyEclipse 2015】 逆向破解实录系列【终】(纯研究)

    声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...

  2. 【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)

    声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...

  3. myeclipse 2015 myeclipse2010破解共存

    1.高版本选择bling版本,低版本选择profession版本2.用高版本的公钥替换低版本的公钥3.先破解低版本的后破解高版本的4.最后用高版本的替换低版本的文件

  4. MyEclipse 2015 Stable 2.0安装包及破解工具下载

    MyEclipse 2015 Stable 2.0安装包及破解文件下载 之前一直在用myeclipse10.7,后来发现10.7版本有点老了,所以就换了2015稳定版的myeclipse,里面附带了破 ...

  5. Myeclipse 2015 stable 2.0 完美破解方法

    2015-08-21  以前写了一篇<Myeclipse 2015 stable 1.0 完美破解方法>,现 在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法 ...

  6. 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/ 破解包(注册机)下载地址:链接 ...

  7. MyEclipse 2015 Stable 1.0下载安装破解日志

    前言 这2天下载了许多myeclipse版本,基本上是14/15版本的,各种破解均告以失败,这次下载了贴吧一个吧友提供的版本,现已破解.破解结果现不好说--目前已装SVN,根据经验,只有等待一定时间验 ...

  8. java ee@ Myeclipse 2015 stable 1.0 完美破解方法

    Myeclipse 2015 stable 1.0 完美破解方法 破解步骤: 使用以前的注册机算号,版本选择Blue即可,后续可解锁Spring高级功能,即Bling的所有功能全部具备 1.1 进入m ...

  9. MyEclipse 2015 Stable 2.0破解方法

    本篇博文简单介绍一下利用网上说明的方法破解MyEclipse 2015 Stable 2.0的具体细节.因为原来在贴吧上的方法不够详细,所以本人重新整理了一下.方法源自:http://tieba.ba ...

随机推荐

  1. 公用表表达式(CTE)引发的改变执行顺序同WHERE条件顺序引发的bug

    以下模拟一下CTE出错 /*测试环境 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyr ...

  2. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

  3. PHP Cannot redeclare class CLassName

    可能导致Cannot redeclare class CLassName错误的原因: 1.在同一个文件中重复声明了两次同名的类: class Extend {} class Extend {} new ...

  4. 关于JavaScipt对象的基本知识

    关于JavaScipt对象的基本知识 JavaScript是运用“对象化编程”的,又叫“面向对象编程”的.所谓“对象化编程”,意义是把JavaScript能涉及的领域划分成各种对象,对象后面还连续划分 ...

  5. bzoj-3288 3288: Mato矩阵(数论)

    题目链接: 3288: Mato矩阵 Time Limit: 10 Sec  Memory Limit: 128 MB Description Mato同学最近正在研究一种矩阵,这种矩阵有n行n列第i ...

  6. two sum - leetcode

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  7. Spring 4.1+ 的 JSONP使用

    如今的巨石应用已经越来越不行了,很多互联网在后期都会在用分布式的架构 那么在页面上不同的服务调用不同域名下的json是有问题的 (跨域:不同域名,相同域名但是不同端口) JavaScript规范中提到 ...

  8. AC日记——传话 codevs 1506 (tarjan求环)

    1506 传话  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 一个朋友网络,如果a认识b,那么如果a第 ...

  9. 创建文本,innerHTML与createTextNode的使用

    第一种:innerHTML p.innerHTML="124"; 除了这个还可以console.log(p.innerHTML) 弹出p里面的内容; 第二种:createTextN ...

  10. PHP中的魔术变量

    PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量. 名称 说明 __LINE__ 文件中的当前行号. __FILE__ 文件的完整路径和文件名 ...