Android APP怎样防止工具逆向破解
发布网友
发布时间:2022-05-05 17:25
我来回答
共1个回答
热心网友
时间:2022-06-27 20:28
首先
所需要的工具有: IDA、 C32Asm、 DexFixer!
我们新建一个测试类。为了绕过Dalvik运行时代码验证,BadCode.java要保证不被调用。(否则运行app,会出现java.lang.verifyerror常)
然后
1
生成apk,用ida打开classes.dex。并找到BadCode类的aaa方法。选中的三行代码对应”System.out.println("aaaa");”
2
切换到HexView-a视图,记录下指令码 “62 00 02 04 1A 01 8E 076E 20 19 10 10 00” 和对应偏移“0003A2A4”
3
使用C32asm,以十六进制的方式打开dex文件。按快捷键“Ctrl + G”,定位到“0003A2A4”
把“62 00 02 04 1A 01 8E 07 6E 20 19 10 10 00”改为“12 01 38 01 03 00 FF FF 00 00 00 00 00 00”
Opcodes解释:
1
12 01 //const/4 v1, 0 //v1=0
38 01 03 00// if-eqz v1, loc_3A2AC //if(v1==0) 跳转到 loc_3A2AC:
FF FF //FFFF (Bad opcodes) //本行代码被跳过永远不会执行
// loc_3A2AC:
2
保存dex。把修改后的dex文件拖入DexFixer进行修复。
3
用修复后的dex覆盖原apk中的dex文件。
4
删除META-INF签名文件
5
使用签名工具,对apk重新签名。
6
Apk安装到手机,运行成功