当前位置:首页 » 安卓系统 » android反编译formac

android反编译formac

发布时间: 2022-05-10 10:48:25

⑴ Android反编译

你用的是最新的apktool吗
bitbucket.org/iBotPeaches/apktool/downloads
另外,使用新的apktool之前,请先把c盘里旧的framework-res.apk删掉,每次更新都要做这个动作。

⑵ Android 如何对apk文件进行反编译以及重新

第一:使用apktool直接反编译apk

第六:把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!

⑶ 如何在 Mac 下搭建 Android 编译环境 for quick v3

### 安装最新的 Android ADT bundle 和 Android NDK

下载 Android 所需

1. adt-bundle-mac-x86_64_20140321.zip
2. android-ndk-r9d-darwin-x86_64.tar.bz2
3. android-8.zip

* 将 adt-bundle-mac-x86_64-2013???? 目录改名为 android
* 将 android/sdk 目录改名为 android/android-sdk-macos
* 将 android-*.zip 解压到 android/android-sdk-macos/platforms/
* 移动目录 android-ndk-r? 到 android/android-ndk-r?

最终的目录结构:

```
<PATH_TO>/android/android-ndk-r?
<PATH_TO>/android/android-sdk-macosx
<PATH_TO>/android/android-sdk-macosx/platforms/android-?
<PATH_TO>/android/eclipse

```

运行 android/android-sdk-macosx/tools/android, 可以看到 Android 2.2 已经安装好.

### 设置环境变量

~/.bash_profile 中添加以下代码:

```

ANDROID=/Users/mac/Documents/SDK/android
export ANDROID_NDK_ROOT=${ANDROID}/android-ndk-r9d
export ANDROID_SDK_ROOT=${ANDROID}/android-sdk-macosx
export ANDROID_HOME=${ANDROID_SDK_ROOT}

```

完毕 ~

⑷ 如何将反编译android代码

反编译android代码并在eclipse中查看: apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test 在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

⑸ android反编译生成的代码如下 像MainActivity.access$000(this.this$0);这样的代码该怎样解释,怎么改

access$0表示调用一个外部类的方法,说明这段代码是在内部类中使用的:

在调用的外部类方法定义代码的上面,应该会有一段。methodstaticsyntheticaccess$0。

的代码,这个代码里面才是真正要调用的方法。

安卓虚拟机指令在调用外部类方法的时候,需要区分类的调用关系。

thiscmdisdeprecated,usethed2j-dex2jarifpossible

dex2jarversion:translator-0.0.9.15

dex2jar..Apkd(d2j)classes.dex->..Apkd(d2j)classes_dex2jar.jar



(5)android反编译formac扩展阅读

反编译是一个复杂的过程,反编译软件有:

1、SWF相关的反编译程序

ActionScriptViewer

第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。

2、Android相关的反编译程序

SMALI/BAKSMAL

SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。

⑹ Android-Mac电脑怎么进行APK反编译

第一步:下载反编译工具集,apktool、dex2jar、jd-gui,最后我会上传这些工具,解压后如下图:

下面那个弹出框是JD-GUI的,用来将字节码反编译成java源文件用的

第二步,工具集准备好之后还不能进行反编译,你在命令窗口下执行输入apktool 会提示命令不存在,需要配置一下环境变量
,怎么配置呢,如下命令:
1.打开命令窗口,cd /usr/local/bin下,可能有的mac电脑不存在bin这个目录,直接在创建一个就好了,命令是:sudo mkdir bin,执行后会让你输入root权限密码,输入完后执行ls命令查看,bin目录就存在了,如图:

2.将你解压后的apktool文件夹下的三个文件aapt、apktool、apktool.jar 复制到/usr/local/bin/目录下,怎么复制呢,当然用命令cp了,如下图:

复制多个文件用空格隔开,android-workspace/APK/apktool/目录是源目录,存放的是我们要复制的那三个文件,执行命令后,提示输入密码,输完密码后就复制成功了,ls查看一下,这三个文件已经存在了。

这时候就已经配置好环境变量PATH了,什么,我怎么没看到和PATH有关的任何命令,其实,/usr/local/bin本来就在PATH下,不信我执行命令你看:

这也是我们把apktool3个文件放在/usr/local/bin下的原因,现在你再输入apktool命令试试:

