`

一个APK反编译利器Apktool

 
阅读更多

一个APK反编译利器Apktool


APK 本地化  


说起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,就是可以装到手机里的了。



操练:去掉免费版软件的广告条


打开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 “
           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″ 
           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罢了


分享到:
评论

相关推荐

    安卓apk反编译利器Apktool

    【安卓apk反编译利器Apktool】 在移动应用开发领域,有时我们可能需要查看或修改已安装在设备上的APK文件,以便于学习、调试或者优化应用。这时,就需要用到工具如Apktool,它是一个强大的Android APK反编译工具。...

    apk反编译利器 apktool

    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 ...

    Android反编译工具apktool

    Apktool是一个开源的Java工具,允许开发者解压、反编译和重新打包Android的APK文件,它极大地简化了对APK资源的分析和修改过程。 **1. Apktool介绍** Apktool由IzzySoft开发,其主要功能包括: - **反编译**: 解析...

    Android逆向助手(APK反编译利器)

    《Android逆向助手:APK反编译利器详解》 在移动应用开发的世界里,APK反编译是一项重要的技术,它能帮助开发者理解和分析已有的Android应用程序,以获取其内部工作原理、代码结构或者安全漏洞。Android逆向助手...

    APK反编译签名工具APKTOOL 1.4.9 支持安卓4.1

    总的来说,APKTOOL是一个强大的开发和分析工具,对于Android开发者和安全研究者来说,它是理解、调试和定制APK文件不可或缺的利器。然而,使用时必须遵循适当的伦理和法律规范,以避免不必要的麻烦。

    解包反编译利器 apktool-dex2jar二合一

    继承了apktool解包以及dex2jar反编译工具,只需直接解包,并把目录添加到path路径,apk + apk全路径即可直接解包到f:\apk, dex + dex文件全路径即直接生成jar文件到f:\dex。

    APK反编译签名工具APKTOOL 2.0.0RC3自动脚本,支持安卓4.4

    APK反编译签名工具APKTOOL 2.0.0RC3是一款专为安卓开发者和逆向工程师设计的强大工具,它允许用户对APK文件进行反编译、修改和重新打包。APKTOOL的主要功能是解析APK文件中的资源文件,包括XML布局、图片、音频和...

    apk反编译工具.zip

    APK反编译是Android应用开发领域中的一个重要概念,它涉及到对APK文件的解包、反汇编和分析,以便理解应用程序的工作原理、提取资源或进行二次开发。本资源包含一套适用于Windows平台的apk反编译工具,截至2021年1月...

    最全Android反编译工具apktool_2.3.2.jar、dex2jar-2.0.zip、jd-gui-windows-1.4.0.zip

    总的来说,"反编译工具三剑客"(apktool、dex2jar、JD-GUI)是Android开发者不可或缺的利器,它们在逆向工程、调试和安全审计等方面发挥着重要作用。了解并熟练掌握这些工具的使用,对于提升开发者的技术水平和解决...

    apk反编译工具

    总之,apktool2.0作为一个强大的APK反编译工具,对于Android开发者、安全研究者以及爱好者来说,是一个不可或缺的利器,它提供了深入理解APK内部工作原理和定制应用的途径。然而,正确和合法地使用这些工具至关重要...

    android 反编译工具apktool,AXMLPrinter2

    **Apktool** 是一个开源的Android反编译工具,由布拉德利·布什(Bradley Busey)开发。它能够将APK文件解包为原始的Smali代码(一种Dalvik虚拟机的汇编语言),同时保留资源文件的结构。Apktool支持资源的重新打包...

    android apk 反编译工具

    本篇文章将详细介绍三种常用的Android APK反编译工具:Apktool、dex2jar和JD-GUI。 首先,我们来了解一下什么是APK文件。APK是Android应用的安装包,包含了应用的所有资源、代码、库和清单文件。由于APK文件是经过...

    Apktool反编译工具

    **Apktool反编译工具**是Android开发者和安全研究人员常用的一款开源工具,主要用于对APK文件进行反编译、修改和重新打包。这个工具能够帮助我们深入理解APK文件的内部结构,包括查看源码、修改资源以及签名等操作。...

    apktool反编译android工具

    《深入理解apktool:Android应用的反编译利器》 在Android开发领域,apktool是一款极为重要的工具,它主要用于反编译APK文件,帮助开发者分析应用内部结构、查看源码,甚至修改后再重新打包。本文将详细探讨apktool...

    android APK反编译工具

    总之,“android APK反编译工具”是Android开发者和逆向工程师的利器,它可以帮助我们洞察APK的内部运作,但也需谨慎使用。通过结合各种工具和方法,我们可以深入理解APK的各个层面,提升我们的开发技能和解决问题的...

    apktools反编译apk文件的利器,

    本文将深入探讨apktools及其在APK反编译过程中的作用。 首先,我们要明确什么是APK文件。APK是Android应用程序的安装包,包含了应用程序的所有组件,如Java字节码、资源文件、Manifest.xml等。当用户从Google Play...

    反编译Apktool+jadx源码.rar

    "反编译Apktool+jadx源码.rar"是一个压缩包,其中包含了用于Android APK反编译的两个主要工具——Apktool和jadx。这两个工具是开发者和安全研究人员常用的分析APK文件的利器。 首先,我们来详细了解一下Apktool。...

Global site tag (gtag.js) - Google Analytics