首页
论坛
专栏
课程

[原创]Null混淆

珍惜Any 2018-11-8 16:16 2812

分享一套“空白混淆”


昨晚玩游戏,看见别人游戏名是空白的,自己想想能不能通过空白字符


来修改混淆proguard jar包,结果成功了,因为安卓是u8编码


也是借鉴mt作者Bin大佬的之前发的帖子基础上修改的

https://mp.weixin.qq.com/s/T8CFMjQ5_te1fIHzwzTpUg

效果图如下,可以增加xposed Hook难度(我自己测试路径 写的难受死 )


Jadx显示异常,和jadx跳转难度,如果没有反混淆基本无法分析 

也是增加了 程序的安全性  



代码效果图 



Jadx打开效果图 



代码地址

NullProguard


大家可以感受一下 ,Demo下载地址

Demo下载地址






[防守篇]2018看雪.TSRC CTF 挑战赛(团队赛)11月1日征题开启!

最后于 2018-11-9 13:08 被珍惜Any编辑 ,原因:
最新回复 (19)
kanxue 8 2018-11-8 16:20
2

0

建议将内容帖到论坛上交流。
珍惜Any 2018-11-8 17:00
3

0

kanxue 建议将内容帖到论坛上交流。
已修改 希望 上个 优秀帖子 哈哈哈 
bengou 2018-11-8 17:19
4

0

这个有点变态了。。。。
珍惜Any 2018-11-8 17:23
5

0

bengou 这个有点变态了。。。。
无视xposed Hook  
网络小男孩 2018-11-8 17:29
6

0

加油
葫芦娃 1 2018-11-8 17:31
7

0

顶一个
LowRebSwrd 1 2018-11-8 17:56
8

0

不错,再把原理充实一下就好了,加油!
Yougar 2018-11-8 18:22
9

0

赞,加油
skyun 3 2018-11-8 18:24
10

0

顶一个
飞龙test 2018-11-8 18:38
11

0

kanxue 8 2018-11-8 18:56
12

0

珍惜Any 已修改 希望 上个 优秀帖子 哈哈哈
简单了些,欢迎以后发更多的内容上来
繁华皆成空 2018-11-8 20:30
13

0

之前我再改proguard的时候碰到一个问题,就是非标准字符,在直接编译成app的时候一般没问题,但如果是module,编译出来jar给别的项目引用,此时混淆过的jar包很有可能在其他项目引用编译时报错
珍惜Any 2018-11-8 20:34
14

0

繁华皆成空 之前我再改proguard的时候碰到一个问题,就是非标准字符,在直接编译成app的时候一般没问题,但如果是module,编译出来jar给别的项目引用,此时混淆过的jar包很有可能在其他项目引用编译时报 ...
module本质是一个 Lib 也需要 添加对应的 混淆规则
Vn小帆 2018-11-8 21:51
15

0

我比较想知道 这种混淆怎么HOOK,  0o0   同盾 就是用的这种混淆
珍惜Any 2018-11-9 09:03
16

0

Vn小帆 我比较想知道 这种混淆怎么HOOK, 0o0 同盾 就是用的这种混淆
也需要 输入 类名 比如 0o0.o0
珍惜Any 2018-11-9 13:09
17

0

更新了个 Demo 大家可以下载感受一下 
junkboy 2018-11-9 19:13
18

1

珍惜Any 更新了个 Demo 大家可以下载感受一下

和 oO0 这种本质上是没啥大区别, 但是感觉很好玩 (主要楼主回复里说的"无视 xposed hook"吓我一跳, 我以为是利用了 xposed 的字符编码方面的 bug, 还是可以 hook 的, 就是如果不反混淆看着太费劲)

 

用 JEB2 API 可以对这些字符串进行操作然后改名, 改完名分析起来就和平时分析 oo0 差不多了, 空白确实很影响观感...

        classes = unit.getClasses()
        for c in classes:
          cname = c.getName(True)
          s_str = cname.encode('unicode-escape')
          newClassName = s_str.replace("\\u", "_u")

珍惜Any 2018-11-10 15:19
19

0

junkboy 和 oO0 这种本质上是没啥大区别, 但是感觉很好玩 (主要楼主回复里说的"无视 xposed hook"吓我一跳, 我以为是利用了 xposed 的字符编码方面的 bug, 还 ...
哈哈哈 我自己hook写的和难受 也是增加 容错率
fooree 1天前
20

0

按照楼主的思路,改写了proguard.obfuscate.SimpleNameFactory类,使用了一些未定义的不可见的字符代替26个字母,可能是因为我PC环境的问题,反编译效果没有楼主的看起来爽,完全是一片空白,我这边字符全部显示为小方块□(当然了,效果是一样的恶心)
jadx显示如下

jeb显示如下

返回