APK反编译接口

合集下载

【转】一步一步带你反编译apk,并教你修改smali和重新打包

【转】一步一步带你反编译apk,并教你修改smali和重新打包

【转】⼀步⼀步带你反编译apk,并教你修改smali和重新打包⼀、⼯具介绍:1.apktool:aapt.exe,apktool.bat,apktool.jar;三个在同⼀⽬录结合使⽤,⽤来反编译apk,apk重新打包;2.dex2jar:该⼯具作⽤是将classes.dex⽂件,反编译出源码(如果apk未加固),反编译出⽂件,使⽤jd-gui⼯具进⾏查看;3.Auto-Sign:⾃动签名⼯具,将重新打包的apk进⾏签名,如果不签名,⽆法安装使⽤。

⼯具下载地址:(需要3CSDN积分,原本我设置3积分的,不知道为什么涨到16积分了......)使⽤场景:项⽬源码丢失,只有线上apk,并且没有加固,要求修改apk接⼝地址,并且重新打包,再发布。

⼆、⼯具使⽤:解压后⼯具包如图:1.思路:使⽤⼯具dex2jar反编译,并⽤jd-gui⼯具进⾏查看项⽬结构,查看源码,并且找到接⼝地址类,修改接⼝地址;步骤⼀:下载好⼯具,将需要反编译的APK后缀名改为.rar或则 .zip,并解压,如图:得到其中的classes.dex⽂件(它就是java⽂件编译再通过dx⼯具打包⽽成的),将获取到的classes.dex复制到解压出来的⼯具dex2jar-0.0.9.15 ⽂件夹内,在命令⾏下,进⼊到dex2jar.bat所在⽬录,输⼊命令:dex2jar.bat classes.dex效果如下:步骤⼆:运⾏结束后,在该⽬录下会⽣成⼀个classes_dex2jar.jar的⽂件,如图:然后打开⼯具jd-gui⽂件夹⾥的jd-gui.exe,⽤该⼯具打开⽣成的classes_dex2jar.jar⽂件,便可以看到源码了,效果如下:2.思路:apktool,反编译修改smali⽂件,进⾏重新打包,通过⽤jd-gui⼯具找到接⼝地址类后,与相应的smali⽂件进⾏对⽐,修改接⼝地址;下载上述⼯具中的apktool,解压得到3个⽂件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK⽂件放到该⽬录下,如图:打开命令⾏界⾯(运⾏-CMD),定位到apktool⽂件夹,输⼊以下命令:apktool.bat d -f test.apk -o testapktool -f [待反编译的apk] -o [反编译之后存放⽂件夹]如图:反编译之后会得到test ⽂件夹,打开test⽂件夹,⾥边就是反编译出来的各种资源⽂件使⽤jd-gui查看源码找到地址类,然后在smali⽂件⾥找到地址的smali⽂件,更改smali⽂件内接⼝地址。

apk文件反编译以及签名打包

apk文件反编译以及签名打包

android技巧:apk文件反编译以及签名打包(dex2jar&jd,apktool,apk-sign)通过dex2jar和jd我们可以反编译apk中的dex,可以比较完美的查看java源文件;通过apktool可以反编译apk中的xml等资源文件,然后通过apk-sign签名,可以制作成修改版的可发布apk文件。

