前往Shuct.Net首页

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

关于反编译的搜索

反编译apk - 可以正常反编译xml和java文件 - zx19899891的专栏 - 博客频道 - CSDN.NET zx19899891的专栏 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! 消灭0回答,赢下载分 “我的2013”年度征文活动火爆进行中! 专访何海涛:“不正经”程序员的进阶之路 反编译apk - 可以正常反编译xml和java文件 分类: android 2012-05-12 01:35 3066人阅读 评论(5) 收藏 举报 xmljavajar工具工作android 我们知道,apk程序实际上是个压缩包,通过解压后发现里面主要是一些xml文件和一个classes.dex文件,xml对应于android工程中的各种原始xml文件,而classes.dex则是由工程中的src下的java文件编译而成,所以我们主要的反编译工作就分别针对xml文件和dex文件来进行。 1.反编译xml文件 如果直接解压apk,打开里面的xml文件发现全是些看不懂的乱码,为了能够正常的反编译,首先需要下载一个apktool工具(http://code.google.com/p/android-apktool/),如果是window平台,就要下载apktool1.4.3.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2,然后都解压到同个目录下,这里为了以后使用方便,我直接将其拷贝到sdk的platform-tools,进入命令行,然后进入到你存放apk的目录下,我这里就直接放在d盘根目录下,执行下图所示命令 其中的mytext是由你任意指定的,执行完后就在d盘下生成一个mytext文件夹,进入该文件夹,打开其中任意个xml文件,你会发现再也没有乱码了,都是你看得懂的。。。另外还有个文件夹smali,这个其实是反编译classes.dex到java文件的一个中间文件类型,虽然能看懂点,可是还是不能像看java文件那么爽,所以就用第二步中的方法单独反编译这块。 2.反编译classes.dex 首先下载dex2jar(http://code.google.com/p/dex2jar/)和XJad,同样为了执行方便,我直接将解压后的dex2jar文件夹里的所有内容拷贝到sdk的platform-tools,之后进入命令行,执行如下命令,其中classex.dex文件是用常用的解压缩工具解压apk后得到的。 执行完后,就在d盘下生成一个classes_dex2jar.jar 包,然后运行刚才下载的XJad中的XJad.exe,依次点击菜单-文件-反编译jar文件,选择刚生成的jar包,稍等片刻后即可在jar同目录下生成一个~classes_dex2jar.jar这样的目录,进入后会发现全是java类型的文件,而且按文件夹都分好类了,这些你都能读得懂。 至此,将1步反编译出的xml文件和2步反编译出的java文件和在一起,就完成了一个apk的反编译工作,你可以尝试各种第三方开发的apk,基本都能解压出来,希望对大家有所帮助。 所有工具我都打包上传了:http://download.csdn.net/detail/zx19899891/4296409 更多 上一篇:Eclipse在开发android程序时使用的常见快捷方式 下一篇:采用Thread.join()或CountDownLatch来实现线程间同步 查看评论 * 以上用户言论只代表其个人观点,不代表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 个人资料 zx19899891 访问:50080次 积分:709分 排名:第19710名 原创:16篇 转载:26篇 译文:1篇 评论:47条 文章搜索 文章分类 android(35) 日常电脑问题(2) 杂谈(3) 文字(2) 文章存档 2014年01月(1)2013年11月(2)2013年10月(4)2012年12月(2)2012年08月(1)2012年06月(1)2012年05月(2)2012年04月(3)2012年03月(4)2012年02月(6)2011年12月(4)2011年11月(1)2011年07月(4)2011年06月(5)2011年05月(3) 阅读排行 android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed(14877) ADB server didn't ACK * failed to start daemon * error: unknown host service(6613) Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续)(3290) 反编译apk - 可以正常反编译xml和java文件(3066) Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(2257) 手机中的Zip格式文件解压和文件夹的压缩(2082) 一种新的MAT使用方法分析内存溢出问题(1980) Android下调试.so库类的bug(1548) 在Eclipse中查看Andriod 的源代码(1524) 在Microsoft Office Word 或者WPS中插入代码实现色彩高亮和保持原有格式(1365) 评论排行 Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续)(21) 反编译apk - 可以正常反编译xml和java文件(5) Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(4) android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed(4) 在Microsoft Office Word 或者WPS中插入代码实现色彩高亮和保持原有格式(3) ADB server didn't ACK * failed to start daemon * error: unknown host service(3) onScreenHint,一个比toast更加灵活的提示类(2) 温馨提示:Android 的 XML 文件是是区分大小写的(2) 在Eclipse中查看Andriod 的源代码(1) 采用Thread.join()或CountDownLatch来实现线程间同步(1) 推荐文章 最新评论 Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) DROfanghuang: lz可以发个工程学习一下吗?1009425286@qq.com Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) littlemartin: 感谢楼主分享。 很多人都没有源码编译环境,能帮忙发一个so让我测试一下吗? 好用了去折腾源码编译... Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) lvl408626166: 楼主能不能给个源码啊。或者so文件也行啊,急求啊,谢谢lvl1989@126.com Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) lvl408626166: @zx19899891:请问一下你用的什么环境呀。我的环境为什么不行呢 android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed jyd63: 理解了 ADB server didn't ACK * failed to start daemon * error: unknown host service zhangle123: 给力 ADB server didn't ACK * failed to start daemon * error: unknown host service sunzash: 楼主太给力了 轻松解决我手机root中遇到的这个问题。。。 Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) leif2006: 我的 status_t err = composer->captureScreen(0, &heap... Android: How to Capture Screen in Gingerbread(2.3中实现截屏) leif2006: 我的 status_t err = composer->captureScreen(0, &heap... Android: How to Capture Screen in Gingerbread(2.3中实现截屏)(续) qiuru422757821: 楼主,能否给个源码,,,急求啊。。。。422757821@qq.com,拜托了