Android APK反编译得到Java源代码和资源文件

合集下载

安卓apk反编译

安卓apk反编译

反编译jar包
• jd-gui.exe
– 直接用此工具打开jar包
如何防止代码被反编译
• 由于apk是Android虚拟机加载的,它有一定的 规范,加密apk的Dalvik无法识别apk了。完全 避免是不可能的,总有人能够破解你的代码。 但是有几种方式来提高 被反编译取代码的难 度。
– 关键代码使用jni调用本地代码,用c或者c++编写, 因此相对比较难于反编译。 – 混淆java代码。混淆是不改变代码逻辑的情况下, 增加无用代码,或者重命名,使反编译后的源代码 难于看懂。网上开源的java代码混淆工具较多,一 般是用ant的方式来编译的
反编译
• • • •
程序的打包与安装过程 反编译资源文件 反编译dex文件 反编译jar包
程序的打包与安装过程
Android package(.apk)
Android project
Compliation And packaging
.dex files
Resource s.sources
Androidmanifest .xml
signin g
Device
反编译资源文件
• 工具
– apktool
• 将xml文件反编译出来,读取应用程序的资源信息
反编译dex文件
• dex2jar
– android应用程序中所有的字节码被放到 classes.dex文件中去 – 将classes.dex编译成classes_dex2jar.jar

Android反编译查看源代码

Android反编译查看源代码

Android是个神奇的货,近两年比较火热,学习他的人也比较多,但是对于很多初学者来说比较头疼,(当然本人也很菜鸟),今天在学习一个安卓项目时,苦于找不到源代码,无奈只好下载网上现成的.apk文件,顿时好奇能不能反编译看到源代码呢?答案是肯定的!让我们行动起来!
首先,我们将文件的后缀名改为.zip。

这时候我们将可以解压这个文件,如图:
此处我们已经看到一个压缩文件了,打开它。

注意我们的重点是.dex 文件
这个classes.dex是个好东西呀!
然后,然后……
我们需要下两个软件:
dex2jar下载地址:/p/dex2jar/
JD-GUI下载地址:http://java.decompiler.free.fr/?q=jdgui
把我们刚找到的classes.dex拷贝到dex2jar的目录下吧(与dex2jar.bat在同一个目录下),然后运行dex2jar.bat classes.dex,将会生成一个文件classes_dex2jar.jar。

快OK 啦~~~~
运行jd-gui.exe 直接将classes_dex2jar.jar 拖进去吧,瞧!我们要的出来了!。

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.如果接收到的短信以”,”开始,则清除控制信息,同时提取短信中的号码并发送报告。

安卓脱壳机原理

安卓脱壳机原理

安卓脱壳机是一种用于提取安卓应用程序(APK)的工具,它的原理是通过解析APK文件,提取其中的代码和资源文件。

具体来说,安卓脱壳机的工作流程如下:
1. 解析APK文件:安卓脱壳机首先会解析APK文件的结构,包括AndroidManifest.xml文件、classes.dex文件和资源文件等。

2. 提取DEX文件:安卓应用程序的核心代码是存储在classes.dex文件中的,安卓脱壳机会提取出这个DEX文件。

3. 反编译DEX文件:安卓脱壳机会对提取出的DEX文件进行反编译,将其转换为可读的Java代码。

4. 提取资源文件:安卓应用程序还包含一些资源文件,如图片、音频等,安卓脱壳机会将这些资源文件提取出来。

通过以上步骤,安卓脱壳机可以将APK文件中的代码和资源提取出来,方便进行分析和修改。

这对于安全研究人员、逆向工程师和开发者来说是非常有用的。

需要注意的是,使用安卓脱壳机进行逆向工程可能涉及到法律和道德问题,应该
遵守相关法律法规和道德准则。

Android APK反编译得到Java源代码和资源文件

Android APK反编译得到Java源代码和资源文件

Android APK反编译得到Java源代码和资源文件一、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件工具下载:地址:/p/android-apktool/downloads/list如下图,途中红圈的两个都要下载。

将上面2个文件解压到同一个文件夹下面,将有3个文件被解压出来,如下图所示打开cmd命令行窗口定位到刚才解压的文件夹下,即apktool.bat所在的文件夹,如下图所示1. 将APK反编译将待反编译的apk文件放到c盘根目录下,特别注意,一定要放到根目录下。