1.dex2jar反编译dex文件:a.下载文件见附件:apktool-1.3.1.tar.bz2,jd-gui.zip,或点击这里下载;解压;b.把apk文件后缀名改为.zip,然后解压缩其中的class.dex文件,它是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件;c.把class.dex拷贝到dex2jar.bat所在目录,运行dex2jar.bat class.dex,生成classes.dex.dex2jar.jar ;d.运行jd-gui工具(绿色无须安装),打开上面生成的jar文件,即可看到源代码;2.apktool反编译xml等资源文件:a.安装java环境,下载文件件附件:apktool-1.3.1.tar.bz2,apktool-install-windows-2.2_r01-2.tar.bz2,或点击这里下载;把这两个文件解压到同一目录下,该目录下cmd中运行apktool获得帮助信息;b.apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABCc.apktool b ABC 从反编译后的文件夹ABC重建APK,输出到ABC\dist\out.apkd.这样我们就可以把远apk文件通过反编译后,然后对里面资源文件作修改,然后再重建为apk即可;3.apk-sign签名apk文件:a.下载文件件附件apk-sign.rar,解压到apk-sign文件夹;b.将XXX.apk文件解压到XXX文件夹,然后将XXX直接拖到apk-sign文件中的sign_pack.bat批处理文件上以执行,弹出cmd执行窗口,等待执行完即可;c.生成新文件夹XXX_signed中的apk文件即为已签名;apktool用法C:\Documents and Settings\Administrator>cd e:E:\C:\Documents and Settings\Administrator>e:E:\>cd android_devE:\android_dev>cd apk反编译E:\android_dev\apk反编译>apktool.batApktool v1.3.2 - a tool for reengineering Android apk filesCopyright 2010 Ryszard Wi?niewski <brut.alll@>Apache License 2.0 (/licenses/LICENSE-2.0) Usage: apktool [-v|--verbose] COMMAND [...]COMMANDs are:d[ecode] [OPTS] <file.apk> [<dir>]Decode <file.apk> to <dir>.OPTS:-s, --no-srcDo not decode sources.-r, --no-resDo not decode resources.-d, --debugDecode in debug mode. Check project page for more info.-f, --forceForce delete destination directory.-t <tag>, --frame-tag <tag>Try to use framework files tagged by <tag>.--keep-broken-resUse if there was an error and some resources were dropped, e.g.:"Invalid config flags detected. Dropping resources", but you want to decode them anyway, even with errors. You will have tofix them manually before building.b[uild] [OPTS] [<app_path>] [<out_file>]Build an apk from already decoded application located in<app_path>.It will automatically detect, whether files was changed and performneeded steps only.If you omit <app_path> then current directory will be used.If you omit <out_file> then<app_path>/dist/<name_of_original.apk>will be used.OPTS:-f, --force-allSkip changes detection and build all files.-d, --debugBuild in debug mode. Check project page for more info.if|install-framework <framework.apk> [<tag>]Install framework file to your system.For additional info, see: /p/android-apktool/ E:\android_dev\apk反编译>。

用安卓apk反编译利器Apktool

用安卓apk反编译利器Apktool

用安卓apk反编译利器Apktool,教你去掉软件里的广告(只用于学习交流。

)给大家介绍下windows环境下使用Apktool的方法。

安装:1.先装JAVA环境,JDK/JRE都行,官网下载装过的就跳过吧!2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip3.解压apktool.jar到C:Windows 解压apktool-install-windows.zip到任意文件夹(例如:E:Android学习工具反编译ApkTool)4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。

会列出一些帮助的话就成功了。

Apktool命令:apktool d XXX.apk PATH //反编译XXX.apk到文件夹PATHapktool b PATH //从文件夹PATH重建apk到PATHdistout.apk//============================================================ ========================//案例:“超级指南针”的顶部有一条广告区,我们的目的就是把它去掉。

运行cmd进入Apktool所在目录(我的是:“E:Android学习工具反编译ApkTool”)后,使用Apktool命令操作,如下现在在“E:Android学习.工具反编译新建文件夹指南针”目录下就得到了反编译后的文件,用记事本打开其中的AndroidManifest.xml,找到与下面类似的代码段:也就是找到有一连串字符序列的地方,如上CD0E46BC8B9DF1394F1E5F6030067A71和DEE43EDE-D2DF-4B4D-A754-894C9E7F960E两处,这两处分别是架势广告与admob提供的id地址。

【推荐下载】apk反编译详解

【推荐下载】apk反编译详解

apk 反编译详解2017/07/03 0 文章背景开发或学习Android 的时候,往往会涉反编译来借鉴别人的java 文件和布局等资源文件。

假如不小心把自己的源码弄丢了,也要经过反编译安卓在自己手机上的apk 来找回源码。

文章目标反编译工具分享反编译经验分享工具下载地址download.csdn/download/xinanheishao/9888288官方最新版本下载地址apktool: (要翻墙)https://code.google/p/android- apktool/downloads/list (不用翻墙)https://bitbucket/iBotPeaches/apktool/downloads/ dex2jar: code.google/p/dex2jar/downloads/listjd-gui: code.google/p/innlab/downloads/list工具介绍apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar 作用:将apk 反编译成Java 源码(classes.dex 转化成jar 文件)jd-gui 作用:查看APK 中classes.dex 转化成出的jar 文件,即源码文件反编译详细步骤(app-debug.apk 为例)1、下载工具,并将其一一解压,的到一下文件,如图所示2、配置apktool 环境变量,注意观察我的apktool 在磁盘上的路径3、配置dex2jar 环境变量,注意观察我的dex2jar 在磁盘上的路径4、使用dex2jar 反编译java 文件a、新建一个文件夹,把要编译的apk 文件放入其中b、将要反编译的APK 后缀名改为.rar 或则.zip,并解压,得到其中的额classes.dex 文件(它就是java 文件编译再通过dx 工具打包而成的)c、将获取到的classes.dex 放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内。

Apk反编译

Apk反编译

Apk反编译1.获取xml文件信息要用到apktool工具,利用工具包Androidby下的“Androidby反编译工具.exe”反编译syslog.apk反编译出来的文件夹syslog跟syslog.apk是在同一层:2.反编译dex获取java源代码Apltool只能编译smail,不能编译dex文件,所以要用到dex2jar文件用dex2jar文件下的“dex2jar.bat”操作,直接将syslog文件夹下的“classes.dex”拖到“dex2jar.bat ”文件下编译,得到“classes_dex2jar.jar”文件,该文件与“classes.dex”在同一层;利用dex2jar\jd-gui-0.3.5.windows文件夹下的‘jd-gui.exe’查看得到的‘classes_dex2jar.jar’文件查看结果如下:详细分析:1:注册消息:病毒注册并响应了3个消息,分别是:启动完成、监控拨出电话、接收短信,以便实现对应的功能。

注册服务:实现服务的定时启动2:权限:android.permission.READ_PHONE_STATE读取电话状态android.permission.MODIFY_PHONE_STATE修改电话状态android.permission.BROADCAST_STICKY允许一个程序广播常用intentsandroid.permission.PROCESS_OUTGOING_CALLS允许程序监视、修改有的是关播出电话android.permission.RECEIVE_BOOT_COMPLETED开机自动启动android.permission.UPDATE_DEVICE_STATS更新设备状态android.permission.INTERNAL_SYSTEM_WINDOW允许打开窗口使用系统用户界面android.permission.ADD_SYSTEM_SERVICE允许程序发布系统级服务android.permission.VIBRATE允许访问振动设备android.permission.SEND_SMS允许发送短息android.permission.RECEIVE_SMS允许拦截接收短信android.permission.READ_SMS允许读短信数据库android.permission.WRITE_SMS允许修改短信数据库android.permission.INTERNET允许连接网络android.permission.CHANGE_CONFIGURATION允许一个程序修改当前设置,如本地化android.permission.WAKE_LOCK允许使用PowerManager的WakeLocks保持进程在休眠时从屏幕消失android.permission.STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序android.permission.ACCESS_WIFI_STATE允许程序访问Wi-Fi网络状态信息android.permission.DEVICE_POWER允许访问底层电源管理android.permission.DISABLE_KEYGUARD允许程序禁用键盘锁android.permission.WRITE_APN_SETTINGS允许程序写入API设置android.permission.CHANGE_WIFI_STATE允许程序改变Wi-Fi连接状态android.permission.ACCESS_NETWORK_STATE允许程序访问有关GSM网络信息android.permission.CHANGE_NETWORK_STATE允许程序改变网络连接状态android.permission.BROADCAST_SMS允许程序广播一条短信回执android.permission.WRITE_SETTINGS允许程序读取或写入系统设置android.permission.WRITE_EXTERNAL_STORAGE允许写SD卡不法分子就通过这些来获取:1. str2 =localCursor.getString(localCurso r.getColumnIndexOrThrow("address")).toString();//读取电话号码2. Date localDate = newDate(Long.parseLong(localCursor.getString(localCursor.getClumnIndexOrThrow("date")).toString()));//读取时间3.((AlarmManager)paramContext.getSystemService("alarm")).set(2, SystemClock.elapsedRealtime() + paramInt * 1000,pendingIntent); //我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,启动后台4.Cursor localCursor =paramContext.getContentResolver().query(localUri, null,null, null, null);//通过游标查询出收件箱的地址5. 每隔1500s发送一次报告public static final int TimerReportInSeconds= 1500;6.如果接收到的短信以”,”开始,则清除控制信息,同时提取短信中的号码并发送报告。

Android开发apk反编译和二次打包教程

Android开发apk反编译和二次打包教程

Android开发apk反编译和⼆次打包教程作为Android开发者,⼯作中少不了要反编译别⼈的apk,当然主要⽬的还是为了学习到更多,取彼之长,补⼰之短。

今天就来总结⼀下Android反编译和⼆次打包的⼀些知识。

⾸先声明本⽂的⽬的是为了通过例⼦讲解反编译和⼆次打包的原理和⽅法,继⽽作为后续讲解防⽌⼆次打包和App安全的依据,并不是⿎励⼤家去重新打包别⼈的App,盗取他⼈劳动成果。

本⽂⾸先介绍⼏种Android反编译⼯具的使⽤,然后实现在不需要知道源代码的情况下,仅通过修改反编译得到的smali⽂件实现修改apk逻辑功能的⽬的。

Android中常⽤的反编译⼯具有三个:dex2jar、jd-gui和apktool,这三个⼯具的作⽤如下:dex2jar:将apk中的classes.dex⽂件转换成jar⽂件。

jd-gui:查看由dex2jar转换成的jar⽂件,以界⾯的形式展⽰反编译出来的Java源代码。

apktool:反编译⽣成smali字节码⽂件,提取apk中的资源⽂件。

为了尽可能的把问题讲清楚,我们来实现⼀个很简单的例⼦。

⾸先创建⼀个⼯程DecompileDemo,在MainActivity中定义⼀个布局,其中包含⼀个Button,点击会打印⼀段⽇志。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {private static final String TAG = "MainActivity";private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(this);}@Overridepublic void onClick(View v) {Log.d(TAG,"Button is clicked");}}将这个⼯程编译⽣成的apk解压,取出其中的classes.dex放在dex2jar⼯具的⽬录下,然后执⾏命令会在当前⽬录下⽣成class-dex2jar.jar⽂件然后打开jd-gui,将class-dex2jar.jar⽂件拖进去,就可以看到反编译出来的源代码。

APK反编译相关

APK反编译相关

APK反编译相关下面就来说说如何将一个apk反编译出来。

一、准备必要工具工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具1.1、使用工具1.apktool (资源文件获取)2.dex2jar(源码文件获取)3.jd-gui (源码查看)1.2、工具介绍apktool作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui作用:查看APK中classes.dex转化成出的jar文件,即源码文件1.3工具下载apktool下载地址:https:///iBotPeaches/apktool/downloads 下载好之后得到一个如下图所示的jar文件dex2jar下载地址:/projects/dex2jar/files/下载完成之后,得到一个如下图所示的压缩包jd-gui下载地址:http://jd.benow.ca/下载完成之后,得到一个如下图所示的压缩包:到此,需要使用到的3个相关工具都下载好了,在这里说明一下jd-gui的下载,我从官方网站上点击下载时会经常出现如下图所示的问题但是多试几次又可以下载了,所以如果有遇到这个问题的朋友们不妨多试几次,或者从别的地方下载jd-gui,jd-gui算是做Java开发的一个必备工具了,用它来将class反编译成java源代码是非常方便的,网上搜索一下一般都可以下载到,只不过版本不一定是最新的。

二、Apk反编译流程为了方便进行反编译,我们将上述下载好的3个工具统一放到一个文件夹中,例如:然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,如下图所示:2.1、使用apktool反编译apk得到图片、XML配置、语言资源等文件进入CMD命令行,如下:切换到上述的3个工具的所在目录,如:E:\AndroidDevelopTool\Android反编译工具包接下来我们要做的就是运行apktool_2.0.1.jar这个jar文件来将apk文件进行反编译,在java 中,运行可执行jar包的命令是:java -jar jar包名.jar使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apkjava -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS这个命令是启动apktool_2.0.1.jar将位于【E:\AndroidDevelopTool\Android反编译工具包\测试apk\】目录下的"MMTS-release-1.0.2.apk"这个apk反编译,然后将反编译生成的文件存放到当前目录(apktool_2.0.1.jar所在的目录,也就是"E:\AndroidDevelopTool\Android反编译工具包"目录)下的一个【MMTS】文件夹中。

apk反编译

apk反编译

工具说明:1. APK文件反编译工具 ApkTool v1.4.3用于直接反编译APK文件,同时也会反编译dex文件。

2. DEX文件反编译工具 Baksmali/Smali v1.3.2专门用来反编译Dex文件,可以跟ApkTool兼容使用。

3. DEX文件反编译资源查看工具Dex2jar v0.0.9.8和JD-GUI v0.3.3用来查看反编译Dex后源码的工具,据说能完整的反编译出Dex文件源码。

