mao

Results 199 comments of mao

mapping.txt是proguard混淆生成的文件,用来还原混淆后的类名方法名。 具体不清楚,我没用过那东西,看报错好像是class版本不兼容。还有就是不要去处理开源库,纯粹给逆向者提供指令映射规则

指令虚拟化就是局部加固重要逻辑的,不适合用于全局,demo全加固只不过为了验证兼容性。第三方开源库,大量数组相关操作这些别转换。加固第三方开源库纯粹给逆向分析的人提供指令映射关系,数组相关操作效率极低。

其他没那么明显,还有就是循环中反复创建,删除引用,这个基本没法自动处理。实际使用时尽量缩小加固范围。

实现ClassAndMethodFilter接口,两个过滤方法参数是dexlib2的ClassDef和Method,可以依据它们获得方法信息以及遍历指令之类。

最明显就是数组操作,每次访问vm中要做额外的边界检查,以及可能出现的复制整个数组。其他的很难有简单的方法解决性能问题,这别用于处理整个应用,性能下降很明显,只适用于部分重要逻辑进行虚拟化。而且如果处理开源库几乎会导致opcode随机化效果失效。

看报错so文件被修改了,去app安装目录下看so文件是否真被改动过,这个问题应该跟系统有关。可以试试把System.loadLibrary("nmmp")改到自定义的application中。

可以加固aab,简单的可以通过命令行,自己依赖可以调用apkprotect/src/main/java/com/nmmedit/apkprotect/aab/AabProtect.java

加固后用简单的jar签名就行,不需要使用apk签名做对齐什么的。

没问题,我都是先用在我googe play上的应用。java层没有使用私有api,native层没有hook系统函数,完全基于公开api以及java语言本身的机制,除非代码本身问题不然没影响。