前往Shuct.Net首页

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

关于反编译的搜索

Android APK反编译查看源码及资源文件 - Avenleft的专栏 - 博客频道 - CSDN.NET Avenleft的专栏 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! 消灭0回答,赢下载分 “我的2013”年度征文活动火爆进行中! 专访何海涛:“不正经”程序员的进阶之路 Android APK反编译查看源码及资源文件 分类: Android 2013-05-20 15:43 978人阅读 评论(0) 收藏 举报 本文主要介绍如何反编译Android应用程序查看源代码、资源文件和xml文件以及修改后重新打包成APK。鼓励大家反编译去学习他人的设计而不是将应用换壳后混乱市场。也可以直接使用网友整理的 anti-droid. Android APK实际就是个Zip文件,可以解压缩后反编译查看源代码和资源文件。以下以微信为例: 我们可以右击APK文件,”打开方式”选择Winrar压缩文件管理器,截图如下: 是不是跟程序的目录结构很像,源码已经被压缩在了classes.dex文件中。这里我们可以直接查看res下面的图片文件,但对于源代码无法查看,AndroidManifest.xml清单等xml文件打开也是乱码。 需要用到的工具包下载地址(截止2013-03-14最新),包括dex2jar、jd-gui、apktool。也可以在下面需要时分别下载最新。 1、 查看源码 (1) 修改待反编译文件后缀.apk为.zip后用winrar解压,记录classes.dex的路径。 (2)使用工具包中的android-reverse-trinea\dex2jar-0.0.9.13或下载最新的dex2jar后解压,在命令行运行 1dex2jar classes.dex的路径如下:结果会在classes.dex所在目录下生成classes_dex2jar.jar,用jd-gui.exe(使用工具包中jd-gui或下载最新)打开此文件,如下:从中我们可以大致了解代码结构,虽然源码经过proguard混淆后可读性很差,但还是可以通过关键字(不可混淆的类名等)查找获取到一定的信息。不过jd-gui无法通过源码查找,只支持查找类型、构造函数、常量、属性、方法。 2、查看资源文件和xml文件(1)使用工具包中的android-reverse-trinea\apktool-1.5.2-windows或下载最新的apktool(需同时下载apktool及对应平台的依赖包,解压后将平台依赖包中的apktool.jar复制到apktool目录下),在命令行运行 1 apktool.bat d -f xxx.apk xxx 其中d表示解包,xxx.apk为待反编译apk路径,xxx为目标文件夹名,(apktool不支持中文目录),如下: 结果会再apktool.bat所在目录下生成weixin文件夹,现在就可以正确的查看xml资源(包括res下的所有资源,如点9图片、drawable、layout、value、menu等等)了,比如AndroidManifest.xml 3、修改后重新打包成APK 依然使用步骤2中的apktool,命令如下 1 apktool.bat b xxx 其中b表示build,xxx表示步骤2中解包出来的文件夹,我们可以对某一文件进行修改,重新打包 打包完成后会在xxx目录下生成build和dist两个文件夹,dist存放重新生成的APK,build存放该APK的具体组成信息。 这里我们可以简单的替换资源也可以通过修改smali完成代码的修改,别做坏事哦^_*。 更多 上一篇:viewpager 左右循环 导航任意定位 状态显示 下一篇:Ubuntu下解压rar文件的方法 查看评论 * 以上用户言论只代表其个人观点,不代表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 个人资料 Avenleft 访问:54178次 积分:1020分 排名:第12863名 原创:42篇 转载:53篇 译文:0篇 评论:16条 文章搜索 文章分类 iBatis(6) jbpm(1) JDK(4) Log4j(3) Maven(3) Oracle(9) Struts1(4) Tomcat(6) Android(52) eclipse(2) ubuntu(5) 文章存档 2014年01月(2)2013年12月(4)2013年11月(8)2013年10月(7)2013年09月(1)2013年08月(9)2013年07月(2)2013年05月(2)2013年03月(1)2012年12月(5)2012年11月(1)2012年06月(2)2012年04月(1)2012年03月(5)2012年02月(3)2012年01月(1)2011年12月(2)2011年11月(2)2011年10月(3)2011年09月(4)2011年08月(5)2011年07月(3)2011年05月(2)2011年04月(19)2011年03月(1) 阅读排行 android ListView 几个重要属性(10404) setBackgroundDrawable和setBackgroundColor的用法(7150) phoneGap插件(5293) jqueryMobile+phoneGap(5213) Maven+SVN+Myeclipse项目构建(1724) ibatis多个dataSource配置(1661) Maven+Tomcat(1445) expandableListView checkbox(1321) phoneGap插件推荐(1196) Oracle 字符串 不等于 null值处理(1052) 评论排行 phoneGap插件(5) jqueryMobile+phoneGap(4) android ListView 几个重要属性(2) Android Activity加入半透明蒙板,实现夜间模式(1) ibatis多个dataSource配置(1) viewpager 左右循环 导航任意定位 状态显示(1) Maven+SVN+Myeclipse项目构建(1) setBackgroundDrawable和setBackgroundColor的用法(1) 用java调用oracle存储过程总结(0) ubuntu jdk eclipse myeclipse tomcat android 破解,安装(0) 推荐文章 最新评论 Android Activity加入半透明蒙板,实现夜间模式 u011055344: 麻烦带点注解。。代码质量太低了 phoneGap插件 wang_double1face: @Dali871125:请问下为什么我调不到send方法呢,求不吝赐教! phoneGap插件 wang_double1face: 大哥,请问一下我怎么调不到send方法啊? android ListView 几个重要属性 FUCAIHE: 学会这九条,基本上就够了 viewpager 左右循环 导航任意定位 状态显示 zhang_xuwen: 亲,我想说你这种实现,是有问题,不能完美解决平滑过渡的作用。看了很多网友的案例。必须在适配器里去解决... Maven+SVN+Myeclipse项目构建 xiangyangsanren: 兄弟,你写的也太简洁了,好歹加上点简要的说明呐…… android ListView 几个重要属性 wang84100: 不错。不错 jqueryMobile+phoneGap LIUHUATUOI: 请问楼主为什么我点击的button之后没有反应呢? phoneGap插件 Dali871125: 接受信息的模拟器读取的手机号是怎么来的啊?我用5554模拟器向5556模拟器发送信息,5556收到的... phoneGap插件 Dali871125: 点击send按钮后logcat信息提示TypeError:Result of expression ...