吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4278|回复: 4
收起左侧

[原创] XXXXXSWF 3.6 Build 6664 Pro 注册机编写

[复制链接]
dsong 发表于 2017-8-5 15:52
本帖最后由 姐又寡闻了 于 2019-6-6 22:31 编辑

逆向工程实战之secureSWF 3.6 Pro注册机编写
2017/8/5


一、引言
上一期里,secureSWF 3.6 Build 6664 Pro的修改代码式破解方法已经发布。
这里主要介绍注册机写法。但是,本次的注册机编写教程并不要求读者分析清楚所有的算法,只需要有Java编写基础,按部就班地操作就可以。

二、工具准备
1. jd-gui 1.4.0 或其他合格的java反编译器。
2. 一个java IDE(本文使用IntelliJIDEA做演示)。备注:如果你愿意分析完所有代码再用其他语言编写,那么也是没有问题的。

三、开始“编写”
1. 使用jd-gui导出所有源代码。
image1.png

2. 删除所有无关的功能代码,保留下与注册算法有关的class。
(过程略,)结果如下:
image2.png

注意,导出的工程会在secureSWF\A\文件夹下有同名(全为”A”)的class文件和文件夹,这是不允许的,为了方便(不需要修改引用),应该把secureSWF\A\A.java文件改名,我这里改为AA.java。
3. 修改剩余文件中的语法错误(略)。
4. 添加新的输出。
(I) 命令行界面
这里最好“里应外合”一下,因为它的代码是混淆过的,你把代码全写在别人混淆过的东西里就会很难受。于是我自己新建一个class做main class,Main里面写的关键代码:
[Java] 纯文本查看 复制代码
        Scanner sc=new Scanner(System.in);
        System.out.println("username:");
        String regName = sc.next();
        System.out.println("macCode:");
        String macCode = sc.next();
        System.out.println();
        System.out.println("OK, your registration infos are:");
        secureSWF.A.AA.gen(regName,macCode);

然后,在secureSWF\A\AA.java中新建函数gen,关键代码:
[Java] 纯文本查看 复制代码
        System.out.println("");
        System.out.println(D(regName));
        System.out.println(A(macCode));

要注意的是,原来的算法代码里有throw Exceptions,你要全部在外层调用中handle。
(II) GUI界面
如果用IDEA,可以很快很方便地生成gui。
image3.png
image4.png


ui里的关键代码:
[Java] 纯文本查看 复制代码
            return secureSWF.A.AA.gen(regName,macCode);

secureSWF\A\AA.java里的关键代码:
[Java] 纯文本查看 复制代码
        ArrayList testgen = new ArrayList();
        testgen.add(D(regName));
        testgen.add(A(macCode));
        return testgen;

至此,所有步骤都完成。
5. 测试:
按照本教程方案执行,应该是没有任何问题的:


image5.png
image6.png

四、总结
由于JAVA的编译和需要在JVM里运行的特性,使得JAVA的反编译至源码是一件完全可能的事情,而且反编译出来的代码逻辑常常很好。可以说,唯一的阻碍就是变量名的混淆,但是只要找到其他规律(如特征字符串、特征文件引用等),这些问题都不会成为阻碍。

五、附加
如果反编译这个文件,你就会发现,在很多class里面的函数名字会有重复。这听上去不太可能,但是JAVA里是允许这样的事情发生的,只要一个class内相同名字的函数返回值不同即可。可以去看看proguard这个软件,是专门混淆JAVA程序的开源软件,里面就有一个叫做overload aggressively的选项,指的就是这种混淆方式。
不过,这也就意味着,可以修改proguard的源码,然后自己编译生成一个专门反混淆的软件。(我不知道是否已经有这样的软件。)或者直接用proguard不开-overloadaggressively的选项再“混淆”一遍也是可以的。所以JAVA程序的anti-decompile,实在是不太容易做到的。
这也就是为什么,secureSWF仍然在开发它的产品,却不再有更高版本的试用版供下载了。

免费评分

参与人数 4吾爱币 +11 热心值 +5 收起 理由
wdllp123 + 1 + 1 我很赞同!
Sound + 7 + 1 已经处理,感谢您对吾爱破解论坛的支持!
ducd + 1 + 1 感谢对吾爱破解论坛的支持,因你更精彩!
geek_007 + 2 + 2 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

geek_007 发表于 2017-8-5 16:59
不错,学习了
fq645122 发表于 2017-8-5 17:01
aj1688 发表于 2017-8-5 18:24
tiansi78 发表于 2017-8-6 13:32
非常不错,谢谢分享
sjzok1 发表于 2017-8-6 22:47
学习了。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 01:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表