1,哪个app反编译软件简单好用apktool、Smali2Java、dex2jar、jd-gui.这几个联合起来使用,一般没有混淆加密的,基本都可以反编译出来 , 不过反编译一般只限学习使用 , 不可乱用哦?。?
2,安卓apk文件如何反编译安卓apk文件反编译:一、反编译xml文件1>首先下载我给你们提供的文件夹apk_fanbianyi , 把它放到某个盘的根目录下(为了方便输入dos命令),然后打开apktool文件夹,安装win+r键 , 然后输入cmd,进入dos命令行,大家别怕,不用晕 , 很简单的 。2>然后在dos命令中首先输入文件夹所在盘符+“:”回车 , 接着再输入cd+apktool所在目录,切换dos工作空间到apktool文件夹下 。3>接着输入apktool.batd【需反编译apk文件路径】{【反编译文件反编译后的路径】},其中最后一部分可以省去,系统会默认把apk文件反编译到apktool目录下,例如输入apktool.batdd:/apk_fanbianyi/ttkp.apk,在apktool文件夹下就会生成一个ttpk的文件夹,所有的xml文件全部反编译成功 。二、反编译java文件1>首先解压需要反编译的apk文件 , 拷贝出里面的classes.dex文件到dex2jar文件夹(为了方便操作,省去dos命令输入路径的麻烦)2>把工作空间切换到dex2jar文件夹下,输入命令cdd:/apk_fanbianyi/dex2jar回车3>输入命令dex2jar.batclasses.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,选择openfile,找到classes_dex2jar.jar文件,可以发现有很多包,选择包下的任意一个java文件,打开不乱码了,是不是很神奇,哈哈,你学会了安卓apk文件反编译【最强大的apk反编译,哪个app反编译软件简单好用】
3,什么反编译软件最好用apk和exe的反编译也就是反向编译,是指通过对目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,不一定能推导出源代码 。举个例子:fla文件是动画的源代码文件,发...apk的封包简单一点 。exe有些是加壳的 。没有apk的简单 。当然是apktool了 模拟器我真没试过 那是开发软件的时候 测试代码用的
4,怎么反编译APK文件一、dexdump方法dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中:D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexdump.exe -d classes.dex > spk.dump.txt得到的文件内容,描述了类的信息,但实在是不好读啊~~~~二、dex2jar + XJad 方法该方法是使用dex2jar.jar包 , 将classes.dex文件解包成jar,在通过XJad(或者其他class反编译工具)进行java反编译 。如:1、dex2jar.bat d:\play\classes.dex默认的输出路径同classes.dex,生成的文件名为classes.dex.dex2jar.jar2、使用XJad反编译该jar包之后的使用方法,大家都懂的:)该方法的好处在于,通过XJad反编译后 , 大家可直接开到java源文件,缺点在于只能反编译出开发时的java文件,而开发时使用的lib包不能反编译出来 。三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法这个方法就强大了 , AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具 , 直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密) 。baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具操作方式如下:1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml > AndroidManifest.txt2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt3、java -jar baksmali-1.2.5.jar -o classout/ d:\play\classes.dexbaksmali可解析(注意,是解析,不是反编译)原java包以及引用的lib包,解析出的文件认真看还是能看懂,比如以下片段:view plaincopy to clipboardprint?.class Lcom/paul/test/a;.super Landroid/view/View;# static fields.field private static final a:Landroid/graphics/Typeface;# instance fields.field private b:I.field private c:I.field private d:Z.field private e:J.field private f:I.field private l:[Ljava/lang/String;# direct methods.method static constructor ()V.registers 2sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;const/4 v1, 0x0invoke-staticmove-result-object v0sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;return-void.end method## other methods ..........## virtual methods.method public onKeyUp(ILandroid/view/KeyEvent;)Z.registers 4const/16 v0, 0x42if-eq p1, v0, :cond_8const/16 v0, 0x17if-ne p1, v0, :cond_b:cond_8invoke-direct:cond_bconst/4 v0, 0x0invoke-virtualinvoke-supermove-result v0return v0.end method.class Lcom/paul/test/a;.super Landroid/view/View;# static fields.field private static final a:Landroid/graphics/Typeface;# instance fields.field private b:I.field private c:I.field private d:Z.field private e:J.field private f:I.field private l:[Ljava/lang/String;# direct methods.method static constructor ()V.registers 2sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;const/4 v1, 0x0invoke-staticmove-result-object v0sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;return-void.end method## other methods ..........## virtual methods.method public onKeyUp(ILandroid/view/KeyEvent;)Z.registers 4const/16 v0, 0x42if-eq p1, v0, :cond_8const/16 v0, 0x17if-ne p1, v0, :cond_b:cond_8invoke-direct:cond_bconst/4 v0, 0x0invoke-virtualinvoke-supermove-result v0return v0.end method认真一看,就知道:# static fields定义静态变量的标记# instance fields定义实例变量的标记# direct methods定义静态方法的标记# virtual methods定义非静态方法的标记以onKeyUp方法为例,其中定义了处理逻辑,if-eq p1, v0, :cond_8 表示如果p1和v0相等,则执行cond_8的流程::cond_8invoke-direct 调用com.paul.test.a的d()方法不相等: if-ne p1, v0, :cond_b 则执行cond_b的流程::cond_bconst/4 v0, 0x0invoke-virtualinvoke-supermove-result v0大概意思就是调用com.paul.test.a的setPressed方法,然后再调用父类View的onKeyUp方法最后 return v0该方法,能把外部引用的lib包类也解析出来,能开到包的全貌 。缺点在于 , 解析出的smali文件并不是反编译出的java文件,可读性降低了,但仔细研究也能看出大概 。5 , 如何进行APK反编译如何进行APK反编译我们下载到某些apk的时候,可能总想学习下别人是怎么进行程序设计的 , 或者怎样使用xml文件布局的,这时就想到将apk文件的后缀改为rar并解压,最终得到一些图片资源和很多打开为乱码的文件,可见这种方式不可行,这就需要使用下面的工具对apk进行反编译了 。一、工具准备:apktool、dex2jar、jd-gui工具包也可以在这里下载 。1、dex2jar可以在这里下载,jd-gui可以在这里下载 。2、apktool , 可以到Google官方下载 , apktool-1.0.0.tar.bz2(里面有apktool.jar)和apktool-install-windows-2.1_r01-1.zip两个包都要下 。解压apktool.jar到 C:\Windows , 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录) 。二、使用dex2jar + jd-gui 得到apk的java源码,步骤如下:1、用.rar打开apk文档,将classes.dex文件解压出来,然后使用工具反编译成.jar文件 。在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下,classes.dex在D:\Android下,所以你进入到dex2jar.bat路径后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件 。2、用jd-gui反编译工具将得到.jar文件反编译成.java文件 。三、使用apktool得到apk的xml文件1、Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入命令:apktool d XXX.apk ABC反编译XXX.apk到文件夹ABC2、 在解压后的文件夹中可以得到apk的xml配置文件 。四、第二步得到的程序源代码和第三步得到的xml文件组合下,就成一个android工程,即可得到完整的apk源码 。6,如何利用apktool反编译apk电脑必须装JAVAJAVA电脑环境教程apktool 方法/步骤1. 配置好JAVA环境变量,下载:apktool解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)打开命令提示符,(开始-运行-输入cmd)2. 输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称 , 那么比如arc , 那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)3. 使用RE管理器把系统里面的framework-res.apk 与 SystemUI.apk 提取出来放在apktool文件夹里面4. 如果只是想反编译framework-res.apk输入apktool if framework-res.apk(框架的建立)5. 开始最重要的反编译 , 输入指令,apktool d framework-res.apk(反编辑的APK一定要用没换过图片的 , 否则回编辑失败)6. 最后反编译完成7. 修改代码完成后,输入代码:apktool d framework-res 即可完成回编译8. 如果反编译的是系统文件,比如,SystemUI.apk 那么必须进行挂载框架,反编译时 , 必须敲入一下命令:(然后再重复4-7步骤)apktool if framework-res.apkapktool if SystemUI.apk9. 对于三星手机(比如9100、9108/9100G),如果反编译SystemUI.apk要敲入一下命令进行框架挂载apktool if framework-res.apkapktool if twframework-res.apk apktool if SystemUI.apk10. 回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx(有后面的apk)所需工具:手机端反编译神器apktool,我用的是apktool4.4,re文件管理器,后面会给下载链接 。解压下载的apktool文件,将整个apktool文件夹移到根目录下,把需要修改的apk移到apktool文件夹内这里以最新的v4a音效为例 安装apktool,授予root权限,进入apktool文件夹,点击com.vipercn.viper4android_v2-1.apk,选择最上面的反编译全部,过程大概需要2~3分钟 。这时就需要用到re文件管理器了,进入apktool文件夹,进入com.vipercn.viper4android_v2-1_src文件夹,找到androidmanifest.xml,长按选择作为在文本编辑器中打开 , 找到下面这句 复制代码 并删除,之后返回并保存,删除自动备份的androidmanifest.xml供功垛嘉艹黄讹萎番联.bak文件,这时就可以进行回编了 。打开apktool , 进入apktool文件夹,长按com.vipercn.viper4android_v2-1_src文件夹,选择编译,编译大概也是2~3分分钟 。并且apktool文件夹里会出现一个com.vipercn.viper4android_v2-1_src.apk 这时候基本上就完成的差不多了,但是还没结束,因为没对apk进行签名,所以无法安装 。点击com.vipercn.viper4android_v2-1_src.apk,选择签名,签名完成后会出现一个com.vipercn.viper4android_v2-1_src_sign.apk这才是最终的 。安装看看,打开选项已经没有用了,桌面上也找不到该应用的图标 。
推荐阅读
- 信息化条件下流程分析
- 从mongodb中导出数据 mongodb读取文件
- ios 元气骑士破解版,求元气骑士iOS无限宝石破解版不要越狱的最好带教程
- mongodb怎么打开服务 mongodb服务端使用
- ecshop测试需求分析
- 苹果 wifi分析仪,苹果wifi信号不好是什么原因
- SSH框架流程图 ssh框架mongodb
- 携程数据分析师面试题,数据分析师excel面试题
- mongodb基本操作 mongodb4教程