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

声明

  • My Eclipse 2015 程序版权为Genuitec, L.L.C所有.
  • My Eclipse 2015 的注册码、激活码等授权为Genuitec, L.L.C及其付费用户所有.
  • 本文只从逆向工程的兴趣出发,研究软件保护机制.
  • 不会释出完整源代码和破解补丁.
  • 会直接推测出授权信息的地方打码处理
  • 本文针对My Eclipse 2015 Stable 2.0或CL版本

背景

在上两篇博文中,我们研究了逆向中的两大手段:

在本篇,将着重利用上述两种手段,来参破My Eclipse 2015的注册、激活算法及软件保护机制。

先看成果,Bling授权至2099年

激活通过


熟悉软件本身

因为之前并不熟悉My Eclipse,所以找了很久都找不到提示授权信息的界面在哪里,汗一个先!

逆向本身,是从无道到有道,其中的乐趣在于探索本身,而不是结果。

要逆向一个东西,得先熟悉它的布局、机理,否则逆向只能是空谈。

  • My Eclipse软件太大,光安装包就1.3G左右,而且国内是百度网盘下载,奇慢无比.
  • My Eclipse插件巨多,要找出关键的包、lib和代码片段,稍显复杂和繁琐.
  • 因为软件规格明显比CLion高出一个级别,所以其中的困难可谓重重,至少在实现动态调试上需要特殊处理.

插件巨多:

当面对的是一头大象,要战胜它,就需要忍耐,你需要观察它的一举一动,然后才能出击。

分析类加载信息

这里,用我们熟悉的verbose大法,分析类加载信息,缩小目标。

同时,搜集到的类加载信息,在后续的jar包分析中,也是频繁要来看一看,找一找的。

关于main

关于license/licence

一旦发现或者猜想到一些门路,就要来这里看一看,然后分析jar包中的关键类的四周信息,以充分掌握软件的特性,避免做无用功。


创建静态分析环境

分析启动信息

对My Eclipse安装目录下的*.ini进行修改,指定我们自己的java/jre/jvm,以方便使用 jinfo 等工具.

查看vm optionscommand line args

通过分析,从$ME_HOME/plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar入手,尝试将程序启动起来。

正如其名,真的是个launcher/loader,虽然程序启动起来了,但是要想在注册授权信息/My Eclipse Subscription Info之类的附近断掉程序,并且显示源码,这一点还是远远不够的。

打造代码检索环境

为了能够充分掌握某个关键类、方法的调用路径,以方便我们进行回溯或者探索重要信息,通常我们采用如下几种方法:

  • 反编译源代码,在关键点处充分修改,打印调用栈.
  • 利用静态AOP或者hook,插入我们的调试器.
  • 将代码当作文本处理,以利用sed/grep/less等工具,以及文件索引能力,方便大批量的进行关键代码搜索.
  • 直接用调试器附加目标进程,要显示源码的话,往往需要我们加-g以产生调试信息,这一点在My Eclipse的保护机制下受到限制,但这也是我们需要突破的地方.
  • 利用IDE提供的查找使用/正向依赖/反向依赖分析技术.
  • 利用dump,将关键代码段或者类信息从目标进程中dump出来并还原为源代码.

总之,灵活结合上述几种手段,目的是为了充分在My Eclipse这头大象身上辗转腾挪,取我所需.

解压缩jar包,并将class反编译为java文件

jar包是采用zip格式压缩的,所以我们也可以利用unzip来进行解压缩.

为了取得更好的反编译效果,我们这次不使用jd来做,在博主安装的Intellij IDEA的lib下,有一个fern flower的反编译工具,这也是IDEA的默认反编译器,我们就用它了,有兴趣的东西可以搜索下,貌似跟mine craft有很大渊源。

反编译,首先将需要反编译的包搜集到一个文件中,比如genuitec.jar.txt中,然后建立一个简单的脚本进行批处理:

解压缩类似,就不贴图了,我们利用unzip,你也可以利用jar/编程等方式实现解压缩,当然,如果你不嫌累,1000多个jar包,你也可以手工解压缩^^.

unzip ${jar} -d ${out_dir}

建立索引

有条件的可以用solr/lucene来做,这里我们利用IDE的索引能力就可以了,很简单,将所有我们感兴趣的java文件,丢进IDE:

然后,就可以这样来方便地搜索我们需要的class/java文件了:

当然,也可以路径搜索:

虽然因为各种依赖关系极其复杂,要全部修复十分困难,无法全面编译并利用语义搜索等手段,但这一步,为我们充分地占有资料并检索打下坚实基础,配合前面所述的verbose信息,我们可以对关键代码、类、路径、符号进行搜索、跳转,极大地提升我们的分析效率。


