当前位置:文档之家› apk反编译文件夹详解

apk反编译文件夹详解

apk反编译文件夹详解
apk反编译文件夹详解

反编译:

反编译apk得到的几个文件和文件夹

1。 assets 文件夹

此文件夹可以存放资源文件。至于是神马资源文件,怎么读取,这些我们就不用深究了,因为不常改。

2。 res 文件夹

主要用来存放资源。此文件夹下可以创建子文件,常见的有:

anim 动画

drawable 图片

color 颜色

menu 菜单

layout 布局

values 常量值

xml 任意xml文件

我们修改apk时,一般就在这里修改。比如汉化,改名称,去广告,改字体颜色,大小神马的。

3。smali

里面主要是dex文件反编译得到的smali文件。不会java的改不起。顶多搜几个关键词汉化一下。值得注意的是,汉化时不能直接输入汉字,而应输入对应的十六进制代码。

4。AndroidManifest.xml

此文件是apk中最重要的文件之一。它是apk的全局配置文件,提供了android系统所需要的关于该应用的必要信息。

res目录浅说:

1 anim文件夹

后缀名为.xml。动画文件都放在这里。

2 drawable文件夹

用于存放图片资源,图片或者xml。

(1) 图片

图片格式:png,9.png,jpg,gif。

注意:9.png是一种特殊的png格式,与一般的png格式有区别!很多人在改完图片后将两种格式混淆,导致回编译失败。后面有制作9.png格式图片的方法。

(2) xml

xml文件通常为自定义的形状shape或图片选择器类selector似的东西,就是不同状态下不同的图片,用于设置background什么的。

(3) drawable文件夹为了对屏幕的适配,

①对分辨率笼统的分:名字可以为:drawable-ldpi

drawable-mdpi

drawable-hdpi

drawable-xhdp

drawable-nodpi

drawable-tvdpi

分辨率依次由高到低

②具体到某一分辨率:drawable-分辨率,比如:drawable-1280x720

③如果有横竖屏的区别,则命名为:drawable-land/port-mdpi,

3 color文件夹

用于存放color列表,和drawable的xml一样,表示不同状态下的不同颜色

4 menu文件夹

菜单资源文件夹。

5 layout文件夹

布局文件夹。此文件夹的名字也是可以起到屏幕适配的功能的。

①横竖屏:layout-land/port

②分辨率:layout-1280x720

6 values文件夹

存放常量值的文件夹。里面常见的xml文件为:

arrays.xml :资源数组.

colors.xml : 颜色值

dimens.xml :像素值.

strings.xml :字符串值.

styles.xml :样式值.

此文件夹,也有屏幕适配作用。比如:dimens在不同分辨率下的值。同样的是加-1280x720这样的后缀。

对于strings,values文件夹有各种语言的版本对应。默认为英文。中文的文件夹名字应该是:

values-zh-rCN 简体中文

values-zh-rTW 繁体中文

7 raw文件夹

存放不需要系统编译成二进制的文件,例如字体文件等,同assets文件夹类似。

8 xml文件夹

存放任意的xml文件。具体看名字。

改apk时,我们主要改两种,即图片和xml。先讲图片:

改图片最简单了,注意好格式,分辨率即可。但有一点需注意,就是9.png和png格式图片的区别。许多人没注意这点,导致回编译总是失败。下面讲9.png格式图片的制作。

1 介绍 9patch

NinePatch.图片以*.9.png结尾,和普通图片的区别是四周多了一个边框

左边那条黑色线代表图片垂直拉伸的区域,上边的那条黑色线代表水平拉伸区域,右边的黑色线代表内容绘制的垂直区域,下边的黑色线代表内容绘制的水平区域,右边和下边的线是可选的,左边和上边的线不能省略。

采用NinePatch.图片做背景,可使背景随着内容的拉伸(缩小)而拉伸(缩小)

总之,通俗的将,9patch格式的图片就是有些部位能伸缩,有些部位

不能的特殊png格式图片。

2 将png转化为9.png步骤如下

第一步,下载9妹工具,一楼工具包里有,双击打开draw9patch.bat,将图片拖到软件界面编辑。

