简单反编译apk软件教程-棕发

简单反编译apk软件教程-棕发
简单反编译apk软件教程-棕发

|棕发|之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,一个是授权后的,一个是未授权的;

文件的话,未授权的就足以。

【提示说明:如果是安装修改后的软件,请你卸载已经安装在手机的软件,否则会出现无法安装的问题】

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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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,这样才不容易出错!

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.360docs.net/doc/b18796150.html,/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:https://www.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.html,/ijiami/upload 支持格式:json/xml 请求方式:http get 请求示例:https://www.360docs.net/doc/b18796150.html,/ijiami/upload?key=您的APPKEY&apkurl=您的应用下载地址JSON返回示例: { "reason": "成功", "result": { "appId": "20141105150359939873" }, "error_code": 0 } 提交加密应用加密 接口地址:https://www.360docs.net/doc/b18796150.html,/ijiami/encrypt 请求示例:https://www.360docs.net/doc/b18796150.html,/ijiami/encrypt?key=您的APPKEY&appid=20141105150359939873 JSON返回示例: { "reason": "成功", "result": { "appId": "d266d1cb038ffd67fdc6fe142cad02ba49fb6a57c1dfe641" }, "error_code": 0 } 查询加密结果 接口地址:https://www.360docs.net/doc/b18796150.html,/ijiami/result 请求示例:https://www.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.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文件

反编译APK方法

一.反编译Apk得到Java源代码 转载自: https://www.360docs.net/doc/b18796150.html,/%CB%BF%D4%B5%CC%EC%CF%C2/blo g/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2ja r和JD-GUI这2个工具 dex2jar下载地址: https://www.360docs.net/doc/b18796150.html,/files/dex2jar-0.0.7-SNAPSHOT. zip JD-GUI下载地址: windows版JD-GUI: https://www.360docs.net/doc/b18796150.html,/files/jdgui.zip Linux版JD-GUI: https://www.360docs.net/doc/b18796150.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.360docs.net/doc/b18796150.html,/s/blog_5752764e0100kv34.html 工具下载: 在https://www.360docs.net/doc/b18796150.html,/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip 两个包都要下。 步骤:

修改APK教程

以下提供修改方法: 整个过程只需要使用2个软件: 1. apk反编译、编译、签名三合一工具: 不知道为什么,附件总是上传不成功,请童鞋们点击上述链接下载,对不起大家,抱歉... (需要java环境组件支持,以下简称apk工具) 2. UltraEdit编辑器 修改过程只要3个步骤 步骤1. 反编译: 我们先反编译一个apk文件,以《不朽的神迹》为例: 先将com.gameloft.android.TBFV.GloftELHP.ML.apk和apk工具放置同一目录下, 将com.gameloft.android.TBFV.GloftELHP.ML.apk重命名为123.apk(apk工具要求),接着运行apk工具(再次强调需要电脑安装java环境组件,否则无法使用)得到如下窗口:

选择1反编译123.apk后得到apk 文件夹。 步骤2. 查找与替换数据包路径: 存放数据包路径的文件有.smali类型文件及.so类型文件,.smali文件是文本格式,可以直接修改,关键是在.so文件,这是运行库文件(相当于windows系统的dll文件),暂时没发现有什么工具可以修改,所以只能通过替换的方式。为了保持此文件相关数据与偏移地址的一致性,我将里面的数据包路径修改为:sdcard/external_sd/gl/,与原本的 sdcard/gameloft/games/字节数相同。这就是我不直接将地址改为 sdcard/external_sd/gameloft/games/的关键原因,也是无奈的一个办法。了解清楚了上面这些,我们就可以做替换了,其实就是不了解也没关系

运行UltraEdit编辑器,查找上面反编译得到的apk文件夹,按鼠标右键调出菜单,选择“在文件中替换(在该目录)” 出现替换窗口:

android apk修改方法(反编译、修改、打包)