打造动态调试环境

在静态阶段,我们的分析能力是受到局限的,了解一个软件的运行机制,比较好的办法,就是调试它。

但是,我们面对的是My Eclipse这样的大象,即使给你完整的源代码,要分析清楚也是一件很困难的事,所以,我们要利用修复、截取等手段,缩小我们动态调试的范围,降低难度。

上面所述,是建立在我们的静态分析基础之上,而静态分析,需要做大量的工作,繁琐、细碎,有时会极为恼火,让你有rm -rf /的冲动,这时候,就静下来,你做的是逆向工作,是从没有门路,创造门路,耐心和调节心情是必做的一件事,这个时候,听听无脑的神曲,尽快reset自己的烦躁,因为后面,还有许多未知的困难在等着你挑战。

ok,这里在我们反编译的java代码中,挑一段感兴趣的地方,小小修改一点,编译为class文件,替换到对应的jar包中,然后利用前文所述的launcher来跑一下看看吧!

我擦,这什么鬼东西?

后话:My Eclipse 2015 采用的完整性验证技术,配合数字签名,以达到检测代码被修改的目的。

真是令人恼火,看来没有CLion那么好搞,静一静,想想思路。

让我们来推测一下这个提示框的调用栈:

    java
    -> main
    -> initialize
    -> ..
    -> integrationCheck
    -> alert("骚年,你动了我的代码!")

好的,想必你已经懂我在说什么。

利用回溯法来分析完整性验证机制,并看看它做了什么.


破除软件完整性验证保护

自己造轮子,精准搜索:finder

既然修改了代码,出现了错误,动态调试从何谈起?

作为工程师,你能够改变世界的那一点,就在于你可以按照需要,来造轮子。

这个时候,我们有两种办法:

  1. 还是从静态环境中,来搜索错误提示
  2. 自己造轮子,来搜索错误提示.

为什么需要自己造轮子呢?

  • 静态环境的搭建及其耗时
  • 逆向目标复杂,静态分析容易遗漏
  • 方便后续的补丁操作

看看我们这个时候需要的轮子:

没错,我们需要在jar包中、zip包中、文件夹中、class文件中:

  • 找到我们感兴趣的文件格式
  • 查找字节指纹
  • 打印我们需要的各类信息

    如下:

这个时候,我们的检索能力如下:

  1. verbose信息.
  2. 静态环境提供的路径、符号、文件搜索.
  3. 提供文件指纹、字节特征码搜索的finder.
  4. ServiceAbility Agent提供的运行时信息.

抹除完整性验证代码

在抹除前,My Eclipse的完整性验证代码之一如下:

抹除后,如下:

My Eclipsed 2015 的完整性验证,分散在多个jar包的多个类中,要不遗漏,一是需要耐心,二是依赖finder的字节指纹搜索,同时配合静态环境的分析。

这里,思路很重要,剩下的就看你擅长不擅长干细活了^^.


自己造轮子,文件补丁师 : patcher

现在,我们需要用抹除验证的代码,替换原来的代码,并删除、增加一些东西,这里你可以手动去做,毕竟jar包就是zip格式,也可以自己做patch程序。

考虑自己做patch程序的主要目的:

  1. 不可能一次patch到位,需要多次进行补丁操作.写程序来做,配置后即可自动化完成.(省时)
  2. 输出必要的调试信息以方便诊断.(省心)
  3. 自动化crack过程.(省力)

如下:

调试信息:

让程序飞起来

做完了上面的步骤,基本上,就可以为所欲为了。

现在,让我们将程序跑起来,以确保我们的小范围修改可以如期运行:

完整性验证保护已突破,但是还有注册保护,如上图所示,看来,逆向之旅还遥遥无期呢?

那么,如何破解注册保护呢?

下篇揭晓。

撰文不易,若觉得本文对你有益或者博你一笑,留个言,点个推荐吧 :]

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 11:11:21

【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)的相关文章

Myeclipse 2015 stable 2.0 完美破解方法

2015-08-21 以前写了一篇<Myeclipse 2015 stable 1.0 完美破解方法>,现 在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法来源于贴吧的一篇文章:http://tieba.baidu.com/p/3809637196?pn=1 :在此先感谢一下作者的付出.下面是我在MAC下破解的图文过程(Linux和windows其实大同小异).破解方法和我写得<Myeclipse 2015 stable 1.0 完美破解方法>基本一样

