关于0x01010540
错误
0x01010540
是因为SDK版本太高,反编译工具识别不出来,需要替换成0x0101048f
具体方法见后文
关于0x01010543
错误
如果只有
1 | Exception in thread "main" b.a.a.e: resource spec: 0x01010543 |
没有UndefinedResObject
则更换apktool
后再试apktool
可以在爱盘下载
实在要修复的话,往下看:(都是修改resources.arsc
)
修复UndefinedResObject错误
报错信息:
1 | Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x7f000006 |
解决方法
aapt dump
查看apk的资源信息,并保存到文件
1 | 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
报错信息:
1 | 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
)