本帖最后由 XhyEax 于 2019-2-28 17:30 编辑
关于0x01010540 错误
0x01010540 是因为SDK版本太高,反编译工具识别不出来,需要替换成0x0101048f
具体方法见后文
关于0x01010543 错误
如果只有
Exception in thread "main" b.a.a.e: resource spec: 0x01010543
没有UndefinedResObject
则更换apktool 后再试
apktool 可以在爱盘下载
实在要修复的话,往下看:(都是修改resources.arsc )
修复UndefinedResObject错误
报错信息:
Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x7f000006
解决方法
aapt dump 查看apk的资源信息,并保存到文件
aapt d --values resources test.apk >1.txt
找到DataType 数据类型不正确的值(搜索attribute 即可)对应的描述符(一般是把7f改成00,0x00000006 )
文件中没有识别出正确的数据类型,显示的是(attribute) 0x00000006
使用010Editor ,Ctrl+F,字节形式搜索对应描述的16进制数的小端字节(就是00000006 写成06000000 )
然后把它前面的字节0x02 修改为0x03 ,保存后替换进apk即可
修复resource spec: 0x01010543
报错信息:
Exception in thread "main" b.a.a.e: resource spec: 0x01010543
解决方法
使用010Editor ,Ctrl+F,字节形式搜索报错的16进制数的小端字节(就是12345678 写成78564312 )
这里我们搜索43050101 ,然后把它前面的字节0x02 修改为0x03 ,保存后替换进apk即可
修复resource spec: 0x01010540
0x01010540 是因为SDK版本太高,反编译工具识别不出来,需要替换成0x0101048f
解决方法
使用010Editor ,Ctrl+F,字节形式搜索报错的16进制数的小端字节(就是40050101 换成8f040101 )
参考
记录Android Killer反编译时遇到的异常
保护Android resources文件不被反编译原理分析
|