前往Shuct.Net首页

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

关于反编译的搜索

ApkTool反编译和重新打包 - Android学习进行时 - 博客频道 - CSDN.NET Android学习进行时 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! 消灭0回答,赢下载分 “我的2013”年度征文活动火爆进行中! 专访何海涛:“不正经”程序员的进阶之路 ApkTool反编译和重新打包 分类: android 2013-04-23 15:04 2775人阅读 评论(2) 收藏 举报 有时会需要反编译APK,各人有各人的原因,你都懂的…… 准备工作: 下载APKTool,通过下面这个连接进行下载,https://code.google.com/p/android-apktool/downloads/list windows下只需要下载这两个文件包即可:apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2 分别解压到到一个方便操作的目录下,然后就可以通过控制台进行操作了,当然前提是你配置已经有了JAVA环境,这个网上一搜一大堆,就不赘述了。 反编译: 把要反编译的APK文件放到跟APKTool四个文件的同一个目录下; 打开控制台,跳到该目录(例如是C:\Windows),执行: cd C:\Windows 然后执行: apktool d apkname.apk foldername apkname.apk 表示要进行反编译的APK文件,foldername表示反编译后文件存放的目录,即在当前目录下会自动建一个新目录存放(如:C:\Windows\foldername) 执行完上面语句后,如果没有出现错误提示,则成功反编译了,找到foldername目录,打开smali目录即为反编译出来的字节。 但我在执行上面语句后,却出现了错误提示: Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x010300dd 根据提示描述是找不到资源文件,应该是要反编译的APK文件用到了系统的一些资源。 解决办法: 从手机中导出framework-res.apk文件,该文件是/system/framework下面,把这个文件拷到跟apkTool同一个目录下,执行以下语句把资源文件加进来: apktool if freagmework-res.apk 执行完以后就可以把framework-res.apk导进来。此时再执行apktool d即可以正常反编译了。 由于反编译出来的是字节码,所以想修改软件逻辑就需要知道一点字节码的知识,可以看这里:寄存器、类型、函数和成员、操作符号。 在这里列举几个常用的逻辑符号的对应smali语法: 符号 smali语法 == if-eq != if-ne equals if-eqz !equals if-nez 修改完代码逻辑后,就要重新打包成APK文件了: apktool b foldername 其中foldername即放反编译结果的目录,执行成功后会在该目录的dist目录下有一个重新打包后的apk文件。 当然我在重新打包时出现了错误提示: Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN otExist: apktool.yml 从字面上理解就是找不到apktool.yml这个文件,如果在执行apktool d后能正常反编译,在目录中是会存在apktool.yml文件的,我之所以出现这个错误,是因为在反编译时出现了上面提到的“资源找不到”错误后,我看到反编译出了字节码,就没有理会它导致的。 好啦,到此就成功打包了一个新的apk文件了,但还不要高兴得太早,该文件是一个没有签名的apk,有了解过android的应该都知道,没有签名是无法安装的。那就要重新为该文件签一下名了。把你的签名文件和apk拷到同一个目录下,然后执行以后语句即可: jarsigner -verbose -keystore wendy.keystore -signedjar wendy_signed.apk wendy.apk wendy.keystore 这里输入wendy.keystore即你的签名文件名称,文件wendy.apk,最终生成wendy_signed.apk为Android签名后的APK执行文件。 大功告成!!! 参考文章: http://blog.creke.net/786.html http://blog.csdn.net/caszhao/article/details/6030425 http://danqingdani.blog.163.com/blog/static/1860941952012103041246686/ http://blog.csdn.net/wenhaiyan/article/details/5520964 Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x010300dd 更多 上一篇:华为手机调测时没有日志输出 下一篇:101个鲜为人知的超实用网站 顶 1 踩 0 查看评论 * 以上用户言论只代表其个人观点,不代表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 个人资料 sam_zhang1984 访问:114463次 积分:1656分 排名:第6783名 原创:27篇 转载:102篇 译文:4篇 评论:78条 文章搜索 文章分类 android(11) android帮助文档翻译(5) JAVA(2) Mars Android视频学习笔记(7) 个人(3) 转 Android知识(35) 转 JAVA知识(3) UI(2) 推送(4) 学习笔记(5) 设计(2) 服务器(4) PHP(1) SQL(1) 文章存档 2013年10月(1)2013年09月(3)2013年08月(2)2013年07月(2)2013年05月(4)2013年04月(3)2013年03月(2)2013年02月(1)2012年12月(2)2012年11月(1)2012年10月(3)2012年09月(3)2012年08月(5)2012年07月(4)2012年05月(1)2012年04月(4)2012年03月(14)2012年02月(25)2012年01月(2)2011年12月(4)2011年11月(3)2011年10月(1)2011年09月(1)2011年06月(2)2011年05月(14)2011年04月(2)2011年03月(20)2011年02月(4) 阅读排行 收到短信了,我该做点什么?(3957) ActivityGroup中切换Activity(3839) Android webview背景设置为透明无效(3621) Android中如何通过程序打开或关闭GPS(3080) ApkTool反编译和重新打包(2774) Mars Android视频学习笔记(2741) ViewPager中嵌套ViewFlipper手势冲突的解决办法(2487) Android帮助文档翻译——开发指南(二)Activity(2437) 调用Android短信软件进行短信群发(2267) SharedPreferences的使用(2216) 评论排行 ViewPager中嵌套ViewFlipper手势冲突的解决办法(7) Mars Android视频学习笔记——01_18_文件下载(6) [Android] 来电归属地查询的实现思路(5) Android API:Activity.managedQuery() (4) 调用Android短信软件进行短信群发(4) Android帮助文档翻译——开发指南(一)应用程序基本原理(4) “印象笔记”使用笔记(4) Android本机联系人操作点滴(3) androidpn研究成果(3) Android中如何通过程序打开或关闭GPS(3) 推荐文章 最新评论 Android webview背景设置为透明无效 Yu9922: 确实不错哦,我这边设置成功,搞定,谢啦 ActionBarSherlock混淆问题 lmy_java: 解决问题,多谢! “印象笔记”使用笔记 Laotu5i0: 哦,sorry 。我忘记说了,我用的 java-sdk “印象笔记”使用笔记 Laotu5i0: 你好!我内容提交上去了(里面包含图片),但是获取笔记内容的时候,不知道怎样获取里面的图片,你有碰到过... Mars Android视频学习笔记——03_03/04_用户定位 shishenfengbao: google map api升级成v2了,用MapActivity不行了 ApkTool反编译和重新打包 sam_zhang1984: @Charein:good ApkTool反编译和重新打包 Charein: 补充说明:如果使用了命令 apktool if framework-res.apk仍然出错的话,使用... “印象笔记”使用笔记 sam_zhang1984: @yangningbo:印象笔记对提交内容的HTML格式要求非常严格,上面那两个问题也只是我自己发现... 华为手机调测时没有日志输出 sam_zhang1984: @ttjjttjj1101:就在拨号那里输入啊 华为手机调测时没有日志输出 ttjjttjj1101: 你好,在那输入* # * # 2846579 # * # *???,在那设置???