导航:首页 > 源码编译 > 安卓版反编译软件Jadx

安卓版反编译软件Jadx

发布时间:2022-11-22 00:55:17

1. 安卓apk文件如何反编译

安卓apk文件反编译:
一、反编译xml文件
1>
首先下载我给你们提供的文件夹apk_fanbianyi,把它放到某个盘的根目录下(为了方便输入dos命令),然后打开apktool文件夹,安装win+r键,然后输入cmd,进入dos命令行,大家别怕,不用晕,很简单的。
2>
然后在dos命令中首先输入文件夹所在盘符+“:”回车,接着再输入cd+apktool所在目录,切换dos工作空间到apktool文件夹下。
3>
接着输入
apktool.bat
d
【需反编译apk文件路径】
{【反编译文件反编译后的路径】},其中最后一部分可以省去,系统会默认把apk文件反编译到apktool目录下,例如输入
apktool.bat
d
d:/apk_fanbianyi/ttkp.apk,在apktool文件夹下就会生成一个ttpk的文件夹,所有的xml文件全部反编译成功。
二、反编译java文件
1>
首先解压需要反编译的apk文件,拷贝出里面的classes.dex文件到dex2jar文件夹(为了方便操作,省去dos命令输入路径的麻烦)
2>
把工作空间切换到dex2jar文件夹下,输入命令cd
d:/apk_fanbianyi/dex2jar回车
3>
输入命令dex2jar.bat
classes.dex回车,发现dex2jar文件夹下多了一个classes_dex2jar.jar文件,这是反编译成功的java文件
三、xml文件的打开
1>
打开apktool文件夹下的ttkp文件夹,任意找到一个xml文件,选中单击右键,选择notepad++打开(需下载),如果没有此软件,可以选择打开方式,选择记事本打开
四、java文件的打开
1>
dex2jar文件夹下的classes_dex2jar.jar拷贝到apktool文件夹的ttkp文件夹中,不能用notepad++打开,不然会乱码的
2>
启动apk_fanbianyi文件夹下的jd-gui.exe,然后点左上角file,选择open
file,找到classes_dex2jar.jar文件,可以发现有很多包,选择包下的任意一个java文件,打开不乱码了,是不是很神奇,哈哈,你学会了安卓apk文件反编译

2. JAVA反编译软件

由于JAVA语言安全性高、代码优化、跨平台等特性,从1995年5月由SUN公司发布后,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位。
不过,JAVA最突出的跨平台优势使得它不能被编译成本地代码,而要以中间代码的形式运行在虚拟机环境中,这使得JAVA的反编译要比别的高级语言容易实现,并且反编译的代码经过优化后几乎可以与源代码相媲美。
为了更好地保护知识产权,避免本公司的智力成果轻易被人窃取,开发者有必要对反编译工具深入了解,以便有针对性地采取保护措施。
目前,比较流行的JAVA反编译工具有近30种,其中有三款堪称精品:
一、 应用广泛的JAD
在众多的JAVA反编译工具中,有几种非常着名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家。
JAD本身是一个命令行工具,没有图形界面,上述的这些工具大多是在JAD内核的基础之上加了一个图形界面而已。这么多种产品的共同选择,足可证明JAD在JAVA反编译领域中的尊贵地位。
JAD是使用Microsoft Visual C++开发的,运行速度非常快,可以处理很复杂的JAVA编译文件。众多的参数使JAD可以灵活应付多种加密手段,令反编译的代码更加优化和易读。由于JAD参数太多,没必要一一解释,其中有几个最常用的如下(以JAD 1.5.8f版本为例):
-d
- 用于指定输出文件的目录
-s - 输出文件扩展名(默认为: .jad),通常都会把输出文件扩展名直接指定为.java,以方便修改的重新编译。
-8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。
最常用的反编译指令如下所示:
Jad –d c:\javasource –s .java -8 javatest.class
这条指令将当前目录下的javatest.class反编译为javatest.java并保存在c:\javasource目录里,其中的提示输出为中文,而不是Unicode代码。

