前往Shuct.Net首页

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

关于反编译的搜索

一个APK反编译利器Apktool_coffeebeer_新浪博客 加载中… coffeebeer的学习笔记 http://blog.sina.com.cn/coffeebeer [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 coffeebeer Qing 微博 加好友 发纸条 写留言 加关注 博客等级: 博客积分:581 博客访问:75,875 关注人气:19 天天美食 精彩图文 相关博文 更多>> 推荐博文 雕爷:《锤子手机的机会》 雕爷威武 对互联网金融的误读与正见 周展宏 王利芬、吴声、项立刚等财经大咖 张小平 LinkedIn 领 IT老友记 老冀看巴展第三期:高通高层谈专 IT老记 十余年的互联网思维总结——六字 南冥一鲨 新浪微博上市:迟来的盛宴,估值 王冠雄 对中国移动来说,互联网思维比融 付亮的竞争情报应用 老冀看巴展第二期:HTC让手机 IT老记 微信的版权屋顶漏雨了,快堵上吧 姜伯静 查看更多>> 谁看过这篇博文 加载中… 正文 字体大小:大 中 小 一个APK反编译利器Apktool (2010-07-15 13:07:22)转载▼ 标签: apktool apk 反编译 it 分类: Android 一个APK反编译利器Apktool APK 本地化 [http://www.andmoto.com/viewthread.php?tid=3873] 说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做。但是实际操作后,就会发现: 1、Hex Workshop操作繁琐,经常出现搜不到想要修改的字符的情况; 2、Android ResEdit简单用用可以,修改稍微复杂一点就会出现整条整条丢字符串的情况;并且新内容不能比原内容长——谁能保证我的本地化语言就一定比原来的短呢? 现在好了,老外写的《android-apktool》软件,可以帮助我们把APK反编译,生成程序的源代码和图片、XML配置、语言资源等文件。我们对图片和语言资源等文件修改后,可以再把它们编译打包成APK,签名后就是手机可以安装的本地化/修正版APK了。 《android-apktool》软件软件可以访问它的主页http://code.google.com/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。下载后解开,为了方便使用,按作者的推荐把得到的4个文件复制到C:\Windows文件夹里。 这个工具是Java写的,需要你的电脑安装了JRE或者JDK,并在系统环境变量Path里加入java.exe所在路径。 以上准备工作做好后,就可以用它来反编译APK了。这里我用动态壁纸的APK来做示范。 如果用过动态壁纸,你也许会发现在设置壁纸时,界面的显示有点问题:“动态壁纸”,在手机上中文显示为“当前壁纸”。这是“动态壁纸选择器”LiveWallpapersPicker.apk的翻译错误造成的。 (假设LiveWallpapersPicker.apk放在C盘根目录) 开始 > 运行,输入cmd,回车。 apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker" 复制代码 (命令行解释:apktool d 要反编译的文件 输出文件夹) 这样,LiveWallpapersPicker.apk就被反编译了,输出内容在C:\LiveWallpapersPicker文件夹里。 打开C:\LiveWallpapersPicker文件夹,我们发现里面有一些XML文件和一些文件夹。绝大部分情况下,语言和图片资源都在res文件夹里,我们这个例子当然不例外。 打开res文件夹,可以其中又是很多文件夹。(又是)绝大部分情况下,语言资源都放在values*文件夹里。比如说values放默认语言(英语居多),values-de放德语,values-fr放法语等等。一般我们关心的是values-zh-rCN(简体中文)和values-zh-rTW(繁体中文)。 打开values-zh-rCN文件夹,其中有个strings.xml。打开看看: <?xml version="1.0" encoding="UTF-8"?> <resources> <string name="application_name">动态壁纸选择器</string> <string name="live_wallpaper_picker_title">当前壁纸</string> <string name="live_wallpaper_preview_title">当前壁纸预览</string> <string name="configure_wallpaper">设置...</string> <string name="wallpaper_instructions">设置壁纸</string> <string name="live_wallpaper_empty">无当前壁纸。</string> <string name="set_live_wallpaper">设置壁纸</string> <string name="wallpaper_title_and_author">%1$s提供者:%2$s</string> <string name="live_wallpaper_loading">正在载入当前壁纸…</string> </resources> 很好,就是它了。把“当前壁纸”都改为“动态壁纸”,再检查和修正标点——中文内容用中文标点(强烈呼吁大家注意标点问题,目前马大哈太多了)后,保存。 本例改这么多就够了。其它复杂的APK建议把res文件夹里的内容都检查下,至少你关心的语言文件夹里的内容都检查下。 改完后,就可以重打包了。还是在cmd命令行里,输入: apktool b "C:\LiveWallpapersPicker" 复制代码 (命令行解释:apktool b 要打包内容所在文件夹) 就可以了。生成的APK在C:\LiveWallpapersPicker\dist文件夹里,叫out.apk。 这个out.apk是没有签名的,所以不能直接装到手机里。签名工具和方法见http://www.hiapk.com/bbs/thread-21261-1-1.html,这里不说了。 签名后得到的APK,就是可以装到手机里的了。 操练:去掉免费版软件的广告条 [http://bbs.ophone8.net/viewthread.php?tid=18082] 打开google code发现Apktool更新了,居然支持win了。。。。 那本文就是一篇介绍在windows环境下使用Apktool的笔记。 安装 1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧 2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip 3.解压apktool.jar到 C:\Windows 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录) 4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了。Apktool 命令 apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk 然后我们反编译一枚软件玩玩… AutoMemoryManager的免费版底部有一条广告,去掉它吧。 把com.lim.android.automemman.apk放到同文件夹(我的就是E盘根目录) Win+R 运行CMD E:<回车> E:\>apktool d com.lim.android.automemman.apk AMM <回车> I: Baksmaling… I: Decoding resource table… I: Decoding resources… I: Copying assets and libs… 现在文件被decode到E:\AMM了,打开E:\AMM\res\layout\main.xml看,所有都可见了吧~ 编辑第59行 <com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000&Prime; admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” /> 改为 <com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000&Prime; admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” /> 然后CMD输入 E:\>apktool b AMM I: Checking whether sources has changed… I: Smaling… I: Checking whether resources has changed… I: Building resources… I: Building apk file… 用Auto-sign签名E:\AMM\dist\out.apk 安装 这样广告就不见了 再看,嘿嘿~很帅吧… 这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了 分享: 喜欢 阅读┊ 评论 ┊ 收藏 ┊转载 ┊ 喜欢▼ ┊打印┊举报 已投稿到: 排行榜 圈子 加载中,请稍候...... 前一篇:GMail添加富文本签名特性 后一篇:2020年,中国将会是一个非常穷的国家! 评论 重要提示:警惕虚假中奖信息 | [发评论] 评论加载中,请稍候... 发评论 | 登录名: 密码: 找回密码 注册 记住登录状态昵 称: 分享到微博 评论并转载此博文验证码: 请点击后输入验证码 收听验证码 匿名评论 发评论 以上网友发言只代表其个人观点,不代表新浪网的观点或立场。 < 前一篇GMail添加富文本签名特性 后一篇 >2020年,中国将会是一个非常穷的国家! 新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正 新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑 Copyright &copy; 1996 - 2014 SINA Corporation, All Rights Reserved 新浪公司 版权所有