4. APK文件签名工具 SignApk为APK文件执行签名,专门提供给广大汉化工作者们5. APK安装器 PC版 QQApktool为用户提供可以预先查看软件的所有信息包括权限的APK安装器。

6. 显示APK自身图标 Apkshellext v2.2该程序非常不错,可惜占用缓存和读取速度较慢,容易出现读取滞留状态,从而导致APK文件无法删除,建议配置低的电脑慎用。

7. XML汉化编辑工具(AndXML)加入,汉化浪子兄弟的XML汉化编辑工具,可支持字典汉化。

注意事项:1、需要反编译的APK文件名称,不可以使用中文,否则无法回编译。

2、反编译后的文件夹不要重命名,否则自动签名会失败(控制在:apktool.yml)。

3、APK文件不能放在分区根目录直接反编译,请放在子目录内。

4、部分功能需要 .NET Framework 4.0 的支持!如:如需显示APK自身图标必须先安装.NET Framework4。

1、smali-1.2.6.jar用途:.smali文件转成classes.dex文件说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。

用法举例:命令行:java -jar smali.jar classout/ -o classes.dex下载:/p/smali/downloads/list2、baksmali-1.2.6.jar用途:classes.dex文件转成.smali文件说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。

【ROM制作中级知识二】APK的反编译和回编译

【ROM制作中级知识二】APK的反编译和回编译

【ROM制作中级知识二】APK的反编译和回编译
在ROM修改、美化的时候,都要进行反编译和回编译,这个也是最基础的操作。

只有反编译后,才能对程序中的"*.mxl"、"*.smali"等文件进行修改;修改完成再回编译成要使用的文件。

下面就来介绍一下具体方法:
一、apk文件的编译,这里以"framework-res.apk"(我对它情有独钟啊!)文件为例,进行说明
1、反编译"framework-res.apk"
2、反编译后在该目录下生成"framework-res"文件夹(可以开始修改里面的文件啦~)
3、回编译"framework-res.apk"
4、回编译生产的文件在"\framework-res\已编译\"文件夹中
二、dex文件的编译,这里以"classes.dex"文件为例,进行图示说明
1、反编译"classes.dex"
2、反编译后就可以开始修改里面的文件啦~
3、回编译"classes.dex"
4、在该目录下生成的文件,再将其重命名为"classes.dex"即可(注意修改后缀名!)
所要用到的工具下载:
1.全能编译软件:
本帖隐藏的内容
/file/e7j7b4nh#Apkdb-Setup.exe
2."*.mxl"、"*.smali"等文件编辑器(Notepad++,其他也可以):
本帖隐藏的内容
自己百度。

手机,电脑反编译apk教程

手机,电脑反编译apk教程

手机,电脑反编译apk教程电脑端反编译教程:用apktool反编译工具1.Windows徽标键+R 弹出运行对话框输入cmd ,回车;会弹出命令提示符窗口2.输入:“E:”回车(其中E为盘符,apktool在哪个盘就输入哪个盘的盘符)3.输入:“cd apktool”回车(其中apktool为反编译工具所在文件夹)4.提取手机framework文件夹里面的framework-res.apk和mediatek-res.apk放到apktool文件夹中去5.输入命令:“apktool if framework-res.apk”回车;等他结束后继续输入:“apktool if mediatek-res.apk”同样回车6.进入正题!反编译命令:“apktool d 程序名.apk” 例如:apktool d Settings.apk为反编译Settings.apk回编译命令:“apktool b 要回编译的文件夹” 例如:apktool b Settings为回编译Settings文件夹为apk安装包文件7.反编译工具下载地址:/s/1mUjFY下载后解压缩,有文件夹apktool 直接放到本地硬盘里面,例如E 盘的根目录若把apktool文件夹放到了文件夹里面,那么在cmd窗口里时输命令就要多增加一步cd到文件夹的步骤教程到此结束!手机端反编译教程工具:apktool3.2操作步骤:1.下载工具,地址:/s/1cVHA解压缩“手机apktool3.2.7z”把里面的apktool文件夹直接放到手机内存卡的根目录2.在手机上打开刚刚的apktool文件夹,安装里面的Apktool3.2.apk3.用re管理器把system\framework\framework-res.apk复制到刚刚的apktool文件夹中重命名为framework.apk4.打开手机菜单,点击运行安装好的Apktool进入到内存卡的apktool文件夹中,按下菜单键,有个“安装framework”,点击它!会弹出一些帮助信息,在此不介绍了,按照它说的做5.可以正式开始反编译了!把要反编译的apk放到apktool目录下,运行Aapktool软件,进入apktool目录,单击欲反编译的那个apk 安装包,选择反编译全部,然后就等他搞定!6.搞定后会生成一个文件夹,名称格式为“被反编译的文件名_src”例如:Settings_src 这个文件夹就是被反编译后的apk的目录7.回编译的话你就点击“被反编译的文件名_src”例如:Settings_src ,点击后有一个“编译”选项,点击它!等待回编译结束。