二、 源码开放的JODE
JODE是全球最大的开源项目网站Sourceforge.net的成员,在所有的JAVA反编译器中,JODE的反编译效果是最好的,尤其是对付一些常见的加密手段,例如混淆技术等,更是出类拔粹。
JODE本身也是纯JAVA开发的,最近越来越多的JAVA反编译软件也选择JODE来做它们的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit’s JavaInsight plugin等。
JODE是一个可运行的JAR文件,在windows环境下双击即可运行。
需要特别说明的是,JODE不是通过常规的Open->File的方式来加载JAVA编译后的类文件(*.class)或是类包(*.jar)的, 而是通过在Options菜单中的Set Classpath来实现的,单独的类文件可以将它的上一级目录作为Classpath输入,然后再选择Reload Classpath即可。
新加入的类包或是类的名字会在左侧窗口出现,双击类包名可以展开目录树结构,双击需要反编译的类名则在右上角的窗口中直接显示反编译后的源代码。

三、 独树一帜的DAVA
DAVA不是一个独立的JAVA反编译器,而是JAVA代码优化工具Soot的一部分。Soot和JODE一样是纯JAVA开发的,也是一个独立的JAR包,但却不能通过双击直接运行,而是象JAD一样在命令行状态运行。
Soot对环境变量的配置要求非常严格,通常情况下要对CLASSPATH做如下设置:
Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;
其中的c:\sootdir\是下载的soot类包放置的路径,CLASSPATH末尾的.;代表了当前目录,如果不加上这个的话Soot经常会报一个找不到类的错误。
DAVA是作为Soot的一个参数使用的,通常的用法如下:
Java soot.Main –f dava –d c:\javasource javatest
注意最后的类名不用带.class后缀,因为它默认是处理class文件,这个操作与前述的JAD的参数效果相同。
DAVA采取了流程优化的方式进行反编译,与传统反编译思路不尽相同,但却对改变流程类的加密方法有独特的反编译效果。
上述的三种工具各有千秋,但效果都非常不错。经测试,它们基本上都可以把JDK自带的一些例程完全反编译,然后不加任何修改可再编译成功,并能正常运行!

3. jadx反编译后可以重新打包吗

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

2、接着,切换到这个项目生成的apk文件所在的目录,可以看到有一个hellodemo.apk。

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

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

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

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

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

4. android apk反编译软件哪个好用

Android反编译的目的无非就是为了看到APK的xml、资源和代码:

得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar
classes.dex classes.jar生成jar文件 --> [可选的解压jar文件]
-->使用XJad或者JDCompiler查看源代码

得到XML的方式:

方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方式查看的XML文件的id都是数字--即R文件中id对应的值)

方式2:使用APKTool工具解压APK文件可以直接查看XML文件

Android反编译常常使用如下的一些工具:

1、反编译命令:

apktool d D:\\Developer\androidDecode\Test0201.apk D:\\Developer\androidDecode\test0201

D:\\Developer\androidDecode\Test0201.apk:要反编译的APK文件

D:\\Developer\androidDecode\test0201:反编译文件的保存目录,必须为空目录

2、从反编译的文件编译成APK apktool b D:\\Developer\androidDecode\test0201 D:\\Developer\androidDecode\test020101.apk

D:\\Developer\androidDecode\test0201:保存编译后文件的目录

D:\\Developer\androidDecode\test020101.apk:生成的新的APK文件的保存的绝对路径

3、签名APK文件:

singedAPK.bat文件

java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk

执行singedAPK.bat命令

singedAPK D:\\Developer\androidDecode\test020101.apk 生成一个singed.apk文件和test020101.apk在同一个目录

4、使用baksmali.jar把一个dex文件转换为一个smali文件

java -jar D:\\Developer\ApkTool\baksmali.jar -o
D:\\Developer\androidDecode\baksmaliout
D:\\Developer\androidDecode\Hello.dex

D:\\Developer\ApkTool\baksmali.jar:baksmali.jar文件所存在的全路径

D:\\Developer\androidDecode\baksmaliout:生成的smali文件的保存目录

D:\\Developer\androidDecode\Hello.dex:要转成smali文件的路径

5、使用ddx.jar把一个dex文件转换为ddx文件

java -jar D:\\Developer\ApkTool\ddx.jar -d D:\\Developer\androidDecode\ddxout D:\\Developer\androidDecode\Hello.dex

D:\\Developer\ApkTool\ddx.jar:ddx.jar文件的绝对路径

D:\\Developer\androidDecode\ddxout:要保存ddx文件的路径

D:\\Developer\androidDecode\Hello.dex:要转换的dex路径

6、Android自带dexmp工具:dex文件转为smali文件 dexmp -d xxxx.dex > xxxx.smali

7、dex2jar.jar:dex2jar XXX.dex YYY.jar

5. 推荐几款在手机使用的apk反编译软件