输出这样的命令就代表环境配置好了

第三步:开始进行反编译了,其实用到的命令也很简单,我们随便拿一个apk来,例如:

我们要对dz-android.apk进行反编译,命令行进入这个目录 cd /Users/hailonghan/android-workspace/APK,到这个目录后,
执行命令apktool d dz-android.apk,如下图:

执行成功后,会在当前目录下生成一个da-android文件夹,点击去就看到相关apk的资源文件了,选中AndroidManifest.xml,然后空格键,就可以看到反编译后的内容了:

第四步:反编译java源文件
这就用到dex2jar和jd-gui了,将dz-android.apk重命名改成dz-android.zip,然后利用解压缩软件解压,得到一个dz-android目录,我们要拿到里面的classes.dex文件,
将其复制到dex2jar-0.0.9.15目录下,

然后执行命令:sh dex2jar.sh classes.dex,

执行成功后会生成一个classes_dex2jar.jar文件,

最后,用jd-gui工具打开这个jar包就可以看到java源代码了,

⑺ 如何在Mac上进行Android反编译

这恐怕不是学习之用了。。。呵呵。。。。。楼主打消自己的念头吧。。。已经把变量名A改成B了,怎么知道B以前是A还是C还是D呢。。。

⑻ 如何反编译android应用并重新打包

一.看android的源代码

1)将Apkd.apk 用zip解压后,出现了一个classes.dex文件
2014/02/19 19:42
.
2014/02/19 19:42
..
2014/02/19 15:35 1,656 AndroidManifest.xml
2014/02/19 15:35 687,024 classes.dex
2014/02/19 15:49
META-INF
2014/02/19 15:49
res
2014/02/19 15:35 2,200 resources.arsc
2)进入到dex2jar目录中,运行情况如下:
D:\developer\tools\test_apk\dex2jar-0.0.9.15>dex2jar.bat "..\Apkd(d2j)\classes.d
ex"
this cmd is deprecated, use the d2j-dex2jar if possible
dex2jar version: translator-0.0.9.15
dex2jar ..\Apkd(d2j)\classes.dex -> ..\Apkd(d2j)\classes_dex2jar.jar
Done.
在apk所在的目录会出现 classes_dex2jar.jar 文件。
3) 用JD-GUI对jar包进行查看,可以查看源文件

二.反编译apk

1.在下载APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.
2012/12/06 11:44 854,016 aapt.exe
2014/02/19 17:15 277,372 Apkd.apk//示例用apk文件
2012/12/23 23:39 92 apktool.bat
2013/02/03 02:37 2,655,843 apktool.jar
2.进入到apktool.bat所在的目录,运行:
apktool d Apkd.apk decode_dir
反编译后,decode_dir目录下的内容如下:
2014/02/19 17:16 716 AndroidManifest.xml
2014/02/19 17:16 237 apktool.yml
2014/02/19 17:18
build
2014/02/19 17:16
res
2014/02/19 17:16
smali
此时我可以查看原文件AndroidManifest.xml了,也是查看smali源文件(是用smali语言写的,可以对照java看)。

三.APKTOOL的使用

1).decode
该命令用于进行反编译apk文件,一般用法为
apktool d

代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
代表了反编译后的文件的存储位置,比如C:\MusicPlayer
如果你给定的已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f

这样就会强行覆盖已经存在的文件
2).build
该命令用于编译修改好的文件,一般用法为
apktool b

这里的
就是刚才你反编译时输入的
(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
3).install-framework
该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题

四.smali与java源码对照,并做出相应的修改

java源代码:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView a = (TextView)this.findViewById(R.id.test) ;
a.setText("raoliang");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

对应的smali源代码:
.class public Lali/text/apkd/MainActivity;
.super Landroid/app/Activity;
.source "MainActivity.java"

# direct methods
.method public constructor ()V
.locals 0

.prologue
.line 8
invoke-direct {p0}, Landroid/app/Activity;->()V

return-void
.end method

# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 2
.parameter "savedInstanceState"

.prologue
.line 12
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

.line 13
const/high16 v1, 0x7f03

invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->setContentView(I)V

.line 14
const/high16 v1, 0x7f08

invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Landroid/widget/TextView;

.line 15
.local v0, a:Landroid/widget/TextView;
const-string v1, "raoliang"

invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

.line 16
return-void
.end method