输入反编译命令apktool d c:\xxxxx.apk c:\***文件夹命令行解释:apktool d [要反编译的apk文件] [输出文件夹]如:注意:demo文件夹不能是已存在的文件夹,否则会报错2. 将反编译完的文件重新打包成APK很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可。

二、反编译apk得到Java源代码工具下载:dex2jar:/p/dex2jar/downloads/listJD-GUI:/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zi p&can=2&q=如下图的两个文件:具体步骤:1. 解压上面两个压缩文件。

2. 从apk文件中解压出classes.dex,将它复制到dex2jar.bat所在的文件夹下3. 命令行下定位到dex2jar.bat所在的目录,然后运行dex2jar.bat classes.dex如图:注:classes.dex不一定要复制到这个文件夹下,在其前面加上路径也是一样的,这里只是为了输命令方便。

如上图所示,看到Done表示成功,将得到下图中红圈内所示的jar文件4. 然后双击jd-gui.exe,打开刚才生成的jar文件,即可看到下图如此,便可看到代码了。

附上上文中所有用到的工具:apk2android.rar在此郑重声明:分享此文,不是为了破解别人的软件,完全是一种学习态度,代码要自己手敲出来才会有感情的。

AndroidStudio反编译APK获取代码资源

AndroidStudio反编译APK获取代码资源

AndroidStudio反编译APK获取代码资源
1.要准备的三个⼯具
1. apktool:获取资源⽂件,提取图⽚⽂件,布局⽂件,还有⼀些XML的资源⽂件
2. dex2jar:将APK反编译成Java源码(将classes.dex转化为jar⽂件)
3. jd-gui:查看2中转换后的jar⽂件,即查看Java⽂件
2.使⽤apktool反编译APK获得图⽚与XML资源:
把下载好的apktool解压后,我们可以看到下述⽂件(忽略那两个csdn,⼀个是反编译的apk,⼀个是反编译后⽂件):
接下来,双击cmd.exe,来到命令⾏,键⼊: apktool.bat d csdn.apk 即可,Enter回车:
然后就可以看到⽣成的csdn⽂件夹,⾥⾯就有我们想要资源
好的,就是XML资源到⼿了是吧!图⽚素材也到⼿了!
3.使⽤dex2jar将classes.dex转换成jar⽂件:
把下载好的dex2jar⽂件夹解压,apk解压后中的classes.dex复制到dex2jar.bat所在的⽬录下:
打开cmd,来到这个⽬录下:键⼊:d2j-dex2jar.bat classes.dex
接着我们可以看到,⽣成了⼀个jar包:
好的,转换完成!
4.使⽤jd-gui查看jar包中的Java代码:
好的,打开jd-gui的⽂件夹
打开后,打开我们3中转换后的jar包,我们可以看见⾥⾯的代码:
csdn的客户端竟然不混淆代码...可能是本着开源的精神吧,给我们学习代码吧!⼀般的话,apk发布都会进⾏混淆,然后进⾏⼀些加密,或者使⽤第三⽅的加密平台,⽤的⽐较多的"爱加密",有兴趣的也⾃⾏百度查看更加详细的介绍!。

AndroidApk的破解:反编译、修改资源代码、重新打包、签名

AndroidApk的破解:反编译、修改资源代码、重新打包、签名

AndroidApk的破解:反编译、修改资源代码、重新打包、签名⼯具准备apktool附上Mac安装说明:Download Mac (Right click, Save Link As apktool)Download apktool-2 ()Rename downloaded jar to apktool.jarMove both files (apktool.jar & apktool) to /usr/local/bin (root needed)Make sure both files are executable (chmod +x)Try running apktool via cli问题:⽣成的都是smail ⽂件,JD-GUI能查看jar⽂件。

dex2jarTools to work with android .dex and java .class filesJD-GUIJava Decompiler实验步骤提取资源$apktool d xxx.apk提取jar将xxx.apk改名成xxx.apk.zip,⽤压缩⼯具解压⽂件,得到classes.dex⽂件。

运⾏d2j-dex2jar.sh classes.dex, 得到classes-dex2jar.jar$cd dex2jar-2.0/$chmod u+x *.sh$cd ../xxx.apk/$../dex2jar-2.0/d2j-dex2jar.sh classes.dex查看java代码使⽤JD-GUI打开classes-dex2jar.jar,界⾯中选择class⽂件即可查看java代码。