第二步,勾选软件下面的三个选项,全选就对了。

第三步,把鼠标放到图片中央,此时你会看到图片四周有1像素的透

明带

第四步,在左边和上边的透明带上各画一条黑线(鼠标拖动即可)

注意:当图片过大时上边的透明带会被黄色的提示框遮住,此时只能

多点击黄色区域自己摸索透明带的位置。

第五步,保存,这个不用多说吧。

至此,将图片替换回原来的文件夹即可。需要注意的是,刚编辑的

9patch.图片不能直接拖到原apk中,而应回编译后再替换进去。

再说修改xml。改字体,软件全局背景,汉化,去广告神马的都通过

这种方式。我们常改的是layout,drawable,values目录下的xml文件,如果要改桌面插件,要去xml文件夹中修改。必要时也可尝试修

改AndroidManifest.xml。下面是常见代码(分类非标准)

1 引用(@)

1)引用自定义的资源

形式 @[package:]type/name

如 android:text="@string/hello"

这里使用"@"前缀引入对一个资源的引用,后面的string/hello就是我

们自定义的资源。

2) 引用系统资源

形式 @android:type/name

如 android:textColor="@android:color/opaque_red" 指定

package:android

3) 引用主题属性

形式?android:type/name

即引用当前主题中的属性的值。

2 文本(text)

textColor 文本颜色

textColorHighlight 被选中文字的底色,默认为蓝色textColorHint 提示信息文字的颜色,默认为灰色。与hint一起使用textColorLink 文字链接的颜色

textScaleX 设置文字之间间隔,默认为1.0f

textSize 文字大小

textStyle 字形

typeface 文本字体

height 文本区域的高度

maxHeight 文本区域的最大高度

width 文本区域的宽度

lines 文本的行数

3 视图(view)

background 背景色/背景图片(@null透明)

clickable 是否响应点击事件

focusable 是否获得焦点

minHeight 视图最小高度

minWidth 视图最小宽度

padding 上下左右的边距

scrollbar 滚动条(none 隐藏,horizontal 水平,vertical 垂直)

tag 文本标签

visibility 是否显示View(visible 默认值,显示;invisible 不显示,但是仍然占用空间;gone 不显示,不占用空间)

4 布局(layout)

LinearLayout 线性布局

FrameLayout 单帧布局

RelativeLayout 相对布局

AbsoluteLayout 绝对布局

TableLayout 表格布局

layout_width 宽度

layout_height 高度

fill_patent 布满屏幕

wrap_content 适合大小

foreground 前景

background 背景

gravity 位置(center_vertical 居中;top 顶部,默认;bottom 底部)orientation 定向(horizontal 水平,vertical 垂直)

5 主题(theme)

Theme.Dialog 对话框模式

Theme.NoTitleBar 无标题栏

Theme.NoTitleBar.Fullscreen 无标题栏,全屏

Theme.Light 白色背景

Theme.Light.NoTitleBar 白色背景,无标题栏

Theme.Light.NoTitleBar.Fullscreen 白色背景,无标题栏,全屏Theme.Black 黑色背景

Theme.Black.NoTitleBar 黑色背景并,无标题栏

Theme.Black.NoTitleBar.Fullscreen 黑色背景,无标题栏,全屏Theme.Wallpaper 桌面背景

Theme.Wallpaper.NoTitleBar 桌面背景,无标题栏

Theme.Wallpaper.NoTitleBar.Fullscreen 桌面背景,无标题栏,全屏Theme.Translucent 半透明效果

Theme.Translucent.NoTitleBar 半透明,无标题栏

Theme.Translucent.NoTitleBar.Fullscreen 半透明效果,无标题栏,全屏

Theme.Panel 面板风格显示

Theme.Light.Panel 平板风格显示

6 颜色(color)

1) @color/××引用自定义的颜色,一般在res/values/colors.xml中

2) @android:color/××引用系统颜色

3) #×××××××× #后一共8个字符,由0~9,a~f组成。前两位是透明度,00表示全透明,ff表示不透明。后6位是RRGGBB,R红G绿B蓝,000000为白,ffffff为黑

