前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

Android APK逆向工程/反编译总结 - 记录走下的弯路, 让更多的人快捷到达终点 - 博客频道 - CSDN.NET 记录走下的弯路, 让更多的人快捷到达终点 关注移动互联、物联网、云计算的Coder【C/C++/java 】 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! 消灭0回答,赢下载分 “我的2013”年度征文活动火爆进行中! 专访何海涛:“不正经”程序员的进阶之路 Android APK逆向工程/反编译总结 分类: 软件技术【Android】 2011-08-01 21:13 4109人阅读 评论(1) 收藏 举报 androidhierarchy工具layoutxml破解 1概述 本文涉及的内容本质上就是APK的反编译, 作为一个开发者, 需要正视一下本文所谈及的技术, 目的是为了让你借鉴/学习优秀实践, 而非让你去盗用其它开发者得成果。事实是, 通过本文所谈及的内容, 如果不付诸实践和学习,没有比较好的Android基础, 实质上也不能从反编译的一堆代码文件中, 得到有价值的信息。本文不赞成任何有损开发者劳动成果的行为。 2 基本知识 很多东西实质已经不需要再总结, 这方面有两个不错的资料。 请移步到下面的链接中阅读: 1. 反编译apk文件,得到其源代码的方法!! 点评: 不难发现代码都被Android打包成dex文件, 通过这个文件复原出来问题不大, 但大部分的情况, 复原后的Java文件, 基本上不能保证再编译通过, 但出于技术学习的目的, 某些代码片段已经包含足够的信息, go and find it! 2. 一个APK反编译利器Apktool 不赞成文章最后去掉admob广告的做法, 这样实质上是对开发者的一种伤害, 通过XML文件的学习, 对GUI方面的了解, 可谓是比较完美了。这个也是本文今天关注的重点,开发人员对GUI这块非常头痛, 所以, 通过反编译apk, 可以好好了解一些优秀实践所采用的UI方法。另外新版本不需要apk一定得放在C盘根目录。 任意指定的位置都OK. 3. Android 布局学习工具. /android-sdk-windows/tools 目录下的 hierarchyviewer.bat, 是一款研究别人布局的好工具. 先打开这个工具, 然后启动模拟器。发现惊喜. 可以参考这篇文章获得更多的理解。Android 利用【Hierarchy Viewer 】 工具学习别人的UI设计 结合上面的第二点。能很好的复原界面元素。 3 应用 大量教程基本上是让你汉化,破解,去广告的基本行径。 本文是为了让技术开发者更好的学习Android程序用到的技术。作为一个技术人员,基本上一点点小小的思路, 就足够让它们借题发挥了。这里也只是稍微点拨一下个人常用的方法。 1. 利用图片的名称对apk破解后的资源文件进行整体搜索。将上一章所说的第二个方法一个APK反编译利器Apktool,可以得到一堆资源文件。然后Copy到Eclipse的某个工程中。进行搜索, 最最有效率的方式(还记得快捷键吧Ctr+H)。 2. 利用R.java文件中的id号, 将上一章反编译apk文件,得到其源代码的方法!!得到的源文件进行搜索. 这个时候, 基本上所使用的元素的位置基本上清楚了。 3. 当无法定位Activity对应的Layout在哪里时, 这个时候需要用到上一章讲到的第三个方法, 利用hierarchyViewer去查看布局。然后结合1和2的信息做交叉理解。(很有必要提及的问题, hierarchyViewer里面涉及的布局, 并非跟Layout的xml完全一致, 在hierarchyViewer中,很容易看到GridView中居然可以包含一个LinearLayout, 这个实际上在XML中,是不允许这样描述的。一般Android是在源码中实现一个GridView包含一个LinearLayout的, 这个时候,不得不利用到上文1和2描述的方法交叉定位). 从上文的分析来看, 所有的信息都是片段和零散信息, 技术上并没有对原来的作品侵权, 仅作为学习交流用。 更多 上一篇:Java TCP的封装 下一篇:Android 软件平台架构设计 查看评论 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料 ostrichmyself 访问:216062次 积分:3903分 排名:第1748名 原创:144篇 转载:10篇 译文:8篇 评论:419条 友情链接 凡尘工作室 凡尘工作室开源项目 @创业者凡尘 文章搜索 文章分类 软件技术【Android】(31) 软件技术【C/JNI..】(30) 软件技术【SWT/RCP】(11) 软件技术【java基础】(13) 软件技术【Unix】(10) 软件技术【WEB】(9) 软件技术【其它】(4) 软件技术【数据库】(2) 软件技术【HTML5】(1) 软件技术【IOS 】(7) 项目管理(9) 案例研究(0) 软件架构(24) 读书评论(16) 面试笔试(3) 英语学习(3) 外包任务(1) 文章存档 2013年12月(1)2013年10月(1)2013年08月(2)2013年06月(1)2013年05月(3)2013年03月(4)2013年01月(2)2012年12月(3)2012年10月(1)2012年09月(2)2012年08月(1)2012年07月(5)2012年05月(1)2012年04月(5)2012年03月(1)2012年02月(3)2011年11月(3)2011年10月(1)2011年09月(2)2011年08月(2)2011年07月(4)2011年06月(4)2011年05月(1)2011年02月(2)2010年12月(2)2010年11月(1)2010年10月(3)2010年09月(3)2010年08月(4)2010年07月(3)2010年06月(10)2010年05月(6)2010年04月(5)2010年03月(5)2010年02月(4)2010年01月(8)2009年12月(2)2009年11月(6)2009年10月(13)2009年09月(2)2009年08月(5)2009年07月(3)2009年06月(11)2009年05月(1)2009年04月(10) 阅读排行 第一个Android 程序的源代码: TxtReader文本阅读器(12471) Android 程序之在线词典[2010-05-08更新图片](7001) 敏捷方法之极限编程(XP)和 Scrum区别(5507) JNI的提高,Java类型和C(C++)类型转换源代码(5415) 利用Eclipse CDT 阅读C/C++代码(4933) 如何走好后面的路?(4805) JAVA BAE 问题总结(4300) cygwin + gcc+makeFile入门(三): JNI的编译(4201) Android APK逆向工程/反编译总结(4107) 理解UI线程——swt, Android, 和Swing的UI机理(4071) 评论排行 Android 程序之在线词典[2010-05-08更新图片](45) JAVA BAE 问题总结(22) Android 程序之My Dictionary【凡尘英语】——重构归来(15) 理解UI线程——swt, Android, 和Swing的UI机理(15) 第一个Android 程序的源代码: TxtReader文本阅读器(13) Android SDK Document 框架导读的翻译和注解[1](12) Android面经总结(11) cygwin + gcc+makeFile入门(二): 动态链接库编译(9) 一个Android位置监管程序的开发全流程(8) Android 软件平台架构设计(8) 推荐文章 最新评论 【凡尘工作室】 微信平台架构和实现(github开源项目) ACanoe: @ostrichmyself:谢谢 【凡尘工作室】 微信平台架构和实现(github开源项目) ostrichmyself: @ACanoe: 部署在百度BAE平台下, 参见其它博文,(百度BAE平台的服务端是免费的。) 【凡尘工作室】 微信平台架构和实现(github开源项目) ACanoe: 请问你那个源码怎么呢,部署和测试呢? Effective Android设计 Legendof1991: 感谢楼主 JAVA BAE 问题总结 a441277335: 各位大神,清求解 JAVA BAE 问题总结 a441277335: 本地页面跳转成功,为什么发不到百度开发者中心上就跳转不成功,按钮都失效了,路径采用的都是相对路径 IOS 开发学习(3): IOS UI架构设计 u010232872: @ostrichmyself:你的文章是2012年发的,难怪了 IOS 开发学习(3): IOS UI架构设计 ostrichmyself: @u010232872:谢谢分享,很长一段时间没有做开发le IOS 开发学习(3): IOS UI架构设计 u010232872: @ostrichmyself:后来查到答案了,故事板是后来取代xib的,区别见这里http://we... IOS 开发学习(3): IOS UI架构设计 ostrichmyself: @u010232872:我都是工程文件copy出来的, 应该可以直接使用,不是很明白故事版是什么.....