zzhouqianq 发表于 2017-5-27 15:57

xxx破解过程分享

本帖最后由 姐又寡闻了 于 2019-6-6 22:19 编辑

以前一直都是在索取破解版,现在自己有能力了,也给大家分享下我的破解。这次是Charles的破解。
Charles的破解其实很简单,因为它是用Java做的注册验证。所以只要替换类就可以了,关键就在于找到那个类。使用jd-gui看字节码,我这边做了不完全的统计:

这是3.10.2的License.class:


这是3.11.4的License.class:


这是4.0.2的License.class:


这是4.1.2的License.class


可以发现,每个版本的License.class的包名和类名都不一样,其中4.0.2的XXXX犯了一个很大的失误,连类名都忘记混淆了。知道了类名,事情就好办了,大致浏览一遍代码,发现License.class里被外界用到的只有3个public static方法。就最新的4.1.2来说,用下面的代码覆盖原代码即可:

package com.xk72.charles;
public final class qFep {
      public static boolean gtOW() { return true; }
      public static String SkgP() { return "52pojie"; }
      public static String gtOW(String name, String key) { return null; }
}

而4.0.2则是:

package com.xk72.charles;
public final class License {
      public static boolean a() { return true; }
      public static String b() { return "52pojie"; }
      public static String a(String name, String key) { return null; }
}

其它版本也是一样的破解方式,只是因为包名、混淆的类名、方法名不一致,所以需要根据实际的类来生成。整个破解我们可以用脚本来完成:

charles=/Applications/Charles.app/Contents/Java/charles.jar
dir=charleshack

mkdir $dir
cd $dir
cat >> qFep.java <<EOF
package com.xk72.charles;
public final class qFep {
      public static boolean gtOW() { return true; }
      public static String SkgP() { return "周骞"; }
      public static String gtOW(String name, String key) { return null; }
}
EOF
javac -encoding UTF-8 qFep.java -d .&& jar -uvf $charles com/xk72/charles/qFep.class
cd .. && rm -rf $dir

附上破解成功的截图:



写在最后:
大家可以看到xxx的License.class上有个写给破解者看的话:
Thanks for looking at the source. Please register Charles if you use it.
本文内容仅供大家学习交流使用,还请支持正版,你懂的。。。


PS. 第一次在52pojie发帖,不知道会有多少关注,请大家支持

dryzh 发表于 2017-5-27 21:29

Charles v4.1.2版本分析记录

–by B.S.

5/23/2017 1:32:17 PM

最新版v4.1.2相对v.4.0.2比较,明文类名已混淆.

反编译为源码后,找关键点的分析流程:

在com\xk72\charles\gui\frames\RegisterFrame.java里找到this.bRegister.addActionListener导入的类import com.xk72.charles.gui.frames.GTvL;
在com.xk72.charles.gui.frames.GTvL里找到if (object2 != null) 使他永久为null的函数导入的类import com.xk72.charles.qFep;
在com.xk72.charles.qFep里就是关键类。分析关键点HOOK。

水天下 发表于 2017-5-29 07:02

在com\xk72\charles\gui\frames\RegisterFrame.java里找到this.bRegister.addActionListener导入的类import com.xk72.charles.gui.frames.GTvL;
在com.xk72.charles.gui.frames.GTvL里找到if (object2 != null) 使他永久为null的函数导入的类import com.xk72.charles.qFep;

duanjia0912 发表于 2017-5-27 16:38

谢谢分享

yaojing 发表于 2017-5-27 17:23

随遇而安110 发表于 2017-5-27 17:57

不错的帖子,值得学习一下。

zhatian 发表于 2017-5-27 18:06

厉害了,感谢分享

Hmily 发表于 2017-5-27 18:10

除了分析破解后的文件来学习如何修改的,最好能分析出为什么这么改能破解。

zach14c 发表于 2017-5-27 19:09

连类名都忘记混淆了
真的是极大的失误!!

刘统宝 发表于 2017-5-27 21:41

学习楼主的破解过程,感谢分享经验

jzhjm 发表于 2017-5-27 22:08

学习一下,正要这个软件呢
页: [1] 2 3 4 5
查看完整版本: xxx破解过程分享