简单反编译apk软件教程-棕发
- 格式:pdf
- 大小:629.00 KB
- 文档页数:5
【转】⼀步⼀步带你反编译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 反编译详解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反编译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反编译和⼆次打包的⼀些知识。
⾸先声明本⽂的⽬的是为了通过例⼦讲解反编译和⼆次打包的原理和⽅法,继⽽作为后续讲解防⽌⼆次打包和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⽂件拖进去,就可以看到反编译出来的源代码。
apktool反编译详细使⽤教程安装反编⼯具地址apktool⼯具包下载地址apktool.rar1.⾸先安装需要JAVA环境,先下载JDK/JRE,已经有JAVA环境的可跳过此步java JDK:java JRE:还得设置JAVA环境变量CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarJAVA_HOME C:\Program Files\Java\jdk1.6.0_10 解释JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin环境变量配置好了,我们就可以反编译了,(如果有不明⽩的有两种⽅法,1,请教我,2在论坛搜搜怎么设置JAVA环境变量)反编译的使⽤反编译⼯具,⽹上有很多,有APKTOOL,Doapk ,apkmanage..........,你们可以随便下载⼀个,地址我就不提供了,你们⾃⼰搜索⼀下,上百度,上论坛上搜都有的,但apkTOOL⼯具必须包含⼀下⼏个下载完成反编译⼯具后,验证是否安装成功,点击开始菜单,运⾏,输⼊CMD回车按⼀下回车出现,在输⼊APKTOOl,输⼊apktool,要看腻把apkTOOL安装在哪个盘,举例我的,我是安装在D盘APkTOOL⽂件下,先在cmd下输⼊D:回车,在输⼊CD apktool,转⼊apktool⽂件夹下,输⼊apktool 出现如下反应,,说明你安装成功了,可以进⾏APK反编译了,下⾯我已反编译SystemUI.apk为例。
⾸先的知道⼀下⼏条指令的意思1,apktool d SysteUI.apk 12意思是将SystemUI.apk解包到12⽂件下,12⽂件夹不⽤创建,会⾃动⽣成2,apktool b 12打包12⽂件夹(将会⾃动把12⽂件夹⾥的修改过得APK解包后修改完后⾃动打包,⽣成resources.arsc,⽂件,这就是我们反编译的主要⽬的,当然还有其他⽬的,后⾯将会说明怎么apktool需要反编译的⽬的,⽣成的⽂件。
反编译APK⽂件的三种⽅法(转)因为学习Android编程的需要,有时我们需要对⽹络上发布的应⽤项⽬进⾏学习,可是Android项⽬⼀般是通过APK⽂件进⾏发布的,我们看不到源代码,嘿嘿,办法总会有的,⽽且不⽌⼀个...ps:对于软件开发⼈员来说,保护代码安全也是⽐较重要的因素之⼀,不过⽬前来说Google Android平台选择了Java Dalvik VM的⽅式使其程序很容易破解和被修改,⾸先APK⽂件其实就是⼀个MIME为ZIP的压缩包,我们修改ZIP后缀名⽅式可以看到内部的⽂件结构,类似Sun JavaMe的Jar压缩格式⼀样,不过⽐较去别的是Android上的⼆进制代码被编译成为Dex的字节码,所有的Java⽂件最终会编译进该⽂件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。
所有的类调⽤、涉及到的⽅法都在⾥⾯体现到,⾄于逻辑的执⾏可以通过实时调试的⽅法来查看,当然这需要借助⼀些我们⾃⼰编写的跟踪程序。
Google最然在Android Market上设置了权限保护app-private⽂件夹的安全,但是最终我们使⽤修改定值的系统仍然可以获取到需要的⽂件。
⼀、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包不能反编译出来。
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】文件夹中。
1、需要下载apktool1.4.1.tar.bz2,apktool-install-windows-r04-brut1.tar.bz2,dex-translator-0.0.9.3.zip,jd-gui-0.3.3.windows.zip。
2、解压apktool1.4.1.tar.bz2,apktool-install-windows-r04-brut1.tar.bz2,将apktool.jar放进apktool-install-windows-r04-brut1.tar.bz2的解压文件中。
3、打开doc窗口,打开apktool-install-windows-r04-brut1.tar.bz2文件,输入apktool测试是否安装成功。
安装成功后。
A2. AXMLPrinter2.jar将它放到android-sdk-windows-1.5_r3/tools文件夹中运行cmd,进入tools目录,运行java -jar AXMLPrinter2.jar main.xml > main.txt;于是我们就得到了反编译后的XML文件;经历了这么多,我们得到的只是部分布局文件和资源文件,但java文件还是"犹抱琵琶半遮面"。
下面,让我们掀起她的红盖头来:B. dex2jar下载:/p/dex2jar/downloads/list方法:1.首先找到Android软件安装包中的classes.dex (解压得到);它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件2.把classes.dex拷贝到dex2jar.bat所在目录;在命令行模式下定位到dex2jar.bat所在目录,运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar,成功了一半!4、解压jd-gui-0.3.3.windows,运行里面的exe文件。
【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++,其他也可以):
本帖隐藏的内容
自己百度。
3分钟傻⽠式反编译⼀个APP写在前⾯:最近⼯作有些忙,⼀段时间没更新博客了,趁着刚吃完晚饭,来更新⼀下~前⼏天,需求上有⼀个功能没思路,反编译了⼀下同类型的APP,找到了⼀个关键了,问题得以解决。
⽹络上有很多⽐较成熟的⽂章,不过我个⼈觉得有些过于冗杂,不够简单粗暴,所以特来介绍⼀个⽅便的⼯具来进⾏反编译操作。
反编译是为了啥?我们什么时候需要反编译呢?想获得⽬标APP的资源(图⽚等)有功能不会写了,参考(copy)⼀下同类APP某些“羞羞”的事情前两条需求还是蛮常见的,最后⼀条是开个玩笑,别做坏事就~准备⼯具onekey decompile apk (⼀键反编译APK⼯具)⽬标APKonekey decompile apk下载链接正确姿势下载⼯具压缩包多说⼀句,这个⼯具集成了三个反编译的⼯具的功能,⼀步到位。
如果你对这三个⼯具各⾃的功能使⽤感兴趣,⾃⾏搜索学习⼀下。
解压到C盘根⽬录这⾥强调⼀下,最好是放在C盘根⽬录下,放到别的盘反编译可能会失败。
我就失败过⼀次,具体原因是什么不得⽽知~得到以下⽂件:将要反编译的APK放到这个⽬录下:将apk⽂件拖拽到_onekey-decompile-apk.bat上然后耐⼼等待⼗⼏秒……源代码弹出,反编译完成!会在onekey-decompile-apk⽬录下⽣成和apk同名的⽬录(放置了apktools反编译出来的东西)会在onekey-decompile-apk⽬录下⽣成和apk同名的jar⽂件(dex2jar反编译出来的class)图⽚资源会很完整,有些代码被混淆了,不过还是能看懂个⼤概的~写在后⾯:这个⼯具的作⽤不⽌于此,有需要再慢慢研究吧~。
手机,电脑反编译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 ,点击后有一个“编译”选项,点击它!等待回编译结束。
教你如何反编译APKAPK文件是Android应用程序的包装文件,包含了应用的代码、资源文件和其他相关信息。
反编译APK可以帮助开发人员分析应用的代码结构和功能实现,以及学习其他应用的设计思路和技术实现方法。
下面是一种常用的反编译APK的方法。
步骤1:安装反编译工具步骤2:准备APK文件步骤3:打开终端或命令提示符在你的计算机上打开终端或命令提示符窗口。
如果你使用的是Windows系统,可以按下Win+R组合键,输入“cmd”并按下回车键。
步骤4:进入APK文件所在的目录在终端或命令提示符中输入“cd”命令,然后加上APK文件所在的目录路径,回车进入该目录。
步骤5:执行反编译命令在终端或命令提示符中输入以下命令:apktool d 文件名.apk其中,文件名是你准备反编译的APK文件的文件名。
执行该命令后,apktool将自动解压缩APK文件,并将解压后的文件保存在当前目录。
步骤6:查看反编译结果步骤7:反编译APK的其他方法除了使用apktool之外,你还可以尝试其他的反编译APK的工具。
dex2jar可以将APK文件转换为JAR文件,然后你可以使用Java反编译器对JAR文件进行反编译。
JD-GUI是一个流行的Java反编译器,你可以将JAR文件拖放到JD-GUI的界面中,然后查看反编译后的Java代码。
步骤8:分析和学习通过反编译APK文件,你可以深入了解应用的实现细节、功能实现和资源文件。
你可以借鉴其他应用的设计思路和技术实现方法,提升自己的开发能力。
需要注意的是,在使用反编译工具时,你必须遵守相关法律法规,并尊重其他开发者的知识产权。
只有在合理范围内使用反编译才是合法的,不得用于非法用途。
总结:通过上述步骤,你可以轻松地反编译APK文件。
这个过程可以让你更好地了解应用程序的代码和实现细节,同时也可以为你的开发工作提供参考和借鉴。
但请务必遵守相应法律法规,尊重知识产权。
APK反编译过程
一、用.rar打开apk文档,得到文档结构图如下所示
二、将classes.dex文件解压出来,然后使用工具反编译成.jar文件,再进一步
反编译出java文件
1.在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.用rar解压出jar文件中的class文件,然后用jad或DJ Java Decompiler
反编译工具将.class文件反编译成.java文件
3.不解压出jar中的class文件,直接用JD GUI工具打开jar文件
4.步骤2和3选择其中一个即可,建议用步骤2,步骤3可能出现乱码
三、AndroidManifest.xml等xml文件直接打开也是乱码,完全看不懂,想看看别人是怎么布局的都不容易。
首先下载AXMLPrinter2.jar工具,把下下来的工具和xml文件放到同一个文件夹下,然后在DOS命令下,进入到AXMLPrinter2.jar的目录下,使用命令:java -jar AXMLPrinter2.jar AndroidManifest.xml
即可看到代码。
四、图片可以直接从步骤一中解压出来
五、OK!。
Android 反编译apk 到java源码的方法分类:Android 2010-12-31 15:46 1931人阅读评论(1) 收藏举报Apk文件破解可见源码1.获取apk的资源图片直接用WinRAR打开,res/drawable直接拖拽出来即可。
2.获取xml文件信息虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,需要使用apktool工具,下载地址:https:///p/android-apktool/。
下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS在cmd下进入apktool 所在路径,然后输入apktool d "XXX1" "XXX2",XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径,如:apktool d "C:/taobao.apk" "C:/taobao"3 .反编译dex获取Java源代码Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar,下载地址:/p/dex2jar/。
这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过jad工具把jar文件反编译成Java源文件,jd-gui下载地址:http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip。
详细步骤:解压apk文件,直接拖拽(rar解压软件),找到classes.dex文件在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex 文件所在路径及名称(classes上面解压得到),如:dex2jar.bat D:/classes.dex;这样会生成一个classes.dex.dex2jar.jar文件,然后用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。
APK(安卓手机应用软件)解包汉化过程简单陈述 汉化资料到是整理了不少,自己实践了一下,感觉做一些(除特别的外)基本汉化其实不难,今天跟大家分享一下个人整理收集的资料,有兴趣的朋友可以学习下。
APK文件简介: APK是Android Package的缩写, 即Android application package文件 或Android安装包。
每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为 .apk。
APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。
通过将APK文件直接传到Android手机中执行即可安装。
APK文件其实就是zip格式,但其扩展名被改为apk,在Windows下用解压软件WinRAR/WinZIP/7-Zip可以直接打开。
解压后,你会看到有几个文件和文件夹。
一个典型的APK文件通常有下列内容组成:AndroidManifest.xml 程序全局配置文件classes.dex Dalvik字节码resources.arsc 编译后的二进制资源文件META-INF\ 该目录下存放的是签名信息res\ 该目录存放资源文件assets\ 该目录可以存放一些配置文件下面对这些文件和目录做些基本的注释和介绍:AndroidManifest.xml 该文件是每apk应用程序都必须包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。
classes.dex文件 classes.dex是java源码编译后生成的java字节码文件。
dex 是Dalvik VM executes的全称,即Android Dalvik执行程序。
利用解析工具可以将其转换成java来加以阅读和理解。
resources.arsc 编译后的二进制资源文件。
在做主题美化时要常与这个文件打交道。
META-INF目录 META-INF目录下存放的是签名信息,有三个签名文件,用来保证apk包的完整性和系统的安全。
相关软件:1.Apktool2.notepad++3.Android_Tool_Box这个带签名,编译和反编译,可以换成别的。
自己在用很好环境软件1.XP下需要安装Microsoft .NET Framework V2.0运行库支持2.Java基础知识:Apk文件目录如下:- META-INF- res- anim- color- drawable- drawable-hdpi- drawable-land- drawable-land-hdpi- drawable-mdpi- drawable-port- drawable-port-hdpi- layout- layout-land- layout-port- xml- AndroidManifest.xml- classes.dex- resources.arsc- 多数情况都要汉化的是resources.arsc、classes.dex和res文件夹里的***.xml文件。
- META-INF文件夹里面存放的是证书文件,软件修改后需要将里面的证书文件删除(***.RSA、***.SF、***.MF三个文件)再重新签名,否则软件无法安装。
- res文件夹里存放的大部分是软件所需的资源及布局文件(drawable存放资源、layout、xml存放布局文件***.xml),部分需要汉化的单词、语句会在这些***.xml文件里。
- AndroidManifest.xml文件里包含了软件名称、版本、权限、引用的库文件等信息。
极少数软件在这个文件里会有单词、语句需要汉化。
- classes.dex文件是Java源码编译后的代码文件。
通常该文件里都有单词、语句需要汉化。
- resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。
* 另外,一些需要汉化的***.png图片文件、***.html文件、***.txt文件可能会在assets 文件夹或res/raw文件夹内。
[安卓ROM定制教程4] APK反编译及重编译过程By Ry09iu欢迎关注本人微博获取更多教程: /zuhdroid QQ交流群33616843这篇教程教大家如何反编译apk程序,并且如何重编译为apk。
一般我们在进行ROM美化或者汉化的时候会经常用到反编译apk。
在这里,我们以反编译cm7中system/app/SystemUI.apk为例1、下载我提供的土豆工具箱,原版中apktool工具版本为v1.3.2,我已将之更新为v1.4.2,并为了方便大家使用,修改了原版设定的资源包名称。
土豆工具箱下载:/file/dpfnn81q#土豆ROM工具箱.rar2、下载后解压,得到两个文件和一个文件夹data。
3、当我们反编译某rom中自带的apk时,需要提取该rom的资源包,也就是system/framework/framework-res.apk,提取此文件复制到data目录。
(有些机型的资源包不是这个名字,如果不是,需要手动更改为此名称)4、运行土豆ROM工具箱.bat ,按0,回车,再回车5、加载资源完毕后按回车,然后关闭此窗口,至此,资源包加载完毕,以后如果仍然是反编译这个rom的系统程序,将无需重复导入。
(但如果你之前导入的资源是cm7的,之后你想要反编译官方rom中的程序,那么你需要导入官方rom中的资源包,否则反编译或者重编译会报错)。
6、再次运行土豆ROM工具箱.bat ,按3,回车,这时,土豆工具箱所在的目录生成一个新文件夹“需要解包-apk”,窗口不要关闭,现在复制cm7中的SystemUI.apk到“需要解包-apk”文件夹中,回到工具窗口,按回车,反编译开始,时间长短视程序大小而定,一般不会太久。
7、出现类似如下的提示即为正常,你也可能会遇到报错情况,关于报错的处理,我会单独出教程,一般情况下,cm7中的系统程序不会报错,除非你没加载资源。
》》》SystemUI.apk 解包中...《《《I: Baksmaling...testI: Loading resource table...I: Loaded.I: Loading resource table from file: C:\Documents and Settings\Administrator\apktool\framework\1.apkI: Loaded.I: Decoding file-resources...I: Decoding values*/* XMLs...I: Done.I: Copying assets and libs...》》》SystemUI.apk 解包完成!《《《移动了 1 个文件。
|棕发|之Sophone教程ID:919247600下面我们说一说怎么简单的反编译一个apk软件:
我们需要的软件有:
电脑中必须安装java(这个上网下载就行)
APK反编译及编译工具v132签名版.exe(这个我上传了,下载地址:
开始反编译:
将需要编译的软件与APK反编译及编译工具v132签名版.exe放在同一个文件夹下面,将软件重新命名为124.apk,双击APK反编译及编译工具v132签名版.exe,点击安装。
完成后,APK反编译及编译工具v132签名版.exe会在同一目录下面生成一个APK的文件夹,apk解压下来的东西都在这个文件夹里面:
下面我们开始处理:
①我们可以替换图标/图片:
(最好保持与原包里面的photo大小格式一样,格式必须一致)
②修改软件的内容:
这时候,我们就用到Notepad++这个软件了:如图:
我们修改软件的显示文字:
如果我们修改好了之后,我们还是运行APK反编译及编译工具v132
在APK这个文件夹下面就会出现一个build的文件夹:
里面有两个apk,一个是授权后的,一个是未授权的;
文件的话,未授权的就足以。
【提示说明:如果是安装修改后的软件,请你卸载已经安装在手机的软件,否则会出现无法安装的问题】。