Charles Web Debugging Proxy可能是最好用的网络代理,用Java写的,跨平台。用起来比Fiddler顺手很多,而且更强大。由于是Java写的,所以更容易「破解」。
对于Java反编译,jad已经过时了。强烈推荐jadx,设置好参数,几乎可以完美反编译Charles的Licence.class。
Licence.java
是一个独立类,没有引用其他第三方文件,所以调试起来非常方便。虽然有了代码,但是想做一个「注册机」还是有难度的。各种位操作眼花缭乱,还不如直接在验证函数上返回true
,然后替换原有的Licence.class更省事儿。
一下操作仅适用于3.10.1
,其他版本请自行解决,方法类似。
如果你不想自己DIY,可以拿我做好的charles.jar
替换即可。
额外收获
研究Charles破解的过程中,学习了java的-agentpath
参数。并且体会到了btrace的强大功能。
注意btrace现在的版本还不能在oracle jvm over mac上运行,可以参考:https://github.com/jbachorik/btrace/pull/128