当前位置:首页 » 编程软件 » app反编译教程

app反编译教程

发布时间: 2024-01-10 15:16:52

⑴ android 反编译的res怎么用

就像做菜一样,首先我们要把料备齐,三个反编译工具,apktool,dex2jar,jd-jui先下载下来,待用。还有有一个apk文件,一共四个文件。(简单介绍下三个工具的作用,apktool是用来得到Android app的资源文件的,就是res文件。dex2jar和jd-jui是查看Android app源代码的。接下来我就一步步带大家实现反编译。)
第一步,使用apktool得到 res文件。
压缩下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-CMD-回车) ,定位到apktool文件夹,(还有个简单办法,按住shift键,点击鼠标右键,在菜单中选择“此处打开命令行窗口”),输入以下命令:apktool.bat d -f Presidential.apk (Presidential.apk 是我要反编译的apk的全名,apktool的指令这里就细讲了,请同学们自己学习吧)命令行图片和生成的文件的图片如下图。res文件就我们需要的资源文件啦。
第二步,查看apk文件的源代码。首先将apk文件的后缀改为.rar或者.zip并解压,得到其中的额classes.dex文件.,将获取到的classes.dex放到之前解压出来的工具dex2jar 文件夹内,然后用同样的方法打开命令行,输入:
dex2jar.bat classes.dex 回车,效果如下:
在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了。

⑵ android studio 如何回编译一个APP

android studio中不能编译反编译出来的文件,android studio只能编译源代码。

1.反编译Apk得到java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。

具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的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反编译后签名,有原签名文件

一、可以使用如APKTool之类的反编译工具,使用方法网上有介绍,反编译完成后修改所有引用包名的地方及对应的文件夹,然后重新编译为新的APK,最后再用签名工具签名就行。
二、第一步是用命令行的形式进行的,如果不愿意进行繁琐的配置过程,可以使用一些可视化的APK修改工作,如APK改之理、VTS(Virtuous Ten Stdio)等,但主要修改的地方更第一步是一致的。

⑷ 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

回编译完成。

⑸ 如何反编译 android 中 /data/dalvik-cache/arm 下的文件

使用oatmp,即可反编译这个文件,其实虽然/data/dalvik-cache/arm/包名@[email protected]是以.dex结尾的,但实际它是一个oat文件,并不是dex文件。oat文件是ART虚拟机下的,一个ELF文件。而oatmp的使用方法,大致是adb shell oatmp --oat-file=(路径)

⑹ 如何在反编译的apk中找到加密算法

所谓APK指的是Android操作系统的应用程序安装文件。所谓Crack,简单地理解为“破解”。我具体指的是反编译APK文件进行汇编级的代码分析,并修改或插入自己的代码,重新签名打包为APK文件,以达到改变程序原有行为的目的。

由以上的说明可知,我们要Crack一个APK文件,主要流程有三步:反编译、代码分析、重新打包签名。

基本准备

我们需要一些基本的工具进行一些主要的工作。如果你是一个会做Android APK汉化的朋友,那么你应该对这些工具非常熟悉:

第一个工具是android-apktool,A tool for reengineering Android apk files 。这个工具是我们完成APK Crack的核心,利用它实现APK文件的反编译和重新打包。它是Google Code上一个非常着名的开源项目,大家可以在Google Code的网页上获取它和它的Wiki、源码及其他相关信息。

第二个工具是Auto-sign。这个工具实现的是APK打包后的签名工作,属于一个小工具。

除了这些基本工具外,为了更好的分析代码,你可能还需要用到一些其他工具,例如:dex2jar和jd-gui等,这里不做详述。

反编译

如果你是一个经常汉化APK程序的朋友,那么反编译这一步你肯定不会陌生。不过,既然这篇文章侧重于基本流程讲解,那么这一步想来是不能省掉的。所以,觉得罗嗦的朋友,请跳过。首先我们需要有一个待反编译的APK。这里我自己写了一个HelloWorld的APK,代码如下:
package com.zh_weir.helloworld;import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}
复制代码
我们通过android-apktool对这个APK进行反编译。对于android-apktool的使用,我就不做太多翻译的工作,直接给出说明文档吧。简单一句话,就是命令行执行。
Apktool v1.3.2 - a tool for reengineering Android apk files
Copyright 2010 Ryszard Wi?niewski <[email protected]>
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

Usage: apktool [-v|--verbose] COMMAND [...]

COMMANDs are:
d[ecode] [OPTS] <file.apk> [<dir>]
Decode <file.apk> to <dir>.
OPTS:
-s, --no-src
Do not decode sources.

-r, --no-res
Do not decode resources.