dede 反编译delphi
depb,pbkill 反编译pb
vb rezq 反编译vb
Reflector 反编译.net
foxtoolsd 反编译 vf
等等

不要对反编译期望太大,几乎没什么用,Reflector反编译不错,因为是伪代码,只要没用混淆器混淆的,代码几乎能拿过来使用,
其它的效果不是很理想
在使用过程中,没遇到什么需要注意的问题,软件使用很简单,就是用了没多大用,望采纳!谢谢!

6. 如何反编译Android 的apk/dex/odex,获得源码

关于APK,DEX的介绍

当我们编译一个安卓项目的时候,整个项目会被打包成一个 .apk文件。这个文件其实是一个标准的zip文件,因此可以用解压缩工具打开。这个apk文件一般都包含程序的代码(在classes.dex文件中), 资源文件, 证书, manifest 文件等。 其中对我们最重要的是classes.dex文件,因为编译后的字节码(bytecode)都是放在这个文件中。我们后面讲的反编译就是针对这个dex文件来的。

反编译普通的APK文件:

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

7. Mac安装Jadx反编译工具

找到编译好的jadx-gui可执行文件运行
我的Mac目录:/Users/mac/jadx/build/jadx/bin/jadx-gui

结束~🍺🍺🍺~

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

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里的同名文件,最后重新签名。注意安装时要先删除原来手机里的版本,因为签名不同。

9. android反编译工具 jadx 怎么读

  1. Android上面的反编译工具很多,我个人比较喜欢jadx,操作简单,界面简洁。

  2. 下载jadx并解压,点击“bin”目录下面的“jadx-gui.bat”文件,出现下图所示的界面

  3. 选中要反编译的apk文件后,界面变成下图所示

  4. 任意点开一个类,我们就可以看到该类的源代码了

  5. 有的类的变量和方法名都变成了a,b,c,d。。。,如下图所示

  6. 详细解答

10. App静态逆向分析思路浅析(过检测)

推荐阅读

福利来啦-优惠券活动

App静态逆向分析思路浅析(过检测)

https://blog.csdn.net/u011426115/article/details/121346288

jadx+frida

查看apk是否加壳 (apk未加壳)

搜索root检测特征、逻辑,其中Hook ( 如:Xposed、Frida等 )检测的字符串特征类似,可以通过jadx、JEB3等反编译工具快速搜索定位到检测关键点

Hook下面的方法( 使用Xposed、Frida等进行Hook )

com.google.firebase.crashlytics.internal.common.CommonUtils.isRooted

com.google.firebase.crashlytics.internal.common.CommonUtils.isEmulator

com.google.firebase.crashlytics.internal.common.CommonUtils.isDebuggerAttached

com.google.firebase.crashlytics.internal.common.CommonUtils.isAppDebuggable

CommonUtils.isRooted.overload().implementation = function(){

}

在jadx的搜索文本中,输入” native+空格 ”快速定位App中的native接口,分析是否存在Root、Hook、模拟器环境、云手机环境、App风险环境等相关检测

搜索" hook、xposed、frida、su、root、/system/ "等特征字符串快速定位

分析apk是否可以反编译、是否可以重打包、是否可以签名,是否存在签名校验等检测

推荐阅读

Android安全基础

Objection动态分析App

Frida Hook的使用方法

IDA静态动态逆向分析基础

Android逆向分析常用方法

IDA动态调试逆向分析Android so

C#开源项目-二进制文件的反编译器

Radare2逆向分析dex/so/二进制等文件的使用方法

阅读全文

与安卓版反编译软件Jadx相关的资料

热点内容
诺贝尔pdf 浏览:961
云服务器快速安装系统原理 浏览:788
苹果腾讯管家如何恢复加密相册 浏览:115
手机软件反编译教程 浏览:858
sqlserver编程语言 浏览:650
gpa国际标准算法 浏览:238
服务器编程语言排行 浏览:947
怎么下载快跑app 浏览:966
小红书app如何保存视频 浏览:170
如何解开系统加密文件 浏览:809
linux切换root命令 浏览:283
c编译之后界面一闪而过怎么办 浏览:880
怎么看ic卡是否加密 浏览:725
lgplc编程讲座 浏览:809
cnc手动编程铣圆 浏览:723
cad中几种命令的意思 浏览:327
oraclelinux安装目录 浏览:134
安卓系统可以安装编译器吗 浏览:571
javajson实体类 浏览:691
板加密钢筋是否取代原钢筋 浏览:68