apk破解之dexdump反编译Android程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
apk 破解之dexdump 反编译Android 程序-OMS 操作系统平台专区-(转载)2010-07-0717:28
反编译Android 程序目前没有什么好的方法,但是在Android Emulator 中可以找到一个名为dexdump 的程序,文件中的dex 执行情况,ophone
一些底层的xx。
相关内容都放到了dex文件中,为什么要反编译apk文件呢?就目前来看Android 开放度还很低,很多东西只对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google An droid平台选择了Ja容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的Jar压缩格式一样,不过比较去别的是An droid上的二进制代码被编译成为Dex的字节码,所有的Java文件托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及到的方法都在里面体现到时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。模拟器自带了一个dexdump,有兴趣的关APK文件的汉化,我们将在下一次做详细的分析,因为这里主要是修改的不是dex而是资源文件,使用类似齐的方
式逐个替换即可,最终再签名下即可使用,这样的行为可以算作是非法修改,不过目前这样的方法在国内AndroidMarket上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取
觉着这 2 个工具配合学习android 太靠谱了,所以放上来给大家共享,开源的
好处就是好东西大家一起分享;
1. 首先找到Android 软件安装包中的class.dex
源文件;
2. 把class.dex拷贝到dex2jar.bat所在目录。
运行dex2jar.bat classes.dex 生成classes.dex.dex2jar.jar
3. 运行JD-GUI工具(它是绿色无须安装的)
打开上面的jar 文件,即可看到源代码
俺也是今天才试验了下效果,那是相当的凑效,所以兄弟姐妹们觉着好就给句鼓励的话
把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上
关于apk文件反编译的方法(dex2jar和JD-GUI)
1、下载dex2jar 最新版本
0.0.7,下载地址http:
2、下载class反编译工具,我用的是jad,大家可以根据自己情况选择。
3、在cmd下进入dex2jar.bat所在路径,然后输入“ dex2jar.bat XXX XX” 指的是你要反编译的apk 中的cla 比如:
我的dex2jar.bat 在D:
\Android\apk_decode\dex2jar-
0.0.7-SNAPSHO路径下,classes.dex在D:
\Andro 所以:
你进入dex2jar.bat路径下后,输入dex2jar.bat D:
\Android\classes.dex
4、这样会生成一个jar文件,然后用jad工具将.class文件反编译成.java文件。
5、反编译jar 文件,见附件
要反编译一个apk 译文件,需要做以下几步:
1. 找到apk 安装文件
2. 找到安装软件的*.dex 译文件
3. d ump dex 文件
4. 分析dex 文件获取想要的代码
1. 找到apk 安装文件
$ adb shell
# cd /system/app
cd /system/app
# ls
这个比较容易,把手机或者模似器安装好后,可以在eclipse的File Explorer 下找到安装程序的apk 译文件,也
2. 找到安装软件的*.dex 译文件
运行安装软件后,会在android 文件系统下生成一个*.dex 文件,一般在目录
/data/dalvik-cache 下,也可以通过a$ adb shell
# cd /data/dalvik-cache
cd /data/dalvik-cache
# ls
3. 编译软件对应的dex 文件,通过以下指令:
adb shell dexdump -d -f -h /data/dalvik- cache/data@app@be.citylive.twitpic.apk@classes.dex > twitpic.text 指令参数解释:
-d :
disassemble code sections
-f :
display summary information from file header
-h :
display file header details
-C :
decode (demangle) low-level symbol names
-S :
4. 获取需要的代码:
打开刚才得到的编译出来的text 文件,会看到形如以下的代码:Class #0 header:
class_idx :
32
access_flags :
196625 (0x30011)
superclass_idx :
61
interfaces_off :
0 (0x000)
从这个译文件里我们很容易得到代码信息
首先要把apk的class.dex dump出来、
具体步骤:
1. 用winrar或者winzip打开apk,直接拖出来。
2. 用android sdk
1.1版本以上的一个dexdump工具把class.dex文件dump成文本:
把刚才的class.dex文件放在和dexdump工具同目录用命令窗口执行: