声明

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

背景

在前两篇博文中,我们成功突破了My Eclipse 2015的3个主要保护机制:

  • 软件完整性验证保护
  • 注册码验证
  • 激活 + 联网验证

实现了暴力破解,其实已经可以不用再管神马算法了。

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

但是,上篇博文有提到,暴力破解的方式太过于侵入,而且容易遗漏,不易操作,特别对于ME这款软件,验证点奇多无比,所以,暴力破解相对来说过于”丑陋“。

本篇将展开对My Eclipse 2015的注册码算法、激活码算法研究,以期能够算出正确的注册码和激活码,并通过ME的联网激活,成为其"合法"授权用户。

成果如下:

  • 授权信息

  • 激活成功提示信息

分析注册码算法

ok,让我们开始分析注册码算法,经过分析,从下面这个类入手:

可以看到,这个混淆效果要比CLion的混淆效果好的多,并且这个类所在的包的数字签名,让你很难通过常规手段进行替换调试。

比如下面的错误:

这里我们有两个办法:

  1. 去掉其数字签名.
  2. 自己模拟这个类.

这里,根据实际情况,我们不需要完全去除数字签名,算法相关的类比较少,我们可以在较低的时间成本下采用模拟的方式来推算法。

先看看,这个类里面的几个重要的点:

  • 过期时间:

  • 注册码验证:

ok,根据分析,我们找到了注册码的一些关键算法,其中有几个解码的算法也要关注:

  • 加密/解密段之一

  • 加密/解密段之二

细碎的活儿应该怎么干?

一边静态分析,一边抽代码到我们的模拟环境中,然后调试,记录,测试,修改。

可以看到我们的模拟算法逐渐成型:

测试一下:

阶段性战果:

分析激活码算法

到这里,我们已经追出了注册码,My Eclipse 2015还有个激活的步骤。来看看:

可以看到,不找出正确的激活码是不行的,那我们开始吧!

  • 激活码验证之一:

  • 重要的SystemId(反应激活机器的信息,如处理器、网卡、硬盘等)

  • SystemId从哪里来?

值得注意的是,这里取得激活机器信息,使用了JNI,要确定这几个本地库能被检索到:

其中windows使用dll,分32/64位的;unix-like使用so,同样分32/64位。

到这里,我们离激活码一步之遥,坚持就是胜利:

上图可以看出,我们还有个rsa加密/解密没有搞定,那么追追看吧。


搞定RSA

既然是rsa,那么找找它的key吧,私钥是不大可能找到了,所以我们利用如下思路来搞:

  1. 随便生成一对公钥/私钥.
  2. 用我们的私钥加密激活码.
  3. 用我们的公钥偷梁换柱.

那么,亲,它的公钥在哪里呢?

  • 公钥

上图,告诉了我们两个信息:

  • 公钥的位置,包括名称:publicKey.bytes
  • RSAUtil,这个,我们可以直接copy过来用,真是省心^^.

胜利的曙光就在前面,让我们最后检验下队伍吧:

开始准备打补丁了,先使用finder找出它的公钥:

patch it!

看下阶段性成果吧!

看来,功夫没有白费,激活码的验证通过了呢^^.

结语

本篇,我们追出了My Eclipse 2015的注册码算法和激活码算法。

至此,MyEclipse 2015 逆向破解研究系列终结。

贴图纪念下吧:

  • 暴力破解,去除验证:

  • 算出注册、激活码,通过验证:


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

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

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

    声明 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. JS 日期对象在浏览器间的若干差异

    JS中 ,通过 new Date() 可以获取当前时间 也可以通过 new Date("2013/12/12 8:00:00")的方式,创建某个指定时间对象 在Chrome和FF下 ...

  2. Linux 下编译安装软件,找不到共享库 xx.so 的解决办法

    编译memcached时,报错没有libevent,于是下载libevent,configure , make && make install ,然后在重新安装memcache成功之后 ...

  3. keepalived初探

    keepalived起初是为LVS设计的,专门用来监控LVS集群系统中各个real server的健康状况的,后来又在其中实现了VRRP协议,VRRP即virtual router redundanc ...

  4. Redis的数据类型及操作

    Strings 最简单的类型,一个Key对应一个Value,string类型是二进制安全的.Redis的string可以包含任何数据,如图片或序列化的对象 操作 Set:设置key对应的值为strin ...

  5. Github学习之路-小试牛刀,练习Git 的基本操作

    一.下子windows客户端. Git 客户端下载地址:http://msysgit.github.io/ 二.打开Git Bash 命令行操作界面. 安装完成后,在开始菜单里找到“Git”-> ...

  6. BendFord's law's Chi square test

    http://www.siam.org/students/siuro/vol1issue1/S01009.pdf bendford'law e=log10(1+l/n) o=freq of first ...

  7. 通用cube refresh方案

    通用cube refresh c# script 解决方法: 需要设置的变量如下: User::varcubename,User::varolapconnstr,User::varolapdbname ...

  8. 边工作边刷题:70天一遍leetcode: day 75-1

    Shortest Word Distance I/II/III 要点:系列题最重要的是记清题,重点是题目本身的变化和解法之间的关联. I https://repl.it/CqPf 这题的一般规律从左到 ...

  9. Unity CombineChildren和MeshCombineUtility

    原理 Unity3D如何通过CombineChildren和MeshCombineUtility优化场景? 首先解释下联结的原理和意思:文档里说,显卡对于一个含100个面片的物体的和含1500个面片的 ...

  10. Xcode中文乱码问题

    老师给拷贝的程序用Xcode打开中文显示是乱码,而预览里面是正常显示的,Xcode默认编码UTF-8没错的,怎么办呢? 解决办法:用自带的文本编辑器打开,全选,复制,Xcode中打开文件,粘贴,ok~ ...