免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:微尘网校
上一个内容:3.Android逆向协议-APP反反编译及回编译
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容写了App反编译与回编译,本次来写打包失败的解决方法
首先打开 AndroidKiller并拖入一个apk
下方apk说 39285EFA.dex 文件有问题,没法识别
首先apk是一个压缩包,通过压缩软件可以直接打开,然后把文件复制出来,然后把文件拖到二进制文本编辑器里(010 editor、winhex(它启动的有点慢))
使用二进制编辑器打开 39285EFA.dex 文件发现它很明显有问题,dex文件它有格式
一个正确的dex文件(从apk找一个),正确的dex文件开头是dex 数字,然后上方并不是dex但却是dex后缀,dex文件有它自己的格式,上方文件并不满足dex文件格式所以在反编译的时候按照dex文件格式反编译就会报错
这个解决办法是直接打开apk,把apk打开之后找到 39285EFA.dex 文件把它在压缩包里删了,删除之后再次反编译,注意AndroidKiller会有历史记录,相同文件它不会重新读取apk文件,这样我删了39285EFA.dex文件AndroidKiller里是没有删的,所以它还会有问题,这个要把 AndroidKiller 的历史记录删了,或把apk文件的名字改了
回编译(二次编译)可能会出现资源的错误,如下图出现.9.png的文件错误,这个是图片,这种图片被特殊处理了,它被拉伸的时候不会失真(不会模糊),这种的APKtool不能正常处理,解决办法,把图片手动搞出搞成9.png,但是图片很多手动搞不现实,所以在不修改资源文件的情况下使用一个参数把资源文件过滤掉
参数编辑,如下图
然后输入-r
点完确定之后
然后还是把 AndroidKiller 的历史记录给删掉或吧apk改名,然后重新反编译apk,然后再次编译上方的.9.png错误就会没有了,这里要注意,刚开始把39285EFA.dex文件删了,在编译的时候把 39285EFA.dex 文件再放回去
在弹出的窗口总把39285EFA.dex文件复制进去
然后点下图红框位置刷新
刷新完之后就可以看到了
然后如果要改资源文件,改的资源文件不报错,其它的资源文件报错,那就把apk中原本的文件复制一下,粘贴到工程管理器中(上方复制39285EFA.dex的操作),然后重新编译
如果改的资源文件报错,那就把资源文件使用二进制编译器来修改(直接对编译后的文件做修改,使用010 Editor或winhex工具)
由于是协议分析 ,协议分析只是找接口,所以打包这方面不会写的很细