android反编译

android反编译

Android APK反编译详解(附图)分类:Android 2011-08-28 22:42 29996人阅读评论(31) 收藏举报这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。

一、反编译Apk得到Java源代码首先要下载两个工具:dex2jar和JD-GUI前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。

以下是下载地址:dex2jar:/files/dex2jar-0.0.7-SNAPSHOT.zipJD-GUI:/files/jdgui.zip具体步骤:首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java 文件编译再通过dx工具打包而成的;解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。

在命令行下定位到dex2jar.bat所在目录运行dex2jar.bat classes.dex生成classes.dex.dex2jar.jar生成jar文件的截图如下:运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了HelloAndroid源码(编译前的apk源码对照)如下:二、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件如果是只是汉化软件,这将特别有用。

首先还是下载工具,这次用到的是apktool下载地址:/p/android-apktool/downloads/list下载:apktool1.4.1.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)具体步骤:将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,如下图:命令行解释:apktool d [apk文件 ] [输出文件夹]反编译的文件如下(AndroidManifest.xml为例):特别注意:你要反编译的文件一定要放在C盘的根目录里将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:builddist其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok注:本android反编译教程,是在Windows 7 Ultimate 64bit ,测试通过上述反编译工具包下载另外,作为应用开发者,肯定不希望自己的代码被反编译的,下一遍博客中讲述如何通过混淆代码放在反编译:Android如何防止apk程序被反编译。

安卓apk反编译查看源代码

安卓apk反编译查看源代码

安卓apk反编译查看源代码
相信很多初学者很像看看大公司比如jd,qq,淘宝手机端的商城是如何开发的,对于java开发的系统来说,大家都知道,反编译是容易的事情,如果换成android的,安装文件变成apk,那么又是什么情况了
带着好奇,我googl e了一下,分享一下:
反编译apk文件,得到其源代码的方法!!
dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。

dex2jar下载地址:http://laichao.googl /fil es/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:http://cod e.googl /p/dex2jar/ 请下载最新版的,旧版本有bug
1.首先找到Android软件安装包中的classes.dex
方法是把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件
2.把classes.dex拷贝到dex2jar.bat所在目录。

windows系统下:
在命令行模式下定位到dex2jar.bat所在目录,运行dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar linux、Ubuntu系统下:在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex
则可生成classes.dex.dex2jar.jar
3.运行JD-GUI工具(它是绿色无须安装的)
打开上面的jar文件,即可看到源代码
来源:清源教育。

反编译Apk得到Java源代码(apk xml源文件)

反编译Apk得到Java源代码(apk xml源文件)

1、下载apktool,可以去Google的官方下载,地址:/p/android-apktool/得,apktool1.3.2.tar.bz2和apktool-install-windows-2.2_r01-3.tar.bz2两个包都要下。

解压apktool1.3.2.tar.bz2得到apktool.jar放到 C:\Windows ,解压apktool-install-windows-2.2_r01-3.tar.bz2到C:\Windows下,记住了,解压后的几个文件放到同一文件夹。

2、打开命令窗口(开始 > 运行,输入cmd,回车。

)进入到apktool.bat的文件夹里。

输入:apktool d C:\***.apk C:\***文件夹(命令行解释:apktool d 要反编译的文件输出文件夹)4、如果出了以下的问题:Exception in thread "main" ng.UnsupportedClassVersionError: Bad version n umber in .class fileat ng.ClassLoader.defineClass1(Native Method)at ng.ClassLoader.defineClass(ClassLoader.java:620)atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)at .URLClassLoader.defineClass(URLClassLoader.java:260)at .URLClassLoader.access$100(URLClassLoader.java:56)at .URLClassLoader$1.run(URLClassLoader.java:195)at java.security.AccessController.doPrivileged(Native Method)at .URLClassLoader.findClass(URLClassLoader.java:188)at ng.ClassLoader.loadClass(ClassLoader.java:306)at uncher$AppClassLoader.loadClass(Launcher.java:268)at ng.ClassLoader.loadClass(ClassLoader.java:251)at ng.ClassLoader.loadClassInternal(ClassLoader.java:319)版本问题,装了个jre6,在360中的软件管家可以找到的,记得装完后配置path路径,果然,ok。

