已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
apk反编译步骤 2011-02-24 21:17:25标签:apk 反编译 休闲 Android 职场原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/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(/p/android4me/downloads/list),下载AXMLPrinter2.jar文件,为了方便,这里我把它放到了Android SDK文件夹下面的tools文件夹中)4. 逆向xml文件:把相应的AndroidManifest.xml放到AXMLPrinter2.jar同一目录,进入命令行模式,输入以下命令(注意空格):java -jar AXMLPrinter2.jar AndroidManifest.xml -AndroidManifest.txt5. 然后,打开AndroidManifest.txt,你就可以看到相应内容了,但是对资源的引用:android:label=7F080000 android:icon=7F02002A(这个是编译后对应资源R.java中的值),对一些属性值的设置:android:configChanges=0x000000A0,还有:android:textColor=?android:01010036 android:textColor=?android:01010212,这个还需要查SDK,看到有android字样,就知道是系统定义的常量,在android sdk Reference android.R.xxx 页面搜索01010036,找到?android:01010036 对应 ?android:attr/textColorSecondary,?android:01010212对应 ?android:attr/textColorTertiary6. 在解压缩后的文件夹中,你会发现还有一个classes.dex文件,这是编译 后最终生成的dalvik字节码,还需要另外一个工具dex2jar(下载地址:/p/dex2jar/downloads/list),将Androids .dex format转换成Javas .class format,下载后解压后有一个dex2jar.bat文件,把你的classes.dex文件拷贝到该目录中,命令行切换到该目录,运行命令dex2jar.bat classes.dex,将会在目录中生成classes.dex.dex2jar.jar文件。7. 最后,还需要用工具去查看反编译的类,下载JD-GUI工具(绿色无须安装,下载地址:http:/java.decompiler.free.fr/?q=jdgui),将jar文件拷贝到GUI文件夹下,运行JD-GUI,打开这个Jar文件,就能看到相应的类了,同样里面有许多很长的数字。然而,我们发现上述方法对资源文件(drawable、xml等),反编译的不够完美,在一些汉化工具中,用到了apktool,可以从/p/android-apktool/下载(Windows下需要apktool1.x.x.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2两个文件),下载后解压,为了以后方便使用,可以把得到的3个文件都复制到某个文件夹(比如D:workspaceapktool)下,使用步骤如下:打开命令行窗口,切换到你复制到的目录,或者直接把目录路径添加到环境变量中;1)apktool d X.apk Y反编译X.apk到文件夹Y例如在命令行窗口输入apktool d E:game.apk E:game_out(不包含引号),就会启动apktool反编译E盘根目录下的game.apk文件,反编译得到的文件放在到E:game_out文件夹。2)apktool b Y从文件夹Y重建为APK,输出到Ydistout.apk例如apktool b E:game_out,将E:game_out文件夹下的文件编译成新的apk文件,新文件会放在E:game_outdist目录下,文件名为out.apk。其他参数,请输入apktool -help查看,经过反编译后,classes.dex文件被反编译为smali文件夹下的文件;resources.arsc被分解成若干xml文件,放在res文件夹下;apk中原有的xml文件也变转换为可以直接用文本编辑器查看的形式。其他的文件会被解压到相应的文件夹。2楼 匿名learnAndroid 回复2011-04-28 11:16:08这句都写错了,java java AXMLPrinter2.jar AndroidManifest.xml-AndroidManifest.txt不知楼主有没有试过正确: java -jar AXMLPrinter2.jar AndroidManifest.xml - AndroidManifest.txt注意空格XP和WIN7搭建Android开发环境步骤详细图解 | 浏览:2715 | 更新:2013-08-03 15:16 | 标签:windows7 android 开始Android开发之前,首先要搭建开发环境,XP和WIN7搭建Android开发环境步骤比较复杂,大家可以按照下面的步骤一步一步按部就班的进行安装。1. JDK安装:(1)先下载JDK;(2)设置环境变量步骤如下:我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)CLASSPATH值:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;Path: 在开始追加 %JAVA_HOME%bin;NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:2. Eclipse安装:如果你还么有Eclipse的话,可以去这里下载,下载如下图所示的Eclipse IDE for Java Developers(92M)的win 32bit版:解压之后即可使用。3. Android SDK安装: 在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android h 如果有类似以下的输出,表明安装成功:4. ADT安装:打开 Eclipse IDE,进入菜单中的 Help - Install New Software点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入/android/eclipse。如下图所示:确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:然后就是按提示一步一步next。完成之后:选择Window Preferences.在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: D:AndroidDevelopandroid-sdk-windows点击Apply、OK。配置完成。5. 创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 02 B动量守恒定律 中档版2025新课改-高中物理-选修第1册(21讲)
- 临床门诊护理工作制度
- 法律服务行业相关投资计划提议
- 社区护理社区老年人保健
- 护理专病查房措施
- 物业公司园林苗木养护管理绿植病虫害防治作业指导书
- 我国大城市交通拥挤对策及关键技术研究
- 第二章 科学认识和科学问题课件
- 艺教企业未来规划
- 金融行业培训解决方案分享
- 3.1DNA是主要的遗传物质课件20232024高一下学期生物人教版必修二
- 智能制造(智改数转)架构设计解决方案
- 在线网课知道智慧《硬核赢创新(山大)》单元测试答案
- 中班语言《金色的秋天》课件
- 教学病例讨论模板
- 高考语文复习:诗歌比较阅读
- 林业工程竣工报告
- 从偏差行为到卓越一生3.0版
- 失血性休克患者的麻醉处理
- 2024网站渗透测试报告
- DG-TJ08-2433A-2023 外墙保温一体化系统应用技术标准(预制混凝土反打保温外墙)
评论
0/150
提交评论