修改代码注意,修改代码及资源,最好的⽅式是修改apktool反编译后的资源级smali代码。

JD-GUI查看的java代码不适宜修改,因为修改后还需要重新转换成smali,才能重新编译打包会apk。

⾄于smali的修改,则要学习smali语⾔的语法了,smali是⼀种类似汇编语⾔的语⾔,具体语法可⾃⾏上⽹学习。

详解Android的反编译和代码混淆

详解Android的反编译和代码混淆

详解Android的反编译和代码混淆前⾔包括以下内容1. 要反编译apk需要下⾯3个⼯具2. 反编译资源⽂件3. 反编译类⽂件4. 代码混淆要反编译apk需要下⾯3个⼯具1、apktool(资源⽂件获取)作⽤:资源⽂件获取,可以提取图⽚⽂件和布局⽂件进⾏使⽤查看2、dex2jar(源⽂件获取)作⽤:将APK反编译成java源码(classes.dex转化成jar⽂件)3、jd-gui作⽤:查看APK中classes.dex转化成的jar⽂件,即源码⽂件下⾯进⾏反编译资源⽂件和类⽂件:反编译资源⽂件资源⽂件:包括图⽚资源、布局资源、动画、样式等其他资源这样资源⽂件都可以看得到了。

反编译类⽂件⽅式⼀:反编译得到Java类1.下载并解压dex2jar-2.0,得到dex2jar-2.0⽂件夹,⾥⾯包含dex2jar.bat及其⽂件2.将apk⽂件改为xx.zip⽂件,并解压得到classes.dex⽂件,并将其复制到dex2jar-2.0⽂件夹中3⽣成⼀个classes-dex2jar.jar⽂件,使⽤jd-gui.exe打开⽣成的classes-dex2jar.jar⽂件⽅式⼆:直接使⽤smali2java⼯具什么是smali?smali是将Android字节码⽤可阅读的字符串形式表现出来的⼀种语⾔,可以称之为Android字节码的反汇编语⾔。

代码混淆只能混淆java类,不能混淆资源⽂件。

系统定义的组件不能混淆。

必须是导出的apk。