7 单位

px 像素点

in 英寸

mm 毫米

pt 磅,1/72 英寸

dp 一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip 等同于dp

sp 同dp相似,但还会根据用户的字体大小偏好来缩放。

注意:sp一般是文本的单位,dip最常用

Android如何防止apk程序被反编译

Android如何防止apk程序被反编译 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk- windows\tools\lib\proguard.cfg的内容: [html] -optimizationpasses 5n -dontusemixedcaseclassnamesn -dontskipnonpubliclibraryclassesn -dontpreverifyn -verbosen -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*n -keep public class * extends android.app.Activityn -keep public class * extends android.app.Applicationn -keep public class * extends android.app.Servicen -keep public class * extends android.content.BroadcastReceivern -keep public class * extends android.content.ContentProvidern -keep public class * extends android.app.backup.BackupAgentHelpern -keep public class * extends android.preference.Preferencen -keep public class com.android.vending.licensing.ILicensingServicen -keepclasseswithmembernames class * {n nnn native ;n }n -keepclasseswithmembernames class * {n nnn public (android.content.Context, android.util.AttributeSet);n }n -keepclasseswithmembernames class * {n nnn public (android.content.Context, android.util.AttributeSet, int);n }n -keepclassmembers enum * {n nnn public static **[] values();n nnn public static ** valueOf(https://www.doczj.com/doc/2d14507921.html,ng.String);n }n -keep class * implements android.os.Parcelable {n n public static final android.os.Parcelable$Creator *;n }n 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService, 并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考/examples中的例子及注释。) 让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了 完整的default.properties文件应该如下: [html] n# This file is automatically generated by Android Tools.n # Do not modify this file --YOUR CHANGES WILL BE ERASED!n #n # This file must be checked in Version Control Systems.n #n # To customize properties used by the Ant build system use,n # "build.properties", and override values to adapt the script to yourn # project structure.n # Project target.n target=android-9n proguard.config=proguard.cfgn 大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的: 如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可\

APK文件的解包打包和修改

APK文件的解包打包和修改 相信每位玩机的人对APK文件都不陌生。你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。。。你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。 1.APK文件简介 APK是Android Package的缩写,即即Android application package文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。一个典型的APK文件通常有下列内容组成:AndroidManifest.xml程序全局配置文件 classes.dex Dalvik字节码 resources.arsc编译后的二进制资源文件

META-INF\该目录下存放的是签名信息 res\该目录存放资源文件 assets\该目录可以存放一些配置文件 下面对这些文件和目录做些基本的注释和介绍。?AndroidManifest.xml 该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。 ?classes.dex文件 classes.dex是java源码编译后生成的java字节码文件。dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。 ?resources.arsc 编译后的二进制资源文件。 ?META-INF目录 META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染

Apk反编译及签名工具使用

Apk反编译及签名工具使用 1) APKtool软件包及签名tool APKtool软件包有2个程序组成:apktool.jar 和aapt.exe 另外提供一个批处理文件:apktool.bat,其内容为: java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9 运行apktools.jar需要java环境(1.6.0版本以上)。 apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。 signapk.jar 用于签名。 2) APK文件的解包 下面以解开Contacts.apk为例。首先把Contacts.apk Copy到当前工作目录下(例:Test)。在DOS下打入命令 apktool d Contacts.apk ABC 这里“d”表示要解码。Contacts.apk是要解包的APK文件。ABC是子目录名。所有解包的文件都会放在这个子目录内。 3) APK文件的打包 在DOS下打入命令 apktool b ABC New-Contacts.apk 这里“b”表示要打包 ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。 New-Contacts.apk是打包后产生的新的APK文件。 4) 签名,不签名安装时可能提示如下错误: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] --- 没有签名,可以尝试test证书;签名方法见下面。

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] ---- 已存在签名,但使用证书不对,可以尝试使用其他证书签名。 签名方法:到目录android\build\target\product\security找到证书文件,这里可能会有几种证书, test/shared/platform/media,各种证书使用场景不同,可以自己google一下,因为签名很快而且可任意后续更改签名,可以自己尝试各种不同签名; 这个命令行是使用test证书的例子:java -jar signapk.jar testkey.x509.pem testkey.pk8 YOURAPK.apk YOURAPK_signed.apk YOURAPK_signed.apk就是签完名的apk,去测试一下您重新打包的apk吧。

