Tag Archives: 破解

Deskzilla Cracked

最近破解上瘾了,昨天干到3点多,今天又花了一中午把deskzilla,一个bugzilla的桌面客户端)破解了。 这次破解花了很长时间,一是因为代码编译后被混淆了,找关键代码的时候着实花了不少时间。另一方面这个软件的license验证不是使用常见的布尔判断,而是用异常。这意味着必须仔细研究方法的调用栈,于是这次用了一个比较偷巧的方法:在代码中抛出并捕捉异常。在Java中,无论在代码何处抛出异常,JVM都会生成一个从程序入口到抛出异常方法的调用栈,这个机制在需要调用关系的场合非常有用,比如log4j,就是使用这种机制记录log的方法、行数、类名等等信息的。但是,这种机制是非常消耗资源的,因为调用栈里的每一个element都记录着方法、类、甚至行数(如果编译时打开“debug”开关)等信息,而这些信息都是通过反射机制从class文件里直接获得的。 通过对一堆类似huv、dww、dtg、gjt的混淆后的类的分析,终于找出了几个关键类: package z; public class dza extends hwn { // … static { l = epv.a(“Application.License.FULL”, “Single-user license”); m = epv.a(“Application.License.EVAL”, “Evaluation license”); n = epv.a(“Application.License.EAP”, “EAP license”); o = epv.a(“Application.License.OS”, “License for open-source projects”); p = epv.a(“Application.License.INVALID”, “License is INVALID”); r = epv.a(“Application.License.FLOATING”, “Floating license”); s = epv.a(“Application.License.PERSONAL”, “Personal license”); t = read more »

Synthetica破解

话说前段时间提到把Synthetica给破了,而网上关于破解的文章很少,所以今天就详细说说我是怎么破的。 准备知识 Synthetica是一套很漂亮的Java的look & feel,大家可以去主页上跑一下demo(JWS的,需要安装JRE) 。可惜是commercial的,虽然有评估版下载,但是恶心的是,在评估版界面的最下方会有一块多余的区域(下图) 那这次破解的目的就是把这块区域给去了。 就我这几次破解来看,破解主要分以下几个步骤: 1. 反编译 2. 找关键代码(比如序列号校验算法) 3. 修改源代码 4. 编译打包 其中第1步是前提,在这点上Java的byte code的反编译是比较容易的了,因为毕竟是中间码,而且编译期采取的优化手段不多,反编译过来的基本就是源码。这里推荐DJ Compiler,一个相当老牌的Java反编译器。值得注意的是并不是所有的byte code都能顺利反编译,有些Java程序会使用所谓的“混淆”技术对编译后的代码就行破坏,混淆器一般采用以下方法破坏代码: 1. 不可反编译。这点其实基本不可能 2. 反编译后代码不可读。这点相当恶心,混淆器会把类名、方法名、字段名替换成没有意义的名字,当你打开编辑器放眼望去全是“class A”,“int _fld00043”,“void _mhd2314”的时候你就知道该有多痛苦了 3. 插入不可编译代码。这一点也比较恶心,说穿了就是直接修改byte code中的指令,使用合法的,但不可能从源代码编译到的指令替代原有的指令(比较拗口),比如使用“goto”替代循环。这样你的代码即使可以反编译成源代码但只能看不能改,除非你把goto再替换回去 这次Syn并没有使用混淆,所以用DJ很轻易地就反编了,接下来的活就是怎么找关键代码。一开始我以为评估版输入序列号校验成功后就升级成商业版,于是在那儿找了半天序列号的校验方法,没找到。后来凯子提供一条线索,Syn的商业版是要重新下的,于是猜测评估版和商业版不是一个版本(有时候破解也是要点推理的:-)),估计不会校验注册码。于是改变方向找加那一行字的代码,最后找到了: public void paintBorder(Component component, Graphics g, int j, int k, int l, int i1){     …     g.setColor(UIManager.getColor("Panel.background"));     g.fillRect(j, i1, read more »

iPhone破解:1.0.2 -> 1.1.3

今天在公司玩iPhone,1.0.2的版本,心血来潮,决定升级。 上网搜了N久,有不少升级的方法, 尝试了一种先升到1.1.1的,结果不能识别SIM卡。于是抱着iBrick的决心,直接升到1.1.3,结果成了,方法如下: 1. 下载1.1.3的更新问件,网上一搜一堆,以ipsw 为后缀,162兆 2. 下载安装最新的iTunes,直接上苹果的官网下 3. 连上iPhone,双击1中下载的ipsw,这时应打开iTunes进行更新,更新完后会重启,但处于锁定状态 4. 更新完后,上网搜一个叫ZiPhone的东西,有带GUI的版本,当前好像是3.1 5. 打开ZiPhone(我用的GUI版本,会安装一下),连上iPhone,单击ZiPhone里的“Free My iPhone”,这时iPhone会重启,不行的话重启iPhone,再试一次。成功的话会看到iPhone在刷屏,2分钟左右以后iPhone自动重启,破解完成! 6. 在iphone桌面按installer图标进入install按次序安装Community Sources、BSD system 2.0 Termfix、BSD system 2.1和open SSH 7. 在 iphone里点击setting -> general -> network -> wifi里看到你的iPhone的IP地址 8. 下载安装Winscp,打开Winscp,在Winscp里输入 ip:192.168.1.100 用户名:root 密码:alpine 按LOGIN,一次连接大约需要30-45秒。别急,连不上的话多试几次。 9. 下载iphone 1.1.3汉化包,然后解压。用Winscp 将解压出的2个文件夹Applications和System传到 iphone的根目录下,覆盖原文件 10. 在iPhone 里点击setting -> general -> international -> language -> read more »

IDEA,破解成功

今天在TSS上看到IntelliJ的IDEA 5.0终于release了,于是马上当了一个,还申请了一个30天的评估号。要知道IDEA可是个人程序员非常钟爱的IDE,界面很漂亮,使用 Alloy的Look and Feel,而且功能也相当强大,个人认为在中国这片没有license概念的土地上可以和JBuilder抗衡。但是上网站一看价格,竟然要$499!看来自己花钱买license是不可能的了。于是又找出Java反编译利器DJ,打算破解IDEA。 由于有了alloy的破解经验,这一次很快找到了关键代码,稍做修改后,评估版30天的限制被我破掉了,以后可以在一个“舒适”的IDE上开发了 Develop with pleasure

Hacker

Alloy

Alloy look and feel(http://www.incors.com/lookandfeel/index.php)是一个非常漂亮的Java的look and feel,但是它是收费的,免费的只能使用30天。经过一个晚上和一个白天的努力,我终于成功破解了alloy,心里那叫一个高兴啊,以后再做ui可以有很漂亮的界面了。等两天有空作一个算号器。

无觅相关文章插件,快速提升流量