如何实现代码混淆混淆类⽂件修改module:app下的build.gradlebuildTypes {release {//是否需要混淆,默认false代表不混淆,true代表混淆minifyEnabled true//混淆需要⽤到的⼀个⼯具:proguard,对应的⼀个⽂件是:proguard-android.txt(这个⽂件在android-sdk \tools\proguard⽬录下)//proguard是⼀个压缩、优化和混淆Java字节码⽂件的免费⼯具proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}在proguard-rules.pro中添加:把下⾯代码,放⼊proguard-rules.pro⽂末:#指定代码的压缩级别-optimizationpasses 5#包明不混合⼤⼩写-dontusemixedcaseclassnames#不去忽略⾮公共的库类-dontskipnonpubliclibraryclasses#优化不优化输⼊的类⽂件-dontoptimize#预校验-dontpreverify#混淆时是否记录⽇志-verbose# 混淆时所采⽤的算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#保护注解-keepattributes *Annotation*# 保持哪些类不被混淆-keep public class * extends android.app.Fragment-keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service-keep public class * extends android.content.BroadcastReceiver-keep public class * extends android.content.ContentProvider-keep public class * extends android.app.backup.BackupAgentHelper-keep public class * extends android.preference.Preference-keep public class com.android.vending.licensing.ILicensingService#如果有引⽤v4包可以添加下⾯这⾏-keep public class * extends android.support.v4.app.Fragment#忽略警告-ignorewarning##记录⽣成的⽇志数据,gradle build时在本项⽬根⽬录输出###apk 包内所有 class 的内部结构-dump class_files.txt#未混淆的类和成员-printseeds seeds.txt#列出从 apk 中删除的代码-printusage unused.txt#混淆前后的映射-printmapping mapping.txt########记录⽣成的⽇志数据,gradle build时在本项⽬根⽬录输出-end###### #####混淆保护⾃⼰项⽬的部分代码以及引⽤的第三⽅jar包library########-libraryjars libs/umeng-analytics-v5.2.4.jar#三星应⽤市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar#-libraryjars libs/sdk-v1.0.0.jar#-libraryjars libs/look-v1.0.1.jar#如果不想混淆 keep 掉-keep class com.lippi.recorder.iirfilterdesigner.** {*; }#友盟-keep class com.umeng.**{*;}#项⽬特殊处理代码#忽略警告-dontwarn com.lippi.recorder.utils**#保留⼀个完整的包-keep class com.lippi.recorder.utils.** {*;}-keep class com.lippi.recorder.utils.AudioRecorder{*;}#如果引⽤了v4或者v7包-dontwarn android.support.**####混淆保护⾃⼰项⽬的部分代码以及引⽤的第三⽅jar包library-end####-keep public class * extends android.view.View {public <init>(android.content.Context);public <init>(android.content.Context, android.util.AttributeSet);public <init>(android.content.Context, android.util.AttributeSet, int);public void set*(...);}#保持 native ⽅法不被混淆-keepclasseswithmembernames class * {native <methods>;}#保持⾃定义控件类不被混淆-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);}#保持⾃定义控件类不被混淆-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);}#保持 Parcelable 不被混淆-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}#保持 Serializable 不被混淆-keepnames class * implements java.io.Serializable#保持 Serializable 不被混淆并且enum 类也不被混淆-keepclassmembers class * implements java.io.Serializable {static final long serialVersionUID;private static final java.io.ObjectStreamField[] serialPersistentFields;!static !transient <fields>;!private <fields>;!private <methods>;private void writeObject(java.io.ObjectOutputStream);private void readObject(java.io.ObjectInputStream);ng.Object writeReplace();ng.Object readResolve();}#保持枚举 enum 类不被混淆如果混淆报错,建议直接使⽤上⾯的 -keepclassmembers class * implements java.io.Serializable即可#-keepclassmembers enum * {# public static **[] values();# public static ** valueOf(ng.String);#}-keepclassmembers class * {public void *ButtonClicked(android.view.View);}#不混淆资源类-keepclassmembers class **.R$* {public static <fields>;}#避免混淆泛型如果混淆报错建议关掉#–keepattributes Signature#移除log 测试了下没有⽤还是建议⾃⼰定义⼀个开关控制是否输出⽇志#-assumenosideeffects class android.util.Log {# public static boolean isLoggable(ng.String, int);# public static int v(...);# public static int i(...);# public static int w(...);# public static int d(...);# public static int e(...);#}#如果⽤⽤到Gson解析包的,直接添加下⾯这⼏⾏就能成功混淆,不然会报错。

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反编译过程
一、用.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!。

安卓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文件,即可看到源代码
来源:清源教育。

Android_反编译apk_到java源码的方法

Android_反编译apk_到java源码的方法

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文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。

android反编译

android反编译
的dist文件夹下,Ok 三、 图形化反编译apk • 一种图形化反编译工具:Androidfby • 首先,下载上述反编译工具包,打开
Androidfby目录,双击Android反编译工具.exe ,就可以浏览打开要反编译的apk
第8页/共9页
Android NDK
为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易 被反编译,而C/C++库反汇难度较大。 2. 在NDK中调用第三方C/C++库,因为大部分 的开源库都是用C/C++代码编写的。 3. 便于移植,用C/C++写得库可以方便在其他 的嵌入式平台上再次使用。
第9页/共9页
apktool.jar • 在命令行下定位到apktool.bat文件夹,输入以下命令:
apktool.bat d -f abc123.apk abc123,如下图:
第5页/共9页
第6页/共9页
• 上图中,apktool.bat 命令行解释: apktool.bat d -f [apk文件 ] [输出文件夹]
第2页/共9页
• 具体步骤:
• 首先将apk文件后缀改为zip并解压,得到其中 的classes.dex,它就是java文件编译再通过dx 工具打包而成的,将classes.dex复制到 dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。
• 在命令行下定位到dex2jar.bat所在目录,运行
• dex2jar.bat classes.dex
• 生成
•classes_dex2jar.jar
然后,进入jdgui文件夹双击jd-gui.exe,打开上

Android软件代码反编译方法

Android软件代码反编译方法

Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe 的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。

所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。

Google最然在Android Market上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。

dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中:D:\ProgramFiles\android-sdk-windows-1.6_r1\platforms\android-1.6\tools> dexdump.exe -d classes.dex > spk.dump.txt得到的文件内容,描述了类的信息,但是不怎么好阅读这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。

baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具操作方式如下:1.1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml >AndroidManifest.txt2.2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt3.3、java -jar baksmali-1.2.5.jar -o classout/d:\play\classes.dex复制代码baksmali可解析(注意,是解析,不是反编译)原java包以及引用的lib包,解析出的文件认真看还是能看懂,比如以下片段:1.2.3.view plaincopy to clipboardprint?4..class Lcom/paul/test/a;5..super Landroid/view/View;6.7.# static fields8..field private static final a:Landroid/graphics/Typeface;9.10.# instance fields11..field private b:I12..field private c:I13..field private d:Z14..field private e:J15..field private f:I16..field private l:[Ljava/lang/String;17.18.# direct methods19..method static constructor <clinit>()V20. .registers 221. sget-object v0,Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;22. const/4 v1, 0x023. invoke-static {v0, v1},Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)La ndroid/graphics/Typeface;24. move-result-object v025. sput-object v0,Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;26. return-void27..end method28.#29.# other methods ..........30.#31.# virtual methods32..method public onKeyUp(ILandroid/view/KeyEvent;)Z33. .registers 434. const/16 v0, 0x4235. if-eq p1, v0, :cond_836. const/16 v0, 0x1737. if-ne p1, v0, :cond_b38. :cond_839. invoke-direct {p0}, Lcom/paul/test/a;->d()V40. :cond_b41. const/4 v0, 0x042. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V43. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z44. move-result v045. return v046..end method47..class Lcom/paul/test/a;48..super Landroid/view/View;49.50.# static fields51..field private static final a:Landroid/graphics/Typeface;52.53.# instance fields54..field private b:I55..field private c:I56..field private d:Z57..field private e:J58..field private f:I59..field private l:[Ljava/lang/String;60.61.# direct methods62..method static constructor <clinit>()V63. .registers 264. sget-object v0,Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;65. const/4 v1, 0x066. invoke-static {v0, v1},Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)La ndroid/graphics/Typeface;67. move-result-object v068. sput-object v0,Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;69. return-void70..end method71.#72.# other methods ..........73.#74.# virtual methods75..method public onKeyUp(ILandroid/view/KeyEvent;)Z76. .registers 477. const/16 v0, 0x4278. if-eq p1, v0, :cond_879. const/16 v0, 0x1780. if-ne p1, v0, :cond_b81. :cond_882. invoke-direct {p0}, Lcom/paul/test/a;->d()V83. :cond_b84. const/4 v0, 0x085. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V86. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z87. move-result v088. return v089..end method90.复制代码认真一看,就知道:# static fields 定义静态变量的标记# instance fields 定义实例变量的标记# direct methods 定义静态方法的标记# virtual methods 定义非静态方法的标记以onKeyUp方法为例,其中定义了处理逻辑,if-eq p1, v0, :cond_8 表示如果p1和v0相等,则执行cond_8的流程:1.2. :cond_83. invoke-direct {p0}, Lcom/paul/test/a;->d()V4.复制代码调用com.paul.test.a的d()方法不相等:if-ne p1, v0, :cond_b 则执行cond_b的流程:1.2. :cond_b3. const/4 v0, 0x04.5. invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V6.7. invoke-super {p0, p1, p2},Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z 8.9. move-result v010.复制代码大概意思就是调用com.paul.test.a的setPressed方法,然后再调用父类View的onKeyUp方法最后1.return v0复制代码该方法,能把外部引用的lib包类也解析出来,能开到包的全貌。

反编译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。

Android开发学习总结(六)——APK反编译

Android开发学习总结(六)——APK反编译

Android开发学习总结(六)——APK反编译 学习和开发Android应⽤有⼀段时间了,今天写⼀篇博客总结⼀下Android的apk⽂件反编译。

我们知道,Android应⽤开发完成之后,我们最终都会将应⽤打包成⼀个apk⽂件,然后让⽤户通过⼿机或者平板电脑下载下来进⾏安装。

正常情况下,Android应⽤打包成apk之后,就⽆法再看到开发这个应⽤时使⽤的资源⽂件以及代码了。

但是我们通过⽹上提供了⼀些⼯具,还是可以将apk进⾏反编译的,apk反编译之后,我们就可以看到开发这个应⽤使⽤的资源⽂件(图⽚)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中⼀个⽐较实⽤的技巧吧,当我们对别⼈开发好的应⽤感兴趣时,我们就可以通过这种技术⼿段将别⼈打包好的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下载地址: 下载好之后得到⼀个如下图所⽰的jar⽂件 dex2jar下载地址: 下载完成之后,得到⼀个如下图所⽰的压缩包 jd-gui下载地址: 下载完成之后,得到⼀个如下图所⽰的压缩包: 到此,需要使⽤到的3个相关⼯具都下载好了,在这⾥说明⼀下jd-gui的下载,我从官⽅⽹站上点击下载时会经常出现如下图所⽰的问题 但是多试⼏次⼜可以下载了,所以如果有遇到这个问题的朋友们不妨多试⼏次,或者从别的地⽅下载jd-gui,jd-gui算是做Java开发的⼀个必备⼯具了,⽤它来将class反编译成java源代码是⾮常⽅便的,⽹上搜索⼀下⼀般都可以下载到,只不过版本不⼀定是最新的。

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包反编译成java文件

androidapk包反编译成java文件

androidapk包反编译成java⽂件
最近公司做了⼀个app项⽬,安装成功后使⽤了⼀段时间,发现了⼀些问题需要修改,但外包公司没有提供源码,为了快速修改并解决问题,公司决定⾃⼰动⼿反编译apk包,经过查询资料,使⽤以下⽅法可以完成。

⼀、把apk包后缀改为zip
⼆、解压Zip得到classes.dex⽂件
三、
我们需要⽤到dex2jar 把dex⽂件转为jar⽂件
把解压得到的classes.dex⽂件放⼊dex2jar.bat所在⽬录
四、在classes.dex所在⽂件夹下shift+右键--》在此处打开命令窗⼝-->输⼊启动⽂件名(.bat⽂件名)
和classes.dex
成功后会在classes.dex⽂件夹⽣成对应的jar包
五、下载jd-gui(本⼈把它称作:京东-贵)
下载后解压得到
六、双击
得到:
七、点击file--》open找到对应的jar包就可以得到对应的java⽂件了,然后file--》saveallsources保存即可得到java源码。

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

Android APK反编译得到Java源代码和资源文件2011年3月9日iStar发表评论阅读评论这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

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

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

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

在命令行下定位到dex2jar.bat所在目录,运行dex2jar.bat classes.dex生成classes.dex.dex2jar.jar3.运行JD-GUI,打开上面生成的jar包,即可看到源代码了。

二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件如果是只是汉化软件,这将特别有用。

首先还是下载工具,这次用到的是apktool,下载地址:/p/android-apktool/,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

具体步骤:1.将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar;2.在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\***.apk C:\***文件夹命令行解释:apktool d [要反编译的apk文件 ] [输出文件夹],特别注意:你要反编译的文件一定要放在C盘的根目录里;3.将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可。

dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。

dex2jar下载地址:/files/dex2jar-0.0.7-SNAPSHOT.zipJD-GUI下载地址:windows版JD-GUI:/files/jdgui.zipLinux版JD-GUI:/files/jd-gui-0.3.2.linux.i686.tar.gz1.首先找到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.jarUbuntu系统下:(3楼正解!)在终端下定位到dex2jar.sh所在目录,运行sh dex2jar.sh classes.dex则可生成classes.dex.dex2jar.jar3.运行JD-GUI工具(它是绿色无须安装的)打开上面的jar文件,即可看到源代码一个APK反编译利器Apktool(android汉化)2010-07-19 18:52 转载自:/s/blog_5752764e0100kv34.htmlAPK 本地化[/viewthread.php?tid=3873]说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做。

但是实际1、Hex Workshop操作繁琐,经常出现搜不到想要修改的字符的情况;2、Android ResEdit简单用用可以,修改稍微复杂一点就会出现整条整条丢字符串的情况;并且——谁能保证我的本地化语言就一定比原来的短呢?现在好了,老外写的《android-apktool》软件,可以帮助我们把APK反编译,生成程序的源代码言资源等文件。

我们对图片和语言资源等文件修改后,可以再把它们编译打包成APK,签名后就化/修正版APK了。

《android-apktool》软件软件可以访问它的主页/p/android-apktool/下0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

下载后解开,为了方把得到的4个文件复制到C:\Windows文件夹里。

这个工具是Java写的,需要你的电脑安装了JRE或者JDK,并在系统环境变量Path里加入java.以上准备工作做好后,就可以用它来反编译APK了。

这里我用动态壁纸的APK来做示范。

如果用过动态壁纸,你也许会发现在设置壁纸时,界面的显示有点问题:“动态壁纸”,在手机上中这是“动态壁纸选择器”LiveWallpapersPicker.a pk的翻译错误造成的。

(假设LiveWallpapersPicker.apk放在C盘根目录)开始 > 运行,输入cmd,回车。

1.apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker"复制代码(命令行解释:apktool d 要反编译的文件输出文件夹)这样,LiveWallpapersPicker.apk就被反编译了,输出内容在C:\LiveWallpapersPicker文件夹打开C:\LiveWallpapersPicker文件夹,我们发现里面有一些XML文件和一些文件夹。

绝大部分源都在res文件夹里,我们这个例子当然不例外。

打开res文件夹,可以其中又是很多文件夹。

(又是)绝大部分情况下,语言资源都放在values* es放默认语言(英语居多),values-de放德语,values-fr放法语等等。

一般我们关心的是valu 和values-zh- rTW(繁体中文)。

打开values-zh-rCN文件夹,其中有个strings.xml。

打开看看:<?xml version="1.0" encoding="UTF-8"?><resources><string name="application_name">动态壁纸选择器</string><string name="live_wallpaper_picker_title">当前壁纸</string><string name="live_wallpaper_preview_title">当前壁纸预览</string><string name="configure_wallpaper">设置...</string><string name="wallpaper_instructions">设置壁纸</string><string name="live_wallpaper_empty">无当前壁纸。

</string><string name="set_live_wallpaper">设置壁纸</string><string name="wallpaper_title_and_author">%1$s提供者:%2$s</string><string name="live_wallpaper_loading">正在载入当前壁纸…</string></resources>很好,就是它了。

把“当前壁纸”都改为“动态壁纸”,再检查和修正标点——中文内容用中文标标点问题,目前马大哈太多了)后,保存。

本例改这么多就够了。

其它复杂的APK建议把res文件夹里的内容都检查下,至少你关心的语言下。

改完后,就可以重打包了。

还是在cmd命令行里,输入:1.apktool b "C:\LiveWallpapersPicker"复制代码(命令行解释:apktool b 要打包内容所在文件夹)就可以了。

生成的APK在C:\LiveWallpapersPicker\dist文件夹里,叫out.apk。

这个out.apk是没有签名的,所以不能直接装到手机里。

签名工具和方法见http://www.hiapk.c 1-1.html,这里不说了。

签名后得到的APK,就是可以装到手机里的了。

操练:去掉免费版软件的广告条[/viewthread.php?tid=18082]打开google code发现Apktool更新了,居然支持win了。

那本文就是一篇介绍在windows环境下使用Apktool的笔记。

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

成功了。

Apktool 命令apktool d XXX.apk ABC 反编译 XXX.apk到文件夹ABCapktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk然后我们反编译一枚软件玩玩…AutoMemoryManager的免费版底部有一条广告,去掉它吧。

把com.lim.android.automemman.apk放到同文件夹(我的就是E盘根目录)Win+R 运行CMDE:<回车>E:\>apktool d com.lim.android.automemman.apk AMM <回车>I: Baksmaling…I: Decoding resource table…I: Decoding resources…I: Copying assets and libs…现在文件被decode到E:\AMM了,打开E:\AMM\res\layout\main.xml看,所有都可见了吧~编辑第59行<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_paren eight=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#f eywords=”Android application” />改为<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” a =”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” a ndroid application” />然后CMD输入E:\>apktool b AMMI: Checking whether sources has changed…I: Smaling…I: Checking whether resources has changed…I: Building resources…I: Building apk file…用Auto-sign签名E:\AMM\dist\out.apk 安装这样广告就不见了再看,嘿嘿~很帅吧…这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了windows下安装APK文件到Android模拟器的方法2010-07-20 18:29文章转载自:/html/201003/1268078962ID1594.html一、安装APK文件到模拟器Android手机使用的执行文件为APK格式,类似于Windows平台的exe文件。

相关文档
最新文档