反编译odex


    闲谈odex与dex区别(转)

1、简单来讲,官方的版本就是ODEX化的,现在论坛的除了我发的DEX版本其他的都是ODEX版本。这个ODEX优化是什么意思呢?用大家容易理解的话来

说你可以想像一个APK是一个程序压缩包,里面有个执行程序,ODEX优化就是把包里面的执行程序提取出来,就变成ODEX文件,因为你提取出来了,系统第

一次启动的时候就不用去解压程序压缩包的程序,少了一个解压的过程。这样的话系统启动就加快了。为什么说是第一次呢?是因为DEX版本的也只有第一次会

解压执行程序到DATA目录,之后也是直接读取DATA的程序,所以第二次启动就和正常的差不多了。当然这只是简单的理解,实际生成的ODEX还有一定的优化

作用。


2、这里注意有两个区别,第一ODEX解压出来的执行程序是在SYSTEM目录的同名ODEX,DEX版的解压是在DATA区目录,大家对我做的两个版本可以

发现,ODEX化的版本的SYSTEM分区只有几M空间,而DEX版的空间还有28M,原因就在解压出来的执行程序位置不同。第二点是做了ODEX化的程序和框架

就不再是一个完整的程序了!因为ODEX是根据当前系统生成的,只能在生成ODEX的系统中运行!这个是ODEX的第二个作用防盗链!这也是直接复制带

ODEX的程序到其他固件不能运行的原因。

    工欲善其事,必先利其器

    odex解包打包工具 baksmali&&smali

http://code.google.com/p/smali/downloads/list

    dex转jar工具 

http://code.google.com/p/dex2jar/downloads/list


    系统文件收集

     收集目标手机system/framework中的架包文件,前面都说了odex是根据当前系统生成的,所以需要当前系统里面的架包来还原。



解包odex

现在已经完事具备,只欠动手了,东风都不需要大笑

        先用这条命令试试水 java -jar baksmali-1.3.2.jar -a 12 -x XXXX.odex

        按照墨菲定律来说.事情果然没有我想象的顺利,反编译报错提示找不到什么omadrmclient.odex google大神也帮不了我


error同行

提示上看,好像BootClassPath里缺少了OmaDrmClient.odex。这个奇怪的东西是做数字版权用的。这个应该只会影响到影音和图片等文件啊。不会变态到连代码也要影响吧。只能权作死马当作活马医,试一试。带上-c参数,自己指定BootClass: -c core.jar:ext.jar:framework.jar:android.policy.jar:services.jar

又报错了,再一次验证了墨菲定律是真的存在的。不过这次报错貌似比较简单,问了一下谷歌,好像是jdk版本的问题

的jdk版本是1.7的新版,貌似是不匹配的

个1.6试试,刚好咱虚拟机里有1.6的jre。

it,尤其做开发,总是与报错同行。俺已经习惯了,仔细分析了一下。不能解析,难不成是少了某一个架包。经过不懈努力。终于找到了这个架包。(所以当出现此类错误的时候不妨多添加几个架包试试,说不定就成了)于是三下五除二,搞定。(为了和谐,还是把名字给遮一下)

打包成dex再转jar

    last

最后,大功告成,轮到jd-gui出场了偷笑

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值