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


    声明

    • 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 逆向破解研究系列终结。

    贴图纪念下吧:

    • 暴力破解,去除验证:

    这里写图片描述

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

    这里写图片描述


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

  • 相关阅读:
    socket based————转帖
    罗马假日 java程序员
    java六大必须理解的问题来自网络少许有误 java程序员
    spring的scope="prototype" java程序员
    @GeneratedValue java程序员
    myeclipse乱码和tomcat相关的 java程序员
    关于***.hbm.xml的说明 java程序员
    hibernate中的Annotation补充 java程序员
    爱的随笔C语言版 java程序员
    Hibernate对jpa annotation的支持 java程序员
  • 原文地址:https://www.cnblogs.com/foreach-break/p/crack_myeclipse_2015_3.html
Copyright © 2020-2023  润新知