吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14750|回复: 9
收起左侧

[Android 原创] Java混淆器Allatori v6.2 DEMO的一些分析

  [复制链接]
qtfreet00 发表于 2017-7-6 10:56

环境 Windows 10 + ubuntu

Allatori是一款很不错的混淆器,可以混淆java写的java程序或者android程序。

因为allatori里所有文件都是IIIiiiIII此类进行混淆的,并且长度一样,所以不能在Windows下进行解包,拖到ubuntu下使用cfr进行反编译,完成后拖到ide中进行分析

demo版本没有功能上的限制,但是会显示很多demo字样,比如会在部分方法下打印如下标志:

    ################################################
    #                                              #
    #        ## #   #    ## ### ### ##  ###        #
    #       # # #   #   # #  #  # # # #  #         #
    #       ### #   #   ###  #  # # ##   #         #
    #       # # ### ### # #  #  ### # # ###        #
    #                                              #
    # Obfuscation by Allatori Obfuscator v6.2 DEMO #
    #                                              #
    #           http://www.allatori.com            #
    #                                              #
    ################################################

其次部分方法名和变量名可能会被混淆成ALLATORIXDEMO字样,这里主要是针对以上两个如何破除掉限制。

这里可以看到一个规律就是字符串解密都是调用一个名为THIS_IS_DEMO_VERSION_NOT_FOR_COMMERCIAL_USE的解密方法,并且解密参数只有一个,但是分析后发现解密方法并不只有一个,大概有十几个,并且解密算法也不一样,出于这一点就能直接写脚本对字符串进行还原,好在java里有agent机制,这里还是使用javaagent进行动态打印

使用工具依然还是javassist,

这里每加载一个类都会对所有方法进行编译,判断当前方法名,返回值类型和参数类型,过滤掉其它不相关的方法,然后直接在结尾插入system.out.print方法,网上对于javassist的教程简直一塌糊涂,不如直接翻教程,返回值的表示为$_  ,如果是参数的即为$1,$2这样,拿到返回值就可以看出规律,这里运行一下的话会看到很多ALLATORIXDEMO的字样,判断就是这些字段会影响方法名和变量名,直接这里修改方法对返回值进行筛选,判断为我们想改的字段直接修改掉

      m.insertAfter(" if             ($_!=null&&!$_.isEmpty()&&$_.equals(\"ALLATORIxDEMO\")) {\n" +"$_ = \"qtfreet00\";\n" +"}");

这里我改成了自己的id,自己写个demo混淆测试下

这里logo还在

不过ALLATORIXDEMO的字样已经没有了,然后想着怎么去处理这个logo,测试过程中发现上面的解密时出现了Obfuscation by 的字样,所以这里想着直接连参数也一起打印出来,找到这个字样解密前的状态
发现混淆前Obfucation by包含了^zE}*QS3的字眼,直接去ide里搜索,仅找到一处声明

看来这个地方就是生成logo的地方就行了,直接把返回值改成其它任何的

这里可以发现我并没有直接去指定方法去修改,感觉那样局限性会比较大,混淆器一更新就不行了,所以这里的指定比较模糊,效果

最后还是留下一个问题就是如何直接去掉那个插入的system.out.println

免费评分

参与人数 6吾爱币 +21 热心值 +4 收起 理由
qi20170721 + 1 + 1 学习了
无名侠 + 15 学习了!!!!
vking + 1 + 1 谢谢@Thanks!
palard + 2 + 1 谢谢@Thanks!
Mint_Grass + 1 谢谢@Thanks!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

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

Joecer 发表于 2017-7-9 18:37
。。。。。。。

免费评分

参与人数 1吾爱币 -15 收起 理由
qtfreet00 -15 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

qianeymax6274 发表于 2017-7-6 21:56
s1986qq 发表于 2017-7-8 09:33
nikoxves 发表于 2017-7-8 10:53
学习了java agent ,javassit ,感谢楼主,确实很不错
hunan231 发表于 2017-7-22 12:38
学习了~多谢分享
yanglq 发表于 2017-8-26 15:22
感谢楼主的分享,最近正在看混淆相关
qi20170721 发表于 2017-8-29 10:26
非常棒,我正好需要
odd2008 发表于 2017-11-16 01:26
Allatori属于第二代的混淆,请问对于第三代的DashOPro有没有研究呢?
魔法先生 发表于 2020-3-15 20:51
楼主,请问如何使用呢?能不能分享下结果文件?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 17:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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