精华内容
下载资源
问答
  • Android apk反编译查看源码反编译资源文件

    万次阅读 多人点赞 2018-06-01 13:37:00
    反编译代码 要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:dex2jar 和 jd-gui,可以在网上自行下载,这里分享下网盘下载链接:dex2jar-2.0.zip 和 jd-gui-windows-1.4.0.zip dex2jar这个工具用于将...

    反编译代码

    要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:dex2jar 和 jd-gui,可以在网上自行下载,这里分享下网盘下载链接:dex2jar-2.0.zip jd-gui-windows-1.4.0.zip

    dex2jar 这个工具用于将dex文件转换成jar文件 

    jd-gui 这个工具用于将jar文件转换成java代码

    将这两个工具都下载好并解压,然后我们就开始对Demo程序进行反编译。解压dex2jar压缩包后,你会发现有很多个文件,如下图所示: 

    其中我们要用到的是d2j-dex2jar.bat这个文件,当然如果你是linux或mac系统的话就要用d2j-dex2jar.sh这个文件。 

    然后我们将Demo.apk文件也进行解压,如果不知道怎么直接解压的可以先将文件重命名成Demo.zip,然后用解压软件打开。解压之后你会发现里面有一个classes.dex文件,如下图所示:

    这个classes.dex文件就是存放所有java代码的地方了,我们将它拷贝到dex2jar解压后的目录下,打开cmd命令窗口,切换到解压后的dex2jar下,输入命令d2j-dex2jar classes.dex

    执行结果如下图所示:

     

    没有报任何错误,这就说明我们已经转换成功了。现在观察dex2jar目录,你会发现多了一个文件,如下图所示:

    可以看到,classes-dex2jar.jar这个文件就是我们借助工具之后成功转换出来的jar文件了。但是对于我们而言,jar文件也不是可读的,因此这里还需要再借助一下jd-gui这个工具来将jar文件转换成java代码。

    打开解压后的jd-gui-windows-1.4.0文件,双击打开jd-gui.exe程序,如图

     

    把刚才生成的classes-dex2jar.jar这个文件直接拖过来,结果如下图所示:

    OK,由此可见,我们的代码反编译工作已经成功了,MainActivity中的代码非常清晰,基本已经做到了90%以上的还原工作。但是如果想要做到100%的代码还原还是非常有难度的,因为像setContentView()方法传入的参数,其实就是一个资源的id值而已,那么这里反编译也就只能将相应的id值进行还原,而无法变成像R.layout.activity_main这样直观的代码展示。 

    另外,除了MainActivity之外,还有很多其它的代码也被反编译出来了,因为当前项目有引用support-v4和support-v7的包,这些引用的library也会作为代码的一部分被打包到classes.dex文件当中,因此反编译的时候这些代码也会一起被还原。 

    好的,学完了反编译代码,接下来我们看一下如何反编译资源。

     

    反编译资源

    其实细心的朋友可能已经观察到了,刚才Demo.apk的解压目录当中不是已经有资源文件了吗,有AndroidManifest.xml文件,也有res目录。进入res目录当中,内容如下图所示: 

     

    这不是所有资源文件都在这里了么?其实这些资源文件都是在打包的时候被编译过了,我们直接打开的话是看不到明文的,不信的话我们打开AndroidManifest.xml文件来瞧一瞧,内容如下图所示: 

    可以看到,这代码是完全没法阅读的。当然如果你去打开activity_main.xml看看,结果也不会好到哪儿去: 

    由此可见,直接对APK包进行解压是无法得到它的原始资源文件的,因此我们还需要对资源进行反编译才行。 

    要想将APK文件中的资源反编译出来,又要用到另外一个工具了:

    apktool 这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源。

    下载地址:http://ibotpeaches.github.io/Apktool/install/

    网盘地址:https://pan.baidu.com/s/13_YUDVXxu-WaYpbpFovilw

    关于这个工具的下载我还要再补充几句,我们需要的就是apktool.bat和apktool.jar这两个文件。目前apktool.jar的最新版本是2.3.1,这里我就下载最新的了,然后将apktool_2.3.1.jar重命名成apktool.jar,并将它们放到同一个文件夹下就可以了,如下图所示: 

        

    接下来的工作就很简单了,我们将Demo.apk拷贝到和这两个文件同样的目录当中,然后cmd也进入到这个目录下,并在cmd中执行如下命令:apktool d Demo.apk

    其中d是decode的意思,表示我们要对Demo.apk这个文件进行解码。那除了这个基本用法之外,我们还可以再加上一些附加参数来控制decode的更多行为:

    • -f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
    • -o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。
    • -s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
    • -r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。

    常用用法就这么多了,那么上述命令的执行结果如下图所示:

    这就说明反编译资源已经成功了。 

    当然即使你在和我执行一模一样的操作,也有可能会在这里反编译失败,比如说会报如下错误:

    出现这个错误的原因很有可能是你之前使用过apktool的老版本进行过反编译操作,然后apktool就会在你系统的C:\Users\Administrator\apktool\framework这个目录下生成一个名字为1.apk的缓存文件,将这个缓存文件删除掉,然后再重新执行反编译命令应该就可以成功了。 

    现在你会发现在当前目录下多了一个Demo文件夹,这个文件夹中存放的就是反编译的结果了。我们可以打开AndroidManifest.xml来瞧一瞧,如下图所示: 

     

    怎么样?这样就完全能看得懂了吧,然后可以再到res/layout中看一下activity_main.xml文件,如下图所示:

    可以看到,activity_main.xml中的内容基本和源代码中的内容是一致的,外层是一个RelativeLayout,里面则是一个Button。你可以再到其它目录中去看一看别的资源,基本上都是可以正常还原的,这样我们就把反编译资源的方法也已经掌握了。

    如果你觉得对你有用,就点个赞支持一下吧~ 谢谢啦~

     

    展开全文
  • cmd命令下进入反编译器文件当前目录执行:java -jar jadx-gui进入反编译界面: ...选择需要反编译的文件得到java源码 至此反编译java结束接着就是查看源码逆向操作了 ...

     

    安装Java环境:https://www.java.com/zh_CN/download/

    cmd命令下进入反编译器文件当前目录执行:java -jar jadx-gui进入反编译界面:

    运行后弹出选择文件窗口:

     

    选择需要反编译的文件得到java源码

     

     

    至此反编译java结束接着就是查看源码逆向操作了

     


    将获取的apk包后缀改成.zip或.rar然后解压得到dex源码文件

    下载 dex2jar   https://pan.baidu.com/s/1wQkfY0FaTKSMOnjnEElNug   提取码:9skn

    下载测试apk包  https://pan.baidu.com/s/1TqdVtc7holpT2YaVUcLQ8Q  提取码:311k

    然后进入dex2jar.bat目录并把需反编译的test_test.dex文件复制到当前目录执行:

    dex2jar.bat ./test_test.dex

    之后当前目录会生成目标jar文件源码

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • ” 不是所有小程序都可以多端 “仅支持微信原生开发的小程序反编译多端。禁止套娃! ” 90%的小游戏获取不到源码 “因为游戏开发的特殊性,大部分的游戏都会使用游戏框架比如egret,laya,cocos2d等,发行时...

    54307fc6680d1b8eecd3663830e38fa0.png

    特别声明

    ★ ★ ★ ★ ★

    禁止使用此方法盗取他人的开发成果

    ★ ★ ★ ★ ★

    致歉

    “向教程中案例“好多计算器”的作者道歉,请大家帮好多计算器的作者多点几次banner广告。

    视频教程

    提取微信小程序代码包

    https://www.bilibili.com/video/BV1yz4y1C7ae/

    微信小程序项目转为uniapp项目

    https://www.bilibili.com/video/BV1yz4y1C7ae?p=2

    微信小程序项目转为taro项目

    https://www.bilibili.com/video/BV1yz4y1C7ae?p=3

    反编译成果截图

    跳一跳

    “仅反编译小游戏源码

    113f751d16651f2bc5b6a1fd54204f2f.png

    好多计算器

    “反编译后可获得源码,可转为uniapp,taro等跨端项目

    a64abb3973851df9cace79ef313c7ae6.png

    67e3542b0a4e39456aea325a32f6d8a6.png

    bc7961af131c7da956cf08bf949594d5.png

    注意事项

    不是所有小程序都可以获得源码

    “理论上所有的小程序都可以被反编译,但反编译和获得源码是两个不同的概念。使用uniapp或taro开发的小程序,反编译后代码不具备可读性。

    不是所有小程序都可以转多端

    “仅支持微信原生开发的小程序反编译后转多端。禁止套娃!

    90%的小游戏获取不到源码

    “因为游戏开发的特殊性,大部分的游戏都会使用游戏框架比如egret,laya,cocos2d等,发行时本就会对代码进行保护和混淆。但可通过反编译提取出代码包内的图像,音频资源。

    下载地址

    下载:v1.0.0版

    关注大帅搞全栈

    感谢分享点赞评论三连

    展开全文
  • 本案例讲述一个Apk反编译全过程,包括:编译源码、修改源码、打包、签名。 案例展示: 首先准备反编译工具: dex2jar(dexjar) dex2jar jd-gui(对Jar进行反编译) jd-gui apktool(对apk进行反编译) apktool ...

    本案例讲述一个Apk反编译全过程,包括:编译源码、修改源码、打包、签名。

    案例展示:

    反编译前

    反编译后

    首先准备反编译工具:

    dex2jar(dex转jar)

    dex2jar

    jd-gui(对Jar进行反编译)

    jd-gui

    apktool(对apk进行反编译)

    apktool

    baksmali(将dex文件编译成smali文件)

    baksmali

    工具截图:

    工具截图

    新建项目,生成一个APK:

    生成APK

    复制【app-debug.apk】到【C:\Users\Chao\Desktop\反编译工具】开始反编译

    CMD执行以下命令将Apk拆包(拆包后会在当前目录生成file文件夹):

    java -jar apktool_2.3.4.jar d -f app-debug.apk -o file
    

    APK拆包

    用压缩软件打开apk,将内部的classes.dex解压到【C:\Users\Chao\Desktop\反编译工具\dex2jar-2.0】目录,并执行以下命令生成classes-dex2jar.jar:

    d2j-dex2jar classes.dex
    

    dex转换jar

    用jd-gui.exe打开上面生成的classes-dex2jar.jar,查看源码:

    查看源码

    根据jar反编译的源码进行修改,例如【file/smail/包名】目录下对应MainActivity.smali文件:

    MainActivity.smali

    MainActivity.smali

    将smail内部Unicode字符串转码,确定是否是我们要修改的内容:

    unicode转中文

    用我们想要的文字转换为Unicode字符串,并替换保存:

    中文转unicode

    运行以下命令重新打包apk:

    java -jar apktool_2.3.4.jar b file -o cc.apk
    

    打包apk

    此时apk还无法安装,还需要签名,运行以下命令签名:

    debug.keystore是从android studio配置目录拿到的测试key,通常位于目录【C:\Users\Chao\.android】

    jarsigner -verbose -keystore debug.keystore -signedjar cc_signed.apk cc.apk androiddebugkey
    

    签名apk

    此时apk已经可以安装使用了,不过为了提升运行速度,建议做一次对齐操作:

    APK对齐:工具存放于<Android SDK>/build-tools/<version>
    zipalign 4 cc_signed.apk cc_signed_aligned.apk
    

    另外附上baksmali/smali将dex与smail相互转换的命令:

    java -jar baksmali-2.2.5.jar d classes.dex -o smali
    
    java -jar smali-2.2.5.jar a smali -o newclasses.dex
    
    展开全文
  • mac环境下Android 反编译一、需要的工具apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。dex2jar:将反编译后的classes.dex文件转化为.jar文件。jd-gui:用于将.jar文件转换成...
  • 查看java.class文件源码,file导入自动解析成源码文档
  • Android反编译源码

    2020-04-01 11:11:27
    如何反编译Andoid安装包? 1、先把apk包修改后缀名为.zip,如下图: 2、使用Nodepad++打开classes.dex文件并且把第二行代码037修改为036,然后保存 3、使用命令进入d2j-dex2jar.bat所在的文件夹目录 ...
  • Android APK反编译查看源码及资源文件

    千次阅读 2014-04-04 10:08:38
    本文主要介绍如何反编译Android应用程序查看源代码、资源文件和xml文件以及修改后重新打包成APK。鼓励大家反编译去学习他人的设计而不是将应用换壳后混乱市场。也可以直接使用网友整理的 anti-droid.需要的使用工具...
  • 一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)...
  • 该存储库包含针对Kirby 64的正在进行的反编译工作。 您将需要ROM的原始副本才能继续。 正在安装 首先,获取Linux,如果使用Windows,则获取适用 接下来,通过运行sudo apt install git && git clone ...
  • NET Reflector 是反编译.NET 源码的工具!有个很好的功能可以转换为不同的 Reflector for .NET 下载地址:http://www.aisto.com/roeder/dotnet/Reflector.zip 如C#和VB.NET代码。 现在介绍一个它的插件。非常好用。...
  • Sonic 1/2 2013反编译 Sonic 1和2的完全反编译(2013) 支持SONIC 1和SONIC 2的正式发布 没有官方发行版的资产,此反编译将无法运行。 有关如何查找合法获取的data.rsdk文件的视频教程: : gzIfRW91IxE 您可以从...
  • ILspy是一个开源的.net反编译软件,使用十分方便。 ILspy需要在电脑上安装.NET Framework 4.0. 可以将一个dll文件转换为C#或VB语言。对于单个文件可以保存为.cs文件或.vb文件,当文件较多时,可以选择保存为项目文件...
  • 1:找了好几个软件都不能图形化的解决反编译,很不舒服,最后找了个还算顺手的,顺便保存下。 2:使用过程 <1> apkjar apktoolkit工具 <2> 查看jar源码 jd_gui工具 <3> 解决xml乱码...
  • 反编译APK获取源码

    2016-10-19 11:09:25
    原文链接:反编译apk获取源码,点击阅读原文。1.需要下载的工具(在原文链接中可以下载):1)apktool:获取资源文件,提取图片文件,布局文件,还有一些XML资源文件 2)dex2jar:将APK反编译成Java(将classes转化为...
  • mac环境下Android 反编译 一、需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。 dex2jar:将反编译后的classes.dex文件转化为.jar文件。 jd-gui:用于将.jar...
  • 一键反编译微信小程序获取源码,并转换为uniapp或taro跨端项目
  • dex2jar 可以将乱码的文件转换成jar文件 下载dex2jar 官方点击:https://sourceforge.net/projects/dex2jar/files/latest/download 百度云分享:... 安装 下载完成后直接解压即可。...dex2jar使...
  • 我们可以反编译的各种东西的列表在目录中。 较长的两个例子是: 演示检测诸如defvar和defconst类的形式,以及反转诸如when和 是一个真正起作用的递归fib程序。 在更好地组织文档之前,请参阅和以获取更一般的概述...
  • 之前自己写了一个APP,不过后来电脑重装系统导致现在源码没有了,而我手里只剩下一个apk文件了,现在又想增加功能且不想重头开始写,那就反编译试试吧。 工具 apktool: 获取apk中的资源文件 dex2jar: 将dex文件转换...
  • E模块反编译--此 简单的说就是模块转换成明文的。 本版本无广告。 附带了工具的源码
  • 安卓app反编译破解所需要用到的包,包括查壳,反编译,classjava,dex2oat等等。
  • 有时候,为了学习源码,我们希望将.java已经编译成.class的文件反编译为.java文件,如何还原为.java文件呢? 此款软件可以帮您将.class文件反编译为.java文件。 —好不好? ——谁用谁知道!
  • 在debug的时候就可以关联到转换后的反编译源码。 包含两部分: 1. checkLineNumber.jar 是编译出来的jar包,可以通过cmd里直接使用: java -jar checkLineNumber.jar inputpath outputpath 其中inputpath为输入...
  • 将apk文件反编译成java源码

    热门讨论 2011-12-12 13:23:59
    步骤: 1.首先找到Android软件安装包中的classes.dex 把用压缩工具打开apk,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以...还有 反编译apk可以看见别人是如何写布局文件的
  • 关于python的加密目前软件开发商对 Python 加密时可能会有两种形式,一种是对python成的exe进行保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程。1、 对 pythonexe加壳下载最新版...
  • Beyond Compare反编译插件提示转换错误

    千次阅读 2020-05-03 23:50:03
    Beyond Compare是一款文件差异比较软件,java开发的时候,有时候涉及到把class文件反编译查看源码的需求。但是有时候进行class文件反编译源码的时候会出现以下异常 出现这个问题的原因是因为反编译的插件底层是...
  • 选择最新的版本dex2jar 选择最新的版本jd-gui把压缩文件解压缩,并把所有的文件放到同一个文件夹下,得到的文件如图:我的文件为apktool.jar是因为我进行了重命名开始进行编译1、把要进行反编译的apk文件拷贝到...
  • 安装后复制DJ.exe到安装目录覆盖原文件即可。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 539
精华内容 215
关键字:

反编译转源码