java [email&#160;protected] Myeclipse 2015 stable 1.0 完美破解方法

Myeclipse 2015 stable 1.0 完美破解方法 破解步骤: 使用以前的注册机算号,版本选择Blue即可,后续可解锁Spring高级功能,即Bling的所有功能全部具备 1.1 进入myeclipse2015_keygen/文件夹,如图: 1.2 双击crack.bat(windows下)或者双击cracker.jar(配置好Java环境的MAC windows 或者linux—MAC windows已亲测可用linux系统理论上也可用).&lt;img class="i

MyEclipse 2015 Stable 2.0破解方法

本篇博文简单介绍一下利用网上说明的方法破解MyEclipse 2015 Stable 2.0的具体细节.因为原来在贴吧上的方法不够详细,所以本人重新整理了一下.方法源自:http://tieba.baidu.com/p/3809637196 .(注:橙色部分,我没有遇到过,只是贴吧主说的) 1安装好软件 贴吧主说,破解前不要启动软件.(我照着他的方法试了一遍,启动软件,发现并没有破解.我没有放弃,找了另一个说明,也就是加了第5步之后,才得以破解.通过这事,我得出:第一,破解前启动软件是否会影响破

MyEclipse 2015 stable 1.0破解

MyEclipse 2015 stable 1.0破解 1.安装好myeclipse. 2.运行crack.bat文件.(前提:配置好jdk的环境变量) 3.输入Usercode. 4.选择下拉菜单中的BLUE选项. 5.然后点击SystemID按钮. 6.再点击Active按钮. 7.选择Tools中的Saveproperties选项. 8.将破解文件的\patch\plugins目录下的所有文件拷贝到MyEclipse安装文件中的\MyEclipse 2015\plugins目录下,并替换.

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

MyEclipse 2015 Stable 2.0安装包及破解文件下载 之前一直在用myeclipse10.7,后来发现10.7版本有点老了,所以就换了2015稳定版的myeclipse,里面附带了破解工具以及说明文档,用着挺好用的,有需要的小伙伴自行下载,有不懂得可以留言,我能帮的尽量帮. 我将其存到了百度云盘中 点击下面的链接进入下载,云盘提取密码是:rsep[ http://pan.baidu.com/s/1c1JFpD2 ] 要注意的几点是 - 安装好了不要马上执行,不然是破解不了的 -

Myeclipse 2015 stable 1.0 完美破解方法(转)

一.Myeclipse 2015  stable 1.0 的下载及安装 二.Myeclipse 2015  stable 1.0 的破解 破解包(注册机)下载地址:链接: http://pan.baidu.com/s/1sjC04jz密码: 76pm(此方法仅对于MyEclipse 2015 Stable 1.0有效) 破解步骤: 使用以前的注册机算号,版本选择Blue即可,后续可解锁Spring高级功能,即Bling的所有功能全部具备1.1 进入myeclipse2015_keygen/文件夹

Editplus+Oracle+Visual Studio 2012+SqlServer 2008+SqlServer 2012+MyEclipse 10.6+MyEclipse 2015+WebStorm 11+WebStorm 10+WPS专业版--所有安装包,加破解 下载地址

Editplus  下载链接:https://share.weiyun.com/76924b230d140da21ea4ed877309eb5e (密码:Oftbnq) Oracle  下载链接:https://share.weiyun.com/1cc1209f483b7c298499228256f36b66 (密码:q5sPUC) Visual Studio 2012  下载链接:https://share.weiyun.com/599d9f7b1ba2826ba045f1e56297dcf2

Adobe CC 2015 中文破解版 破解补丁下载

Adobe Illustrator CC 2015 中文破解版 破解补丁下载 Adobe illustrator是一种应用于出版.多媒体和在线图像的工业标准矢量插画的软件,作为一款非常好的图片处理工具,Adobe illustrator 广泛应用于印刷出版.专业插画.多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目. Adobe illustrator作为全球最著名的矢量图形软件,以其强大的功能 和体贴用户的界面,已经占据了全球矢量编辑

myeclipse下载安装破解日志

前言: 这2天下载了许多myeclipse版本,基本上是14/15版本的,各种破解均告以失败,这次下载了贴吧一个吧友提供的版本,现已破解.破解结果现不好说--目前已装SVN,根据经验,只有等待一定时间验证--如不出现闪退即说明破解成功. 版本:MyEclipse 2015 Stable 1.0 下载地址:http://www.42xz.com/myeclipse/2283.html 下面是记录: 一.下载与安装 1.下载:略 2.安装: 按照下载地址中的做,最后一步注意下,不要立即打开. 二.破