如何反编译APK

如何反编辑 第一:要在你的PC上建立Java的环境,下载JDK并安装即可:https://www.doczj.com/doc/2d14507921.html,/file/bw256kw9 第二:下载必要的工具。Apktool工具。apktoo.rar (6.31 MB) 下载后解压(有三个文件aapt.exe,apktool.bat,apktool.jar),为了方便。将解压出来的文件放在CDM模式(win+R)默 认的目录下。 比如,我的是Windows7 32位我的CDM模式默认目录是C:\USER\用户名。 第三:如果你是要编译系统文件的话,请将你要修改的rom里的framework-res.apk以及twframework-res.apk(暂时叫做 依赖包)用CMD模式“安装”下。 这样编译才不会出错。我一开始就是在这里纠结了很久。呵呵 安装方法:把依赖包放在刚才放apktool的目录下。(你也可以用指定目录的方法安装) cmd模式执行apktool if framework-res.apk 这个是安装framework-res.apk cmd模式执行apktool if twframework-res.apk 这个是安装twframework-res.apk

第四:准备工作都做好了,现在就可以反编译和编译了。(反编辑的APK一定要用没换过图片的,否则回编辑失败) 将你要反编译的apk放在apktool的目录下。(你也可以用指定目录) cmd模式执行apktool d XXXX.apk 这个是Decode也就是反编译 比如反编译SystemUI 就执行apktool d SystemUI.apk 就可以了(会在当前的目录下生成SystemUI 的文件夹,修改就是在这个文件夹里进行) 第五:当你修改好文件后需要回编辑 cmd模式执行apktool b XXXX 这个是build 也就是编译回去 比如编译SystemUI就执行apktool b SystemUI 就可以了(会生成一个叫dist的文件夹,编译回去的apk就是此文件夹中) 注意:第三步很重要,很多人不成功就是因为没做第三步。回编辑以后将编辑过的文件统统替换回原APK的原位置,如果要替换图片的话,最好在回编辑以后直接往原APK里替换,同理,反编辑时最好用原版没有替换过图片APK,这样才不容易出错!

用安卓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.zip 3.解压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到文件夹PATH apktool b PATH //从文件夹PATH重建apk到PATHdistout.apk //============================================================ ========================// 案例: “超级指南针”的顶部有一条广告区,我们的目的就是把它去掉。 运行cmd 进入Apktool所在目录(我的是:“E:Android学习工具反编译ApkTool”)后,使用Apktool命令操作,如下

现在在“E:Android学习.工具反编译新建文件夹指南针”目录下就得到了反编译后的文件,用记事本打开其中的AndroidManifest.xml,找到与下面类似的代码段: 也就是找到有一连串字符序列的地方,如上 CD0E46BC8B9DF1394F1E5F6030067A71和 DEE43EDE-D2DF-4B4D-A754-894C9E7F960E两处,这两处分别是架势广告与admob提供的id地址。 接下来要做的就是将上述的字符序列改掉一两个字。。。 然后,将散架的文件编译回去(apktool b PATH): 可以看到E:Android学习工具反编译新建文件夹指南针distout.apk文件。。。

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

Android APK反编译得到Java源代码和资源文件 2011年3月9日iStar发表评论阅读评论 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:dex2jar: https://www.doczj.com/doc/2d14507921.html,/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:https://www.doczj.com/doc/2d14507921.html,/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.jar 3.运行JD-GUI,打开上面生成的jar包,即可看到源代码了。 二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件 如果是只是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool,下载地址: https://www.doczj.com/doc/2d14507921.html,/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盘的根目录里;

反编译详细教程