深入了解APK反编译(分解,编译和打包)

深入了解APK反编译(分解,编译和打包)

1、下载dex2jar最新版本0.0.7,下载地址/p/dex2jar/downloads/list2、下载class反编译工具,我用的是jad,大家可以根据自己情况选择。

3、在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.dex4、这样会生成一个jar文件,然后用jad工具将.class文件反编译成.java文件。

5、反编译jar文件,见下载的附件要反编译一个apk译文件,需要做以下几步:1.找到apk安装文件2.找到安装软件的*.dex译文件3.dump dex文件4.分析dex文件获取想要的代码1.找到apk安装文件这个比较容易,把手机或者模似器安装好后,可以在eclipse的File Explorer下找到安装程序的apk译文件,也可以通过adb命令找到:$ adb shell# cd /system/appcd /system/app# ls2.找到安装软件的*.dex译文件运行安装软件后,会在android文件系统下生成一个*.dex文件,一般在目录/data/dalvik-cache下,也可以通过adb命令找到:$ adb shell# cd /data/dalvik-cachecd /data/dalvik-cache# ls3.编译软件对应的dex文件,通过以下指令:adb shell dexdump -d -f -h/data/dalvik-cache/data@app@be.citylive.twitpic.apk@classes.dex > twitpic.text 指令参数解释:-d : disassemble code sections-f : display summary information from file header-h : display file header details-C : decode (demangle) low-level symbol names-S : compute sizes only4.获取需要的代码:打开刚才得到的编译出来的text文件,会看到形如以下的代码:Class #0 header:class_idx : 32access_flags : 196625 (0x30011)superclass_idx : 61interfaces_off : 0 (0x000000)。

Android开发:APK的反编译(获取代码和资源文件)

Android开发:APK的反编译(获取代码和资源文件)

Android开发:APK的反编译(获取代码和资源⽂件)⼀、反编译⼯具: 1、APKTool: APKTool是由GOOGLE提供的APK编译⼯具,能够完成反编译及回编译apk的⼯作。

同时,它也有着安装反编译系统apk所需要的framework-res框架,以及清理以前反编译⽂件夹等功能。

APKTool的使⽤需要java⽀持。

2、dex2jar: dex2jar 是将android的.dex⽂件转换成Java的.class⽂件的转换⼯具,如果在转换过程中有问题的话,可以试⽤下其他的版本。

3、jd-gui: JD分为JD-GUI、JD-Eclipse两种运⾏⽅式,JD-GUI是以单独的程序的⽅式运⾏,JD-Eclipse则是以⼀个Eclipse插件的⽅式运⾏。

jd-gui只能查看,不能够将那些⽂件转换成.java⽂件。

⽂件下载地址: 提取码:eeir⼆、APKTool使⽤: 下载好的apktool⽂件夹中包含以下⽂件:aapt.exe、apktool.bat、apktool.jar、cmd.exe. 1、反编译: 将要反编译的apk⽂件复制到该⽂件夹下,打开cmd.exe,进⼊cmd中,执⾏命令:apktool.bat d hotword.apk (不复制也⾏,但是执⾏命令时要使⽤绝对路径写清apk⽂件放置的精确位置) 在apktool⽂件夹下可以看到hotword⽂件夹,⾥⾯存储的有res下的资源⽂件,和各种XML⽂件: 如果你给定的apk反编译⽂件已经存在,那么输⼊完该命令后会提⽰你,并且⽆法执⾏,需要重新修改命令加⼊-f指令: 这样会强⾏覆盖已经存在的⽂件。

2、回编译: 运⾏命令: 参数b代表回编译,hotword则是apk反编译出来的⽂件夹名。

apktool.bat d –f hotword.apkapktool.bat b hotword 回编译完成会在hotword⽂件夹⽣成⼀个dist⽂件夹和⼀个build⽂件夹,dist⽂件夹⾥⾯存放的就是回编译后不带有签名的apk⽂件,build⽂件夹⾥⾯还有⼀个apk⽂件夹,⾥⾯存放的是回编译后没有打包成apk的⽂件。

Androidapk反编译基础(apktoos)图文教程

