当前位置:首页 » 编程软件 » apk无法回编译

apk无法回编译

发布时间: 2023-08-14 05:51:11

㈠ apk反编译/回编译

再次记录一次apk反编译/回编译过程,链接失效请留言,会及时更新。

参考博客: https://blog.csdn.net/w327918069/article/details/82761437

首先,我们需要一个apk,下图是Android Studio编写并打包的一个apk。

其实apk就相当于一个zip压缩包,通过 WinRar 工具可以对其解压缩,像这样:

此时,祭出我们的神器----> apktool ,当当当当~~~~~~~。
一行命令进行apk反编译:
apktool d -r app-debug.apk 一定要加入参数 -r ,不然后面回编译回报错。

apk反编译到此结束。

回编译就是通过 apk反编译 生成的目录文件转换成一个apk。
十分简单的一行命令:
apktool b app-debug

此时安装apk到手机无法安装成功,还需要对apk进行签名才能安装。

1.生成key.keystore
keytool -genkey -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore

可以看到key.keystore已经生成。

2.对apk进行签名
可用于没有签名和已经签名的apk,再次签名。

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]

命令格式及参数意义:

-verbose -> 输出签名过程的详细信息

-keystore [keystorePath] -> 密钥的库的位置

-signedjar [apkOut] -> 签名后的输出文件名

[apkin] -> 待签名的文件名

[alias] -> 证书别名
jarsigner -verbose -keystore key.keystore -signedjar app-debug_signed.apk app-debug.apk key.keystore

回编译完成。

㈡ 求助,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盘的根目录里

㈢ apk反编译,回编出错了

不影响正常运行,只是编译环境,
compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。
需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的 compileSdkVersion 不会被包含到 APK 中:它纯粹只是在编译的时候使用。(你真的应该修复这些警告,他们的出现一定是有原因的)
因此我们强烈推荐总是使用最新的 SDK 进行编译。在现有代码上使用新的编译检查可以获得很多好处,避免新弃用的 API ,并且为使用新的 API 做好准备。
注意,如果使用 Support Library ,那么使用最新发布的 Support Library 就需要使用最新的 SDK 编译。例如,要使用 23.1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 23 (大版本号要一致!)。通常,新版的 Support Library 随着新的系统版本而发布,它为系统新增加的 API 和新特性提供兼容性支持。
解决办法有两种(我测试的前提是反编译的母包是没有包含这两个属性的):
(1)使用apktool 2.3.2版本,因为2.3.3之后版本针对appt和appt2做了修改,最后AndroidManifest.xml里面不在包含compileSdkVersion和compileSdkVersionCodename
(2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最后发现可以回编译成功,但是AndroidManifest.xml还是会包含compileSdkVersion和compileSdkVersionCodename。

㈣ Android APK+Dex文件反编译及回编译工具的常见问题

1、被杀毒软件拦截误杀(安装前,关闭杀毒软件)
2、没有管理员权限(右键以管理员身份运行C:Apkdb安装.exe)或者,使用兼容模式 (右键-属性-兼容性-兼容模式[Windows XP SP3])以及 特权等级 勾选“以管理员身份运行此程序”
3、UAC限制 安装过程没有写入注册表提示,直接显示安装完成(右键 我的电脑-管理-本地用户和组-用户-Administrator(√ 密码永不过期)请在系统变量【path】里最前面添加 c:windows;c:windowssystem32;4、正常安装成功,安装过程有写入注册表提示,但是右键APK 没有菜单(检查是不是安装了PC版的手机管理工具,关联了APK文件)
5、安装后无法编译文件,提示JAVA 错误(未安装JAVA平台,或安装错误。请卸载后重启电脑,重装再次重启电脑)
6、安装成功后,编译文件提示 “Can't create the output directory \****smali”(这是文件夹 没有写入权限。检查是否直接在硬盘分区根目录编译了?Apktool不能在磁盘分区。如:C盘 D盘 根目录!如果不是根目录,请检查apk文件名称是不是有问题。如,文件名结尾空格。)
7、能反编译,但无法回编译(可能是被旧版本的Apktool编译过,试试用旧版的反编译,用新版的回编译)
8、回编译出错问题:(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;(4.其他错误,检查是否复制aapt.exe 文件到系统目录如:C:WindowsSystem32aapt.exe
9、安装过程提示 systeminfo 提示“不是内部或外部命令”请在系统变量【path】里最前面添加 c:windows;c:windowssystem32;或者手动添加这个变量,如果还是不行可能系统不完整,重装吧)
10、如果安装过程中,未显示【操作成功完成】只显示:....................请在系统变量【path】里最前面添加 c:windows;c:windowssystem32;
11、64位系统,如果JAVA出错,建议把32位和64位的JAVA一起装上。
12、Win8用户 需要注意一下,如果安装了手机助手,需要,手动关联APK文件apk文件鼠标右键,【打开方式】-【选择默认程序】-【APK安装器】

㈤ 反编译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选项)

㈥ ApkTool可以成功反编译APK,但是回编译总是失败

应该修改语句不对,失败的时候会提示错误位置

㈦ APK 反编译失败 是为啥

1 有没有加载framework-res.apk构架?在编译一些系统程序时需要先加载framework-res.apk这个系统构架。

2 反编的文件及framework-res.apk是不是官方原版未改动过的?很多时候出错是因为反编的文件是别人或自己改动过的,建议直接从官方固件中提取文件进行编译。

3 技巧说明使用的工具是否版本过低?目前APK编译工具apktool已更新了

4 技巧说明以上都没有问题?反编后什么也不改回编也出错?那只有一个方法了:可以尝试一下用低版本的apktool进行反编译,然后在用高版本的apktoo工具回编译。

还有比如JAVA环境是否搭建正确这些基本问题这里就不说了。

㈧ apk回编译出错

首先,确保aapt命令直接打印成功输出!需要配置环境变量:
在Path一栏中添加:
%ANDROID_SDK_HOME%uild-toolsandroid-4.4;
后面的android-4.4你懂的,换句话说只要存在aapt.exe的文件夹就可以了.

然后你的apktool.jar命令貌似没有看懂

apktool.jardyou.apk
指的是将you.apk反编译成源文件

apktool.jardyou
指的是把源文件回编译成apk文件,ps:或许其他。

㈨ apktool 回编译失败 怎么解决

、反编译=回编译后分别是
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的版本。

热点内容
c语言编程图书 发布:2025-02-04 19:01:52 浏览:894
在哪里开启密码显示 发布:2025-02-04 18:38:30 浏览:787
怎么查询qq密码 发布:2025-02-04 18:20:10 浏览:513
python编写接口 发布:2025-02-04 18:08:30 浏览:78
怎么给游戏设置密码 发布:2025-02-04 18:03:08 浏览:926
商品存储规划 发布:2025-02-04 17:45:24 浏览:567
ios访问共享 发布:2025-02-04 17:36:33 浏览:335
javabuild 发布:2025-02-04 17:30:19 浏览:592
gnulinux编译 发布:2025-02-04 17:30:18 浏览:132
苏州阿里云服务器专网 发布:2025-02-04 17:21:05 浏览:526