反编译后apk不能解析
1. apk反编译出现异常,谁能告诉我是怎么回事
看不到异常信息,很难判断。
反编译不是万能的,第一,现在有很多apk使用加固技术,就是为了防止别人反编译。第二,apk本身也有混淆技术,就算是反编译之后,也是需要自己慢慢分析,慢慢整理思路。第三,自己开发是正途。
2. APK反编译后回编译失败是为什么
、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。1、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
3、出错问题1
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
这些小小的错误都会导致回编时译检查出错。
所以汉化时,注意对校,然后再回编译。
建议使用一些高级的文本编辑器,支持语法高亮视图的。
4、出错问题2
最近发现有些APK文件 反编译后,就算不汉化直接回编译,都会出错。
有可能的原因1,反编译后XML文件语法中@符号 前面多了"\" (\@ ),
用文本编辑工具 直接替换【\@】为【@】,应该可以解决。
建议使用最新版本的反编译工具。
5、建议大家使用新版本的APKTool工具,
当然如果新的有问题也可以试试旧的一、系统文件汉化再次强调
1、汉化Settings.apk(系统设置)、MMS.apk(信息)、Phone.apk(电话)、
等等系统文件,一定要先 安装构架,具体看另个文件
<关于APKTool工具反编译Settings.apk问题>。
2、系统文件汉化完后不需要签名,直接替换汉化后的文件,就可以了。
主要是,系统文件放在系统目录,无需再次读取签名获得权限,已经是高级了。
二、打包说明
1、通常汉化完回编译后,会自动生成所有APK内的文件,或者自动生成*.APK文件。
但是建议大家不要直接使用该文件,进了使用替换法,替换掉你汉化后的文件,
如:resources.arsc,如果修改过的图片,等等…
2、很多人对于APK文件 解压缩或压缩 都用“WinRAR”或“好压”,这里不推荐。
希望大家安装7-Zip这个压缩工具,对于zip格式的支持是最好的。而且很方便,
不需要重新关联apk 直接右键打开就行了。替换直接拖拉进去,就OK了一、回编译出错问题
(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;
(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;
二、一切能正常但无法回编译
还有一种情况,apktool最新版本能正常反编译一个apk文件,在未做任何修改的情况下,无法回编译。
这是就要注意了,可以尝试一下用低版本的apktool进行【反编译】,然后在用高版本的apktoo工具【回编译】。
这里向大家推荐用 【APKDB】 这个工具,很方便,反编译时可以选择apktool的版本。
3. 关于android中APK反编译后导入eclipse老是出错的那些事
反编译后的代码只能作为参考,比如算法,布局,模式设计等,因为android反编译后,比如activity里的setContentView(123567),里面会是数字,而不是我们常见的R.layout.xxx, 类似的R.String.xxx等等都是一样的,所以编译不通过很正常。
如果你想学习项目,作为模板,可以去github上或者google codes上去找些开源的项目,如果选择反编译建议反编译2.2以前的apk,那时还没有混淆编译 ! 诸如:众多Android+开源项目推荐,给力工作给力学习.pdf 这样的书 网上很多!
4. 反编译apk之后无法回编译,怎么回事
使用apktool进行apk的反汇编时,没有出现问题(有问题的自行解决),
但是进行回汇编时出现:
F:\apktool>apktool b Hello Hello.apk
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
at brut.androlib.Androlib.readMetaFile(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.directory.PathNotExist: apktool.yml
at brut.directory.AbstractDirectory.getFileInput(Unknown Source)
... 5 more
经验证是,反汇编时没有生成apktool.yml
进行反汇编时,改用命令apktool d -r xx.apk xx便可以解决(加上了-r选项)
5. 反编译了APK后修改了AndroidManifest.xml就无法回编译
系统apk重新编译后不需要签名,直接用rar打开打包生成的apk里面的androidmanifest.xml文件替换原apk里的androidmanifest.xml文件即可
6. APK 反编译失败 是为啥
1
有没有加载framework-res.apk构架?在编译一些系统程序时需要先加载framework-res.apk这个系统构架。
2
反编的文件及framework-res.apk是不是官方原版未改动过的?很多时候出错是因为反编的文件是别人或自己改动过的,建议直接从官方固件中提取文件进行编译。
3
技巧说明使用的工具是否版本过低?目前APK编译工具apktool已更新了
4
技巧说明以上都没有问题?反编后什么也不改回编也出错?那只有一个方法了:可以尝试一下用低版本的apktool进行反编译,然后在用高版本的apktoo工具回编译。
还有比如java环境是否搭建正确这些基本问题这里就不说了。
7. 反编译软件无法解包个别软件的问题怎么解决比如,conats.apk
系统程序反编译要加载框架framework-res.apk的。你想重新安装通讯录,可以从同一机型的机友那里提取一个,然后复制到system/app里修改权限,重启即可。
8. APKTOOL怎样用的,我反编译成功之后回编译失败,出现下图这样的情况是怎样的
编译失败是操作过程中错误造成的。解决方式如下:
1、首先去官方网站点击下载可用的最新ApkTool。
9. 求助,apk被加密了,反编译不了,可有方法解决
下载dex2jar JD-GUI apktool
反编译步骤:
1.反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
1.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
2.解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
10. 安卓apk反编译问题
爱加密平台的推出可以有效解决这些问题.APP通过使用爱加密平台 加密,可以从根本上防止应用在运营推广过程中被反编译、恶意篡改、注入扣费代码、盗取数据等,提高应用的安全性、稳定性,让打包党无机可乘。