1、baksmali:classes.dex反编译为smali格式 (smali:smali格式编译打包为classes.dex,但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助) 2、dex2jar:classes.dex转为jar包 3、jdgui:jar反编译并阅读 操作顺序: apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar 处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali 里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。注意安装时要先删除原来手机里的版本,因为签名不同。 1、apk用zip解开,得到classes.dex 2、用baksmali处理为smali(只是反编译看代码就不需要这一步,修改才用) java -jar baksmali-1.4.1.jar -x classes.dex 得到out目录,里面是smali文件 3、用dex2jar处理classes.dex为jar包 dex2jar.bat classes.dex 得到classes.dex.dex2jar.jar 4、用jdgui打开classes.dex.dex2jar.jar 好了,可以看代码,但还不能直接修改,需要对比着来修改smali文件 改好后,用java -jar smali-1.2.6.jar -o classes.dex out 得到修改后的classes.dex,用这个文件替换fishing_joy_1.apk中的同名文件但这个apk是不能用的,还没有进行重新签名 先用keytool生成keystore keytool -genkey -keystore mykeystore -alias mykeystore -validity 999 把apk中的META-INF删除,再用jarsigner 签名 jarsigner -verbose -keystore mykeystore -signedjar fishing_joy_1_signed.apk fishing_joy_1.apk mykeystore 先卸载原来手机中安装的这个游戏,再用fishing_joy_1_signed.apk安装 最后工作目录是这个样子

通过反编译SystemUI.apk,达到美化电量实时显示

题外话:前几天学习了单刷包的制作教程,折腾了2天,终于学会了单刷包制作,然后就想美化通知栏电量的实时显示,又折腾了一天,毫无收获,我其实是想修改SystemUI.apk里面的 stat_sys_battery.xml文件和电量显示图片文件,但是老是反编译SystemUI.apk后全是smali类型的文件,最后了解是我的java环境没弄好,只装了jdk,却没有装adb和android sdk。所以反编译不成功,然后我把adb和android sdk装好,配置好环境变量,再次反编译SystemUI.apk,就成功了。 下图就是反编译SystemUI.apk不成功的样本,全是smali文件:

最终效果

没修改之前的效果: 本人手机亲测美化电量后,实时电量显示效果:

言归正传,我就说一下这几天我美化电量的心得: 我之前看了论坛关于美化电量的教程,好多都说美化电量是在framework_res.apk中修改,达到美化

电量的效果,但是经过我的实践发现,华为d1四核的通知栏电量的美化修改应该在SystemUI.apk(该文件的路径:/system/app/SystemUI.apk,在手机中用re管理器可以看得到)中,而没有在framework_res.apk中,所以我们就反编译SystemUI.apk再修改后编译回来替换就可以了 反编译SystemUI.apk之前,必须配置好java环境,当然你如果之前就已经配置好java环境,不需再配置 ps:如果java环境没配置好,去反编译SystemUI.apk就会出现编译后全是smali类型文件,就会跟最上面那张图一样。 下面引用xda论坛中别人的帖子,该帖子明确的讲解了在windows中怎样配置java环境,该帖子作者:Setsuna_F_Seiei(表示感谢) (1) JDK的安装及环境变量的配置 1. 去Oracle官方网站下载并安装JDK,下载地 址:https://www.360docs.net/doc/b18796150.html,/technetwork/java/javase/downloads注意是下载JDK,而不是JRE JDK (Java Development Kit,Java开发工具包) JRE (Java Runtime Environment,Java运行环境) 你也可以点击以下链接直接下载JDK: 32位:https://www.360docs.net/doc/b18796150.html,/otn-p ... 32-windows-i586.exe 64位:https://www.360docs.net/doc/b18796150.html,/otn-p ... u32-windows-x64.exe 2. 配置环境变量下载并安装JDK之后,你需要在计算机的“系统属性”里配置以下环境变量:(步骤:在计算机的桌面上右击“我的电脑”,点击“属性”-“高级”-“环境变量”)变量名:JAVA_HOME 变量值:D:\java\jdk1.6.0_32 (JDK安装目录)

相关文档
最新文档