Google难架马甲多

今年谷歌上架的难度可谓是地狱级别。

可是国内马甲这么多,总要摸索出一些套路来。

这里总结几条开源aab混淆策略。

1、as自带混淆是必要的,否则就是源码提包,相当于到谷歌门口举个牌子说我是马甲包。

不仅要驳回,还要被封号。

所以这个得加上。

2、做了第一步,也还只是个小孩。只是对包名、字符串做了简单的替换,对安卓的4大组件类开绿灯了,这块相似度高也是个麻烦事。

我们问问开源世界对这个问题的看法。

有一些变态混淆我们可以用起来:

比如说这个:

2.1  变态字典

用上这个,我们看下反编译出来的aab:

Google难架马甲多_第1张图片

这个马甲,人看了只会一脸黑。

当然还有一些超级变态的混淆字典,比如这个兄弟提供的:

2.2  超级变态混淆字典

Google难架马甲多_第2张图片

这已经到了乱码级了。

但个人觉得,做到2.1就行了,2.2没必要。我们的目的是通过审核,在审核层面的帮助这一步意义不大。

好,dex代码混淆其实做的差不多了,再往下做就得像加固那样把代码怼到so里面去了,那样可能适得其反,谷歌直接送回泉水。

3、aab包里还有一块也是谷歌重点审核对象:资源

资源其实大致分两类,一类是xml文件,一类是非xml文件。

xml文件除了文件名、md5校验,还可以比较文件内容。一些id,属性,字串等都可能要经过审查。

非xml的比如图片,这类一般是文件名和md5比对(瞎猜的)。

图片的md5简单的就是通过UI设计发力,程序员对资源做混淆就好。

开源社区上也有较多的这类混淆工具

针对aab的有bytedance的这个:

Google难架马甲多_第3张图片

这个工具比较老了,AGP版本1.8以上就会无法使用。但是可以用fork他的改良版:

3.1  ResChiper

目测是印度小伙优化的,点赞。

根据他的魔法,打出来的aab反编译是这样的:

Google难架马甲多_第4张图片

构建完成后会在aab目录输出resource-mapping.txt:

Google难架马甲多_第5张图片

可以看到只是对文件夹、文件名做了字典替换。

文件内容不会去变。

但为了深度混淆,最好在做个xml文件内容混淆。

可以用这个:

3.2  XmlClassGuard

这个是本地gradle task直接修改源码,建议在单独分支处理,避免污染源码。

另外需要注意的是,这个工具会把所有类和资源做字典替换,且会有部分类会替换不完全,还需要手动补全。需要花点精力。

执行顺序应该是XmlClassGuard的task先执行,再执行ResCeipher打包任务。

这套combo下来,基本上谷歌也会低下高傲的头颅。

你可能感兴趣的:(安卓,android,马甲,Google,出海)