.method public onCreateOptionsMenu(Landroid/view/Menu;)Z
.locals 2
.parameter "menu"

.prologue
.line 21
invoke-virtual {p0}, Lali/text/apkd/MainActivity;->getMenuInflater()Landroid/view/MenuInflater;

move-result-object v0

const/high16 v1, 0x7f07

invoke-virtual {v0, v1, p1}, Landroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V

.line 22
const/4 v0, 0x1

return v0
.end method

通过对比可以看到,常量是没有必变的,可以根据的smali的语法,进行相应的修改

五.3、打包、签名和安装修改后的apk

修改完了,就可以打包回apk了。执行以下命令:
apktool b decode_dir
在mygame目录下的dist在会看到打包好的apk。
当然,现在一般是无法安装的,因为apk还没有签名。下面就来签名。签名需要keystore文件,我已经有专用的keystore了,如果还没有,请参阅这里进行生成。
执行以下命令为重新编译的my_game.apk签名:
jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
最后,在安装到手机前,需要把手机中的已有版本先卸载,因为如果签名不同,是不能覆盖安装的,会提示“应用程序未安装”错误。
完整的运行情况如下:

D:\developer\tools\test_apk\new\decode\dist>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: rao
您的组织单位名称是什么?
[Unknown]: rao
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:
CN=rao, OU=rao, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
[否]: y

输入的主密码
(如果和 keystore 密码相同,按回车):

D:\developer\tools\test_apk\new\decode\dist>jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
输入密钥库的口令短语:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/DEMO_KEY.SF
正在添加: META-INF/DEMO_KEY.RSA
正在签名: res/drawable-hdpi/ic_launcher.png
正在签名: res/drawable-mdpi/ic_launcher.png
正在签名: res/drawable-xhdpi/ic_launcher.png
正在签名: res/drawable-xxhdpi/ic_launcher.png
正在签名: res/layout/activity_main.xml
正在签名: res/menu/main.xml
正在签名: AndroidManifest.xml
正在签名: classes.dex
正在签名: resources.arsc

D:\developer\tools\test_apk\new\decode\dist>
到此为止,修改后的apk可以正常的安装了,不过,在安装之前,必须要先卸载以前的apk,不能直接替换(因为签名不一样)

⑼ android 怎么进行反编译

下载附件解压在桌面,打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool回车测试apktool可用性 提取ROM里的框架和ui 放在桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool if framework-res.apk回车加载框架完成 反编译ui打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool d SystemUI.apk回车反编译完成 回编译ui打开桌面Android lollipop special文件夹里点击Android lollipop special.bat文件输入apktool b SystemUI回车回编译完成

⑽ 跪求android apk反编译详细教程,本人着实愚笨,看不懂网上滴步骤

一、更改apk文件的后缀名,如:LianyunHelper3.0.11.apk改成LianyunHelper3.0.11.zip
二、用zip解压缩LianyunHelper3.0.11.zip文件
三、从解压缩的文件夹中取出classes.dex文件并放到dex2jar.bat所在目录
四、运行cmd命令,进入dex2jar.bat所在的目录,输入dex2jar.bat classes.dex即可生成classes.dex.dex2jar.jar文件
五、用jd-gui工具打开classes.dex.dex2jar.jar文件,即可看到源码
六、将AndroidManifest.xml文件放到AXMLPrinter2.jar所在目录,运行cmd命令,进入 AXMLPrinter2.jar所在目录,输入java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt。

热点内容
进栈算法 发布:2025-05-15 06:56:02 浏览:213
安卓和缓存 发布:2025-05-15 06:56:02 浏览:426
笔记本电脑台式服务器 发布:2025-05-15 06:40:41 浏览:108
4k无压缩 发布:2025-05-15 06:02:54 浏览:74
hp存储6350 发布:2025-05-15 05:40:41 浏览:233
怎么更改电脑默认缓存位置 发布:2025-05-15 05:39:01 浏览:877
安卓qq公孙离在哪个战区战力最低 发布:2025-05-15 05:38:58 浏览:493
androidffmpeg压缩 发布:2025-05-15 05:37:02 浏览:288
ftp简称是 发布:2025-05-15 05:37:02 浏览:121
光遇发光耳机怎么设置安卓 发布:2025-05-15 05:32:03 浏览:113