当前位置:首页 » 编程软件 » android反编译修改

android反编译修改

发布时间: 2022-02-20 23:12:13

❶ (特别专业的Android修改问题)关于Android中classes.dex反编译并回编的一个问题

过程应该是不可逆的.
若是能通过修改jar来修改class.dex文件,最终达到修改整个apk程序的目的,那android程序就没有版权一说了...

❷ android反编译问题,AndroidManifest.xml修改。

朋友,如果你说的解压apk是直接用winrar之类个工具解压的话,那AndroidManifest.xml打开肯定就是乱码,你只有用APKtool之类的工具反编译apk后才能打开xml的文件。如果你使用APKtool之类的工具的话,可以网络搜Apk反编译教程。有很多的!我现在无法给你复制网址。

❸ 如何进行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

❹ 反编译了APK后修改了AndroidManifest.xml就无法回编译

系统apk重新编译后不需要签名,直接用rar打开打包生成的apk里面的androidmanifest.xml文件替换原apk里的androidmanifest.xml文件即可

❺ 我有一个安卓游戏,已经反编译了,但不知道怎么去修改里面的东西,有没有可视化的修改工具,源码看不懂

你可以看一下手机游戏攻略啊,它是这个手机游戏最好的说明,可以教给你怎么玩这个手机游戏,这样你就可以知道怎么做啦,如果你的手机游戏里面没有的话,你可以在手机上的应用宝软件里面看一下哦。

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

首先我们新建一个android项目,里面只有一个MainActivity,而且主界面只会显示一个字符串:你好。

下面,我们切换到这个项目生成的apk文件所在的目录,可以看到有一个hellodemo.apk。

在命令行输入:apktool d -r hellodemo.apk。可以看到在当前目录下生成了一个hellodemo文件夹。

进入到hellodemo\smali\com\example\hello,打开MainActivity.smali。找到:
const-string v1, "\u4f60\u597d",
修改为:
const-string v1, "hello",

然后在命令行输入:apktool b hellodemo hellodemo1.apk。这回重新打包成hellodemo1.apk。

然后给新生成的apk进行签名。把这个apk拷贝到autosign的目录下面,然后切换过去,在命令行输入:java -jar signapk.jar testkey.x509.pem testkey.pk8 hellodemo1.apk hellodemo.apk。

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

❼ 安卓程序APK反编译修改,破解

哈,你算找对人了,我知道有一个人,专门反编译破解安卓APK程序和游戏的,而且他很厉害,能任意修改成你想要的样子,我之前找他过,我哪个程序是还是加密的。抠Q:724949472,你懂的

❽ android反编译怎么修改游戏道具

一般情况下反编译也是很难修改游戏信息的,主要是因为以下几点。
1、目前大多数游戏都是由C++开发的,这样做的好处是可以跨越Android平台和IOS平台通用,而且游戏引擎支持的更好,这种情况是无法反编译的。
2、如果游戏是根据Android原生开发的话,大多数开发者都是会对代码进行混淆,也就是所有的代码都是a,b,c这种简单的名称,很难进行阅读。
3、哪怕反编译成功,看到正常的源码,也是需要一定的开发功底,懂得每一段代码的意思,然后更改后重新打包,如果是联网游戏可能会对包进行验证,让你访问不了服务器。

❾ 求安卓软件反编译修改教程

1、baksmali:classes.dex反编译为smali格式

(smali:smali格式编译打包为classes.dex,但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助 )
2、dex2jar:classes.dex转为jar包
3、jdgui:jar反编译并阅读

操作顺序:

apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。注意安装时要先删除原来手机里的版本,因为签名不同。

热点内容
电脑如何查看型号和配置 发布:2024-05-08 10:19:56 浏览:420
大地电子保单pdf密码多少 发布:2024-05-08 09:54:21 浏览:860
ftp扫描免费主机 发布:2024-05-08 09:50:05 浏览:339
听说ftpmp4 发布:2024-05-08 09:39:51 浏览:475
退货上传图片 发布:2024-05-08 09:38:38 浏览:79
linux命令安装rpm 发布:2024-05-08 09:37:37 浏览:643
什么是逆算法 发布:2024-05-08 09:28:17 浏览:208
泰康平衡配置跟行业配置哪个好 发布:2024-05-08 09:19:09 浏览:598
动态创建存储过程 发布:2024-05-08 09:19:01 浏览:52
点赞熊源码 发布:2024-05-08 08:49:44 浏览:458