-d, --debug
Decode in debug mode. Check project page for more info.
-f, --force
Force delete destination directory.
-t <tag>, --frame-tag <tag>
Try to use framework files tagged by <tag>.

--keep-broken-res
Use if there was an error and some resources were dropped, e.g.:

"Invalid config flags detected. Dropping resources", but you

want to decode them anyway, even with errors. You will have to

fix them manually before building.

b[uild] [OPTS] [<app_path>] [<out_file>]

Build an apk from already decoded application located in <app_path>.

It will automatically detect, whether files was changed and perform

needed steps only.

If you omit <app_path> then current directory will be used.

If you omit <out_file> then <app_path>/dist/<name_of_original.apk>

will be used.

OPTS:

-f, --force-all

Skip changes detection and build all files.

-d, --debug

Build in debug mode. Check project page for more info.

if|install-framework <framework.apk>

Install framework file to your system.

For additional info, see: http://code.google.com/p/android-apktool/
复制代码
通过apktool d HelloWorld.apk的命令,我们就完成了一个简单的APK的反编译工作。得到了一个叫做“HelloWorld”的文件夹。你可以看见文件夹下有Manifest文件,有反编译出的res资源文件。这些东西都是平时汉化特别关心的,而不是我们要注意的重点。我们需要注意的是一个叫做“smali”的文件夹。

仔细观察,你会发现这个文件夹下的文件组织结构和我们的Android工程中java源码的组织结构几乎一致。只不过Java文件被.smali的文件取而代之了。我们用文本编辑器打开这些.smali文件,你会发现它们都是可识别的、并且非常“整齐”的文本文件。

⑺ 如何更改安卓安装包的内置文件

工具:安卓修改大师、一个你要修改的app安装包(这里以贪吃蛇大作战为例)。

1、纯手选取一个要进行反编译的游戏或应用:点击安卓修改大师顶部的安卓游戏选项卡,打开的页面中找到任何一款想修改的游戏,例如,本示例将要修改的游戏为“贪吃蛇大作战”。

更改安卓安装包的内置文件需要反编译已经打包的APK安装包,此方法推荐使用“安卓修改大师”,可以在没有源代码的情况下,直接反编译安装包,通过修改代码实现添加和去除部分功能,也可以修改应用图标和应用程序名称。

⑻ 如何进行ODEX反编译实例

反编译普通的APK文件:
对于普通的APK/DEX文件的反编译,其实工具有很多, 包括:

ByteCode Viewer: 一个可视化的集成工具,说实话,不太好用,不够稳定,生成代码质量中等。
dex2jar + jd_gui: 这两个工具组合还可以, 用起来比ByteCode Viewer麻烦一些,但比较稳定,生成代码质量中等。

反编译ODEX文件:
Android 5.0 Lollipop以后,Google用ART代替了以前的Dalvik,对于普通的app来说我们仍然可以用上面的方法来把dex文件反编译成Java源代码。但对于系统预装的App,特别是类似应用商店,播放器等, 你会发现这些应用的apk文件中找不到对应的classes.dex文件,而是会发现在其子目录下有个.odex文件。 那如何反编译这个odex文件呢?我通过google查了查,知道应该用baksmali,但从github上下载了几个版本都不行,报各种不同错误。

具体方法如下:

1. 从 这里 下载工具包, 解压缩到本地。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同。有时候高版本反倒不好用。

2. 打开工具所在目录, 按住shift键, 点击鼠标右键,打开Windows命令窗口

3. 把 odex文件拷贝到该目录

4. 在命令窗口运行: oat2dex.bat *.odex . 正常情况下,应该显示OK等信息。如果报错的话,说明这个文件无法转换,后面的也不用试了。

5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件。

6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹,并将temp.dex反编译到该文件夹。-a 21 表明的是Android内核的版本21

7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex , 反编译为classes.dex文件。

需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息,因此反编译这种classes.dex 文件后生成的java代码可读性会更差些。

8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码。

热点内容
怎么把ppt文件压缩 发布:2024-11-16 20:22:30 浏览:685
linux大内存 发布:2024-11-16 20:22:28 浏览:950
屏蔽迅雷上传 发布:2024-11-16 19:49:17 浏览:599
java怎么定义方法 发布:2024-11-16 19:48:15 浏览:143
我的世界国际版为什么连接不到服务器 发布:2024-11-16 19:44:18 浏览:854
购物导航源码 发布:2024-11-16 19:35:48 浏览:145
打账号密码是什么 发布:2024-11-16 19:26:07 浏览:290
安卓4用什么版本微信 发布:2024-11-16 19:25:11 浏览:693
一般手机重启以后密码是多少 发布:2024-11-16 19:17:25 浏览:171
辽宁舰访问香港 发布:2024-11-16 19:04:58 浏览:779