这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。

一.反编译Apk得到Java源代码

首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

具体步骤:

1.                            首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;

2.                            解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运行

dex2jar.bat classes.dex

生成classes.dex.dex2jar.jar

3.                            运行JD-GUI,打开上面生成的jar包,即可看到源代码了。

二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件

如果是只是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool,下载地址:

http://code.google.com/p/android-apktool/,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

具体步骤:

1.                            将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar;

2.                            在命令行下定位到apktool.bat文件夹,输入以下命令:

apktool d C:\***.apk  C:\***文件夹

命令行解释:apktool d [要反编译的apk文件 ] [输出文件夹],特别注意:你要反编译的文件一定要放在C盘的根目录里;

3.                            将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可。

dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。

dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
     Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz

1.首先找到Android软件安装包中的classes.dex

把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

2.把classes.dex拷贝到dex2jar.bat所在目录。
windows系统下:
在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar

Ubuntu系统下:(3楼正解!)

在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex

则可生成classes.dex.dex2jar.jar

3.运行JD-GUI工具(它是绿色无须安装的)

打开上面的jar文件,即可看到源代码

一个APK反编译利器Apktool(android汉化)

2010-07-19 18:52

转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html

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,回车。

1.       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命令行里,输入:

1.       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″ 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罢了

windows下安装APK文件到Android模拟器的方法

2010-07-20 18:29

文章转载自:http://www.cnmsdn.com/html/201003/1268078962ID1594.html

一、安装APK文件到模拟器

  Android手机使用的执行文件为APK格式,类似于Windows平台的exe文件。在Android模拟器中安装APK文件有多种方法,如果你是开发人员,可以通过Eclipse+ADT,使用DDMS(Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等)可以传输文件。大多数可以直接在Windows的cmd中操作就可以了。

  一、首先在Android SDK的Tools文件夹中找到emulator.exe文件并运行,这时Android模拟器就启动了,

  二、 将android123.apk文件复制到Android SDK的Tools目录中,使用cmd的cd命令定位到Android 模拟器目录Tools中,执行adb install android123.apk命令,这时模拟器将会自动执行安装。

  三、在Android模拟器中可以找到我们安装好的文件。

  四、 用鼠标单击这个文件就可以看到程序。

  写在最后我们可以发现安装Android软件到模拟器很简单,只需要执行adb install命令就可以了,当然其实我们做的是复制文件到Android模拟器的/data/app文件夹,并创建了一个快捷方式。

  二、adb命令的使用

  adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态 。还可以进行以下的操作:

  1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

  2、在设备上运行shell命令;

  3、管理设备或手机模拟器上的预定端口;

  4、在设备或手机模拟器上复制或粘贴文件;

  以下为一些常用的操作:

  1、安装 应用到模拟器:

  adb install

  比较遗憾的是,Android并没有提供一个卸载 应用的命令,只能自己手动删除 :

  adb shell

  cd /data/app

  rm app.apk

  2、进入设备或模拟器的shell:

  adb shell

  通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

  adb shell [command]

  如:adb shell dmesg会打印出内核的调试信息。

3、发布端口:

  可以设置任意的端口号,做为主机 向模拟器或设备的请求端口。如:

  adb forward tcp:5555 tcp:8000

  4、复制文件 :

  可向一个设备或从一个设备中复制文件,

  复制一个文件或目录到设备或模拟器上:

  adb push

  如:adb push test.txt /tmp/test.txt

  从设备或模拟器上复制一个文件或目录:

  adb pull

  如:adb pull /addroid/lib/libwebcore.so .

  5、搜索模拟器/设备的实例:

  取得当前运行的模拟器/设备的实例的列表及每个实例的状态:

  adb devices

  6、查看bug报告:

  adb bugreport

  7、记录无线通讯日志:

  一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

  adb shell

  logcat -b radio

  8、获取设备的ID和序列号:

  adb get-product

  adb get-serialno

  9、访问数据库SQLite3

  adb shell

  sqlite3

  10、通过gsm call命令可以像Android 模拟器打电话 ,除了在EclipseADT 的DDMS中通过按钮Dial外,还可以通过DDMS外壳调用gsm call命令直接拨打,我们首先需要启动AndroidEmulator,然后在cmd环境下执行telnet localhost 5554 下面就可以向Android模拟器 拨号,参数为gsmcall < phoneNum> ,比如给10086打电话 为gsm call +10086