.去震动教程.时间居中教程,时间显示到秒且居中 在通知栏增加模拟时钟透明状态栏代码修改 字体颜色修改关于运营商图标修改 可以ctrl+F,按需搜索 一:去震动教程: 一、首先是配置编译和反编译环境,具体方法如下: 1、在电脑上下载安装JRE(https://www.doczj.com/doc/2d14507921.html,/file/clif5w53)。其次下载好apk反编译工具 (apk反编译软件.rar(2.43 MB, 下载次数: 5756) ) 2、在系统环境变量Path里加入java.exe所在路径。 右键我的电脑--属性--高级系统--设置--环境变量--系统环境变量,里面的path变量项,值里面添加java的所在路径(例如“;C:\Program Files\Java\jre6\bin”) 3、将反编译软件解压出来,为了便于使用,最好放在C:\Windows目录下。 二、提取并反编译framework-res.apk文件 1、手机必须root,先用RE管理器将/system/framework文件夹下的文件framework-res.apk复制到/sdcard,然后复制到电脑(为了方便后面的操作,建议将文件放到电脑某个盘符的根目录下。例如:e:\framework-res.apk)

2、反编译framework-res.apk文件。具体方法运行cmd.exe(如图) 然后在出来的命令提示行中输入以下命令:apktool+空格d+空格+framework-res.apk路径+空格+反编译后文件存放路径,比如文件放入d盘根目录则命令为:apktool d d:\framework-res.apk d:\framework-res(如图)(此时反编译出来的文件放在d盘framework-res文件夹下) 三、修改去震动相关的xml文件 一般framework-res\res\values\arrays.xml就是我们要修改的对象。用xml编辑器(xml 编辑器.rar(345.03 KB, 下载次数: 3223) )打开这个文件。修改如图:

apk反编译文件夹详解

反编译: 反编译apk得到的几个文件和文件夹 1。 assets 文件夹 此文件夹可以存放资源文件。至于是神马资源文件,怎么读取,这些我们就不用深究了,因为不常改。 2。 res 文件夹 主要用来存放资源。此文件夹下可以创建子文件,常见的有: anim 动画 drawable 图片 color 颜色 menu 菜单 layout 布局 values 常量值 xml 任意xml文件 我们修改apk时,一般就在这里修改。比如汉化,改名称,去广告,改字体颜色,大小神马的。 3。smali 里面主要是dex文件反编译得到的smali文件。不会java的改不起。顶多搜几个关键词汉化一下。值得注意的是,汉化时不能直接输入汉字,而应输入对应的十六进制代码。 4。AndroidManifest.xml 此文件是apk中最重要的文件之一。它是apk的全局配置文件,提供了android系统所需要的关于该应用的必要信息。 res目录浅说: 1 anim文件夹 后缀名为.xml。动画文件都放在这里。 2 drawable文件夹

用于存放图片资源,图片或者xml。 (1) 图片 图片格式:png,9.png,jpg,gif。 注意:9.png是一种特殊的png格式,与一般的png格式有区别!很多人在改完图片后将两种格式混淆,导致回编译失败。后面有制作9.png格式图片的方法。 (2) xml xml文件通常为自定义的形状shape或图片选择器类selector似的东西,就是不同状态下不同的图片,用于设置background什么的。 (3) drawable文件夹为了对屏幕的适配, ①对分辨率笼统的分:名字可以为:drawable-ldpi drawable-mdpi drawable-hdpi drawable-xhdp drawable-nodpi drawable-tvdpi 分辨率依次由高到低 ②具体到某一分辨率:drawable-分辨率,比如:drawable-1280x720 ③如果有横竖屏的区别,则命名为:drawable-land/port-mdpi, 3 color文件夹 用于存放color列表,和drawable的xml一样,表示不同状态下的不同颜色 4 menu文件夹 菜单资源文件夹。 5 layout文件夹 布局文件夹。此文件夹的名字也是可以起到屏幕适配的功能的。 ①横竖屏:layout-land/port ②分辨率:layout-1280x720 6 values文件夹 存放常量值的文件夹。里面常见的xml文件为: arrays.xml :资源数组.

APK 反编译

Apk文件的格式 Android application package文件。每个要安装到android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等。 apk文件实际是一个zip压缩包,可以通过解压缩工具解开。可以用zip解开*.apk文件,下面是一个he lloword的apk示例文件 |–AndroidManifest.xml |–META-INF | |–CERT.RSA | |–CERT.SF | `–MANIFEST.MF |–classes.dex |–res | |–drawable | | `–icon.png | `–layout | `–main.xml `–resources.arsc 1.Manifest文件:AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字、 版本、权限、引用的库文件等等信息[ , ],如要把apk上传到Google Market上,也要对这个xml做一些配置。注意:在apk中的xml文件是经过压缩的,不可以直接打开。 2.Res文件:res文件夹下为所有的资源文件。 3.resources.arsc文件:为编译后的二进制资源文件,许多做汉化软件的人都是修改该文件内的资源 以实现软件的汉化的。 4.META-INF目录:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。 在eclipse编译生成一个api包时,会对所有要打包的文件做一个校验计算,并把计算结果放在ME TA-INF目录下。而在OPhone平台上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk 包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。 5.classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机 与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。 XML文件的反编译 在apk中的xml文件是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为: java -jar AXMLPrinter2.jar AndroidManifest.xml HelloAndroid程序中Manifest文件的实例:

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://https://www.doczj.com/doc/2d14507921.html,/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,下载地址:https://www.doczj.com/doc/2d14507921.html,/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反编译接口 接口平台:聚合数据 根据url上传待加密的apk 接口地址:https://www.doczj.com/doc/2d14507921.html,/ijiami/upload 支持格式:json/xml 请求方式:http get 请求示例:https://www.doczj.com/doc/2d14507921.html,/ijiami/upload?key=您的APPKEY&apkurl=您的应用下载地址JSON返回示例: { "reason": "成功", "result": { "appId": "20141105150359939873" }, "error_code": 0 } 提交加密应用加密 接口地址:https://www.doczj.com/doc/2d14507921.html,/ijiami/encrypt 请求示例:https://www.doczj.com/doc/2d14507921.html,/ijiami/encrypt?key=您的APPKEY&appid=20141105150359939873 JSON返回示例: { "reason": "成功", "result": { "appId": "d266d1cb038ffd67fdc6fe142cad02ba49fb6a57c1dfe641" }, "error_code": 0 } 查询加密结果 接口地址:https://www.doczj.com/doc/2d14507921.html,/ijiami/result 请求示例:https://www.doczj.com/doc/2d14507921.html,/ijiami/result?key=您申请的KEY&appid=1266d1cb038ffd67fdc6fe142cad02ba49fb6a57c1dfe641 接口备注:根据appid,查询加密结果,视不同APK加密时长不一样,需要隔段时间再次请求

Android apk反编译之android APK有效加密方法

Android apk反编译之有效防止破解和反编译加密方法对于Android开发者来说,自己开发的Android APP被破解是个让人头疼的事。那有什 么办法能防止Android apk反编译和破解呢?一般的混淆代码和防二次打包还有效么?我们通过下面的内容来验证一下! 首先我们找一个经过混淆代码和防二次打包的Android APK,这样的Android APK包不难找!只要到爱加密APK源代码安全检测平台,检测一下就可以知道做过什么保护。 通过图片我们可以看到这款Android APK做了混淆代码和防二次打包保护,对于其他的Android APK中的DEX、RES、SO库等文件未做任何保护。下面我就通过对APK源代码的安全分析,看看这Android APK的安全怎么样! 首先我先将APK反编译,看看能不能拿到代码!经过简单的反编译我们就可以轻松的拿到APK里面的源代码,下面我们就修改一下里面的东西,看看之前的APK保护是否有效!

1、配置用户权限(重要) 2、添加必须组件(重要) 完成这2个步骤我们的sdk就已经植入成功了,如图: 那么我们怎么解决这款APK做的保护呢?不用着急,我们慢慢来! 首先我们发现当登录的时候会提示签名信息不一致,导致不能登录!经过分析发现他是给apk做了签名信息认证,这时我们需要找到他获取签名信息的地方,如下图: 到这一步就可以绕过这款APK的二次打包防护了,这样我们就可以登录了!登陆后我们可以看到这款Android APK已被植入广告!

这里我要简单介绍一下APK的混淆代码、防二次打包的加密技术是怎么回事! 混淆代码: Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。 防二次打包: 二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了! 通过对APK的反编译我们知道,混淆代码和防二次打包的APK加密技术已经无用!下面我们通过对DEX、RES、SO库等主要Android APK文件进行加密,看看是否能有效防止APK被破解和反编译! 我们先通过爱加密的APK安全保护平台,对这款Android APK进行安全保护。步骤如下: 登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成! 注意: 在爱加密APK源代码安全保护平台,个人信息要填写完整,否则无法正常使用。APK 加密完成后,系统会发出邮件通知加密完成。最后下载APK包再次完成签名,就可以正常使用了! 下面我们对加密过得APK进行源代码的安全检测,看看对DEX、RES、SO库等主要文件的加密,是否真能防止破解和反编译! 经过爱加密APK源代码安全检测平台的检测,我们看到这款APK已经做了相当高级的加密保护。但是面对破解技术是否有效果呢?我们试着对破解一下!

apk反编译步骤

apk反编译步骤 2011-02-24 21:17:25 标签:apk反编译休闲Android职场 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。 https://www.doczj.com/doc/2d14507921.html,/2400264/499893 对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式,然后解压缩可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样,不过不同的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在Android Market上设置了权限保护app-private 文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。 当然了,我们反编译的目的是为了学习。 1. Apk文件:自己准备apk文件。 2. 将xxx.apk扩展名修改为xxx.rar或者xxx.zip,用WinRar解压缩,你可以看到内部文件的结构,类似下图所示:

3. 直接打开AndroidManifest.xml会发现是乱码,这里面是二进制字符,需要用AXMLPrinter2.jar (https://www.doczj.com/doc/2d14507921.html,/p/android4me/downloads/list),下载AXMLPrinter2.jar文件,为了方便,这里我把它放到了Android SDK文件夹下面的tools文件夹中) 4. 逆向xml文件:把相应的AndroidManifest.xml放到AXMLPrinter2.jar同一目录,进入命令行模式,输入以下命令(注意空格):

APK应用程序的解包、修改、编辑、打包及应用

APK应用程序的解包、修改、编辑、汉化、打包及应用 前两讲主要讲玩机的最基本的知识,集中在如何刷机。本讲是进级的内容,来谈谈与apk 应用程序有关的知识,内容包括akp文件的解包、打包、反编辑、解析、汉化、修改等内容,也介绍几个常用的软件。最后要介绍对apk操作有哪些应用,学会了能干些什么。 这些内容实际上构成了一个很大的课题,用简短的文字无法描述清楚。我准备用三个部分来介绍如下内容: 第一部分:apk应用介绍,解包和打包,常用软件工具 第二部分:三星闭源系统apk文件的处理,汉化和签名 第三部分:介绍apk文件打包解包的各种应用 第一部分是基础知识,第二部分进入实战修改apk应用程序,最后在第三部分来介绍APK 应用程序的修改和编辑的各种各样实际应用。 ---------------------------------------------------------------------------------- 第一部分:apk应用介绍,解包和打包,常用软件 相信每为机友对APK文件都不陌生。你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。。。尤其是最近关于2.3.4 XXJVP ROM的汉化,更成为论坛里的热门话题。你们可曾知道ROM是怎样汉化的吗?说来容易做来难。这里要涉及很广泛的知识、手段,以及要花大量的时间。 1. 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文件

framework-res.apk文件详解

首先需要反编译framework-res(在system/framework目录下) 这里提供一个很方便的反编译工具 assets这个目录就不多说了- -,不是音频就是图片 然后是res目录,这个要好好说一说: anim文件夹(存放ROM动画效果控制文件)——***.xml color(一目了然,这个文件夹存放的是ROM各位置的颜色控制代码)——***.xml drawable / drawable-***(ROM 的基本资源库,存放各种资源来供控制文件调用)——***.xml / **.png layout / layout-***(ROM 层面布局控件,简单理解就是控制各个部位的所在位置,如各种图标)——***.xml raw / raw-***(一般情况这些目录不需要动)——***.png / ***.ogg /***.html values / values-***(各种语言包控件)——***.xml xml / xml-**(全局控制文件,一般情况这些目录不需要动)——***.xml AndroidManifest.xml 和 apktool.yml AndroidManifest.xml 是每一个应用都需要的文件; 位于应用的根目录下,描述了程序包的一个全局变量; 包括暴露的应用组件(activities, services 等)和为每个组件的实现类; 什么样的数据可以操作,以及在什么地方运行; ▲ 一般情况下不需要动该文件 AndroidManifest.xml 的结构大纲: 文件根节点,描述了程序包的所有内容; 请求一个安全授权,必须被授予该权限,程序包才能正确的操作; 声明一个安全授权,用来限制哪些应用可以访问程序包内的组件和特有机制; 描述程序包内应用级别组件的根节点,该节点能够描述应用程序的全局和默认属性; 应用于用户交互的最主要机制,当一个应用运行的时候,用户看到的第一个屏幕就是 activity; 一个 IntentReceiver 可以让应用接收到一次数据变化和一次行为发

反编译APK方法

一.反编译Apk得到Java源代码 转载自: https://www.doczj.com/doc/2d14507921.html,/%CB%BF%D4%B5%CC%EC%CF%C2/blo g/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2ja r和JD-GUI这2个工具 dex2jar下载地址: https://www.doczj.com/doc/2d14507921.html,/files/dex2jar-0.0.7-SNAPSHOT. zip JD-GUI下载地址: windows版JD-GUI: https://www.doczj.com/doc/2d14507921.html,/files/jdgui.zip Linux版JD-GUI: https://www.doczj.com/doc/2d14507921.html,/files/jd-gui-0.3.2.linux.i686.tar. gz 步骤: 1.首先找到Android软件安装包中的classes.dex 把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

2.把classes.dex拷贝到dex2jar.bat所在目录。 在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成 classes.dex.dex2jar.jar 3.运行JD-GUI工具(它是绿色无须安装的) 打开上面的jar文件,即可看到源代码 --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- 二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自: https://www.doczj.com/doc/2d14507921.html,/s/blog_5752764e0100kv34.html 工具下载: 在https://www.doczj.com/doc/2d14507921.html,/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip 两个包都要下。 步骤:

如何修改APK文件名和图标

如何反编译apk文件?修改apk文件名和图标教程 作者:绿茶来源:木子软件时间:2013-09-22 11:21 点击:次 有时候在安装apk文件的时候是不是觉得文件名字不理想或者程序图标太山寨?不用担心,今天小编就教大家如何利用apktools反编译工具来修改apk文件的 名称和图标。让自己的手机更加美,图标和程序名字更加整齐! 一、准备工作 1、下载安装java jdk 2、配置java环境 3、下载apktools反编译工具包 二、具体操作 1、将下载来的apktools工具包解压至c:\目录下,然后将需要反编译(修改)的apk文件放入解压文件夹内。今天就用一键锁屏来做试验吧。 2、打开一键apktools.exe工具,因为不是系统文件所以就直接反编译,不需 要安装环境!选择2,然后选择文件名。这里我们是lockscreen.apk所以我们 选2!

3、等待解压完成,我们在lockscreen文件夹内的res目录里去修改程序名称和程序图标。程序名称的文件路径为 lockscreen\res\values-zh- rCN\strings.xml我们使用记事本打开找到app_name 在两个>< 修改自己需要显示的程序名称,我们就把一键锁屏改为锁屏,修改好以后保存即可~

4、然后在lockscreen\res\drawable-hdpi文件夹内替换图标。先找到现在的程图标,因为一键锁屏很简单,所以只有一个图标。我们记下图标的名字lock.png 然后删除它,将我们准备好的图标放入目录下,改名为刚才的名字lock.png。

5、然后返回到apktools解压文件夹,编译后的文件在回编apk生成目录下,我们将其签名,然后安装即可。 是不是很简单啊,小伙伴们快去试一试吧!

相关主题
文本预览
相关文档 最新文档