Androidapk反编译基础(apktoos)图文教程

Androidapk反编译基础(apktoos)图⽂教程很久有写过⼀个⼴⼯图书馆主页⼀个类爬⾍的demo(因为没接⼝,只能扒取静态⽹页),实现⼀些图书馆系统的⼀些功能。

但最近发现图书馆系统在html页⾯上做了⼿脚,⼀页html 页⾯中嵌⼊了⼏千⾏的注释,并有了⾃⼰的App,应该是为了增加扒取的流量成本来防⽌别⼈去扒取⽹页,不过加注释这⼿段就不敢恭维了,内⽹访问速度还⾏,但外⽹访问的话体验很差的。

如下图:⼀堆注释,导致⼀个⽹页要2MB主页上的APP,必然是⽤了图书馆的后台接⼝和服务器交互的,从⽽想试试⽤反编译的⼿段来看看APP使⽤了什么接⼝。

(另外更简单可以通过来给Android⼿机抓包分析其接⼝,再⽤Wireshark来分析tcp包,不过你想要知道全部接⼝的话,可能需要⼀个个接⼝去调⽤,会⽐较⿇烦,采⽤反编译,可能集中在⼀个类中找到这些接⼝)。

解压缩APKTool,并把要反编译的APK放⼊⽬录中反编译:通过CMD进⼊上⾯的⽬录,执⾏命令: apktool decode ZhaoBenShu.apk outdir稍等⽚刻完成反编译,反编译后的⽂件会在outdir⽬录下。

---outdir⽬录结构res :资源⽂件,跟adnroid⼯程⽬录下的res基本⼀样,各种UI图⽚ XML布局⽂件 values xml⽂件(多了⼀个public.xml,有各个资源的id号(R.java中的id))smail:这个是重点⽂件夹,⾥⾯都是smail格式⽂件,是Dalvik虚拟机执⾏的操作码(Dalvik opcodes),这些操作吗有⾃⼰的语法,如果有学过JNI的话,这些语法还是⽐较容易看懂和理解的。

AndroidManifest.xml:Android⼯程下的AndroidManifest.xmlapktool.yml:⽤于重打包。

smail语法:(全部语法请)smail中的数据类型签名跟java中的是⼀样的,如下。

市面上比较常用的APK反编译工具

市面上比较常用的APK反编译工具

市面上比较常用的反编译工具有:dex2jar,jd-gui,apktool,IDA等等。

这里我简单的说一下dex2jar这个常用反编译工具的使用。

在下载到了dex2jar和jd-gui这两个工具之后。

1.将要反编译的APK后缀名改为.rar或 .zip,并解压
-------------------------------------------------------------
2.得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内
-------------------------------------------------------------
3.在命令行下定位到dex2jar.bat所在目录,输入
dex2jar.bat classes.dex。

效果如下:
在该目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:
被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):
没有经过处理或者只是简单的混淆过的APP其代码的反编译的比较容易的。

你的代码经过上面那三步已经暴露出来了。

在下面提供的更多的途径来给各位学习反编译。

(以上资料由爱加密从网上收集整理)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

APK反编译接口
接口名称:APK反编译接口
接口平台:聚合数据
根据url上传待加密的apk
接口地址:/ijiami/upload
支持格式:json/xml
请求方式:http get
请求示例:/ijiami/upload?key=您的APPKEY&apkurl=您的应用下载地址JSON返回示例:
{
"reason": "成功",
"result": {
"appId": "20141105150359939873"
},
"error_code": 0
}
提交加密应用加密
接口地址:/ijiami/encrypt
请求示例:/ijiami/encrypt?key=您的APPKEY&appid=20141105150359939873 JSON返回示例:
{
"reason": "成功",
"result": {
"appId": "d266d1cb038ffd67fdc6fe142cad02ba49fb6a57c1dfe641"
},
"error_code": 0
}
查询加密结果
接口地址:/ijiami/result
请求示例:/ijiami/result?key=您申请的KEY&appid=1266d1cb038ffd67fdc6fe142cad02ba49fb6a57c1dfe641
接口备注:根据appid,查询加密结果,视不同APK加密时长不一样,需要隔段时间再次请求
JSON返回示例:
{
"reason": "成功",
"result": {
"download":
"/ijiami/jmEnd/service/20141105151550489/370710_ea4c972e-dd92-4acd-8dec -347b1ff377fd.apk"
},
"error_code": 0
}。

相关文档
最新文档