Android APK反编译得到Java源代码和资源文件相关推荐

  1. Android APK反编译得到Java源代码或资源文件

    一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源 ...

  2. android apk反编译(获取源码,资源文件等)

    android apk反编译,是让你可以去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局是怎么实现的 一.当然我们也需要借助工具: apktool (资源文件获取,可以提取出图片文件和布局文件 ...

  3. Android APK反编译

    转自:http://blog.csdn.net/ithomer/article/details/6727581 一.Apk反编译得到Java源代码 下载上述反编译工具包,打开apk2java目录下的d ...

  4. 【转】Android APK反编译就这么简单 详解(附图)

     转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...

  5. Android APK反编译就这么简单 详解(图文详解)

    前言 自己很早以前就在反编译,但是知道今天要做才又捡起来了,今天就把他记录下来吧. 工具准备 1.测试环境: win10 2.使用工具: 2.1 CSDN上下载地址: apktool dex2jar ...

  6. Android APK反编译详解(附图)(转)

    原文转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到 ...

  7. Android APK反编译就这么简单 详解

    转载原文:http://blog.csdn.net/vipzjyno1/article/details/21039349/ 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些 ...

  8. Android APK反编译详解 .

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

  9. Android APK反编译详解(转)

    转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代 ...

  10. Android APK 反编译apk 如何破译apk

    题记:在开发中可能看到别的app有一些精美的画面和绚丽的动画效果很漂亮,忍不住想借鉴下,很想知道它是怎么实现的.于是就寻找实现的方法,在这里总结了一下获取的经验.反编译apk的实现过程在这里分享给小伙 ...

最新文章

  1. redis面试知识点和内存算法了解
  2. python图片-利用python进行识别相似图片(一)
  3. 修改sublime列编辑快捷键
  4. Kotlin-如何创建一个好用的协程作用域
  5. Django中Form组件的使用
  6. 关于ubuntu下无线网卡经常连不上网络的问题
  7. unity3d api 中文文档_官方文档
  8. 源码分享:打造「螃蟹火星车」,遥控、拍照、测距,还能做人脸检测;
  9. 【WILSON】上帝手中的权杖: 费德勒球拍全系列
  10. MySQL的用户密码过期password_expired功能
  11. 蓝魔手机回归产品本身 老战友魅族OPPO怎么看?
  12. 研一学习生活的总结~
  13. 暴光史上最强的女生勾引男生的方法
  14. 数据库系统原理概念整理(备考)
  15. python图灵机器人微信号_个人微信接入图灵机器人(基于Python)
  16. Android中相对布局是,Android之相对布局
  17. 还在为PPT烦恼?有了这四大高质量的PPT模板网站,1秒做出精美PPT
  18. 关于Fluent网格尺寸的疑惑
  19. 基于ThinkPHP5 使用QueryList爬取 并存入mysql数据库
  20. redis活跃非活跃连接数统计及client list说明

热门文章

  1. 在 .NET 6 项目中使用 Startup.cs
  2. sparkStreaming基础知识整理
  3. java foreach 中止_如何正确终止 forEach
  4. nms网关服务器日常维护,ZXB10-NMS网管解决方案
  5. city机器人 东京diver_东京一日游路线推荐
  6. UI 设计师不容错过的12款APP UI 交互设计
  7. cba比赛比分预测_昨日预测CBA一红一黑,今日继续给大家带来CBA全部比赛4场
  8. 女朋友让我深夜十二点催她睡觉,我有Python我就不干
  9. 2020年计算机组装行业,组装电脑已成夕阳产业?DIY装机发展的道路在何方?
  10. Tuna Scope 金枪鱼猎手:当顶级吃货,搞起图像识别