首页
社区
课程
招聘
[原创] 安卓7.1.1的dex2oat x86和arm64双版本分享,秒脱最新360和旧版的梆梆、百度壳等加固
发表于: 2018-3-20 16:33 12437

[原创] 安卓7.1.1的dex2oat x86和arm64双版本分享,秒脱最新360和旧版的梆梆、百度壳等加固

2018-3-20 16:33
12437

  发现论坛上的dex2oat是4.4的老版本 有些应用可能不兼容 所以编译了安卓7.1.1系统的 分享给大家。


  有真机arm64版本的 方便手机脱壳 和x86虚拟机版本,由于文件过大所以只上传了dex2oat文件 大家自行替换系统的 /system/bin/dex2oat,我上传的文件名需要改为dex2oat 把文件名多余的删掉,替换后记得修改权限。

  因为7.1.1系统安装了xposed 原先编译的dex2oat就无法使用了 所以编译了支持和xposed共存的版本(dex2oat-xposed-7.1.1-arm64)。

  


这是编译用到的源码 下载好安卓源码添加进(art/dex2oat.cc),我是用Mac编译的安卓源码 有相关问题可以在群里问我。


    for (const auto& dex_file : dex_files_) {
      ScopedObjectAccess soa(self);
      dex_caches_.push_back(soa.AddLocalReference<jobject>(
          class_linker->RegisterDexFile(*dex_file,
                                        soa.Decode<mirror::ClassLoader*>(class_loader_))));
   
      //dex2oat脱壳-----添加开始

      std::string dex_name = dex_file->GetLocation();
      LOG(INFO) << "file name-->" << dex_name << "<--";


      	//注释掉过滤.jiagu文件可以脱其它壳 真机不影响运行速度
         //if(dex_name.find("jiagu")!=std::string::npos)
         //{
                int len =dex_file->Size();
                char filename[150] = {0};
                sprintf(filename,"%s_%d.dex",dex_name.c_str(),len);
                int fd = open(filename,O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU);
                if(fd > 0)
                {
                     if(write(fd,(char*)dex_file->Begin(),len) <= 0)
                     {
                           LOG(INFO) << "dex file failed-->" << filename << "<--";
                     }
                     LOG(INFO) << "dex file successfully-->" << filename << "<--";
                     close(fd);
                }else LOG(INFO) << "dex file failed-->" << filename << "<--";
          //}


          //------添加结束

    }

   


有问题可以加Q群讨论: 228410663


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-3-30 20:05 被正月初九编辑 ,原因: 添加x86和x86_64版本
上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 116
活跃值: (315)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
这种方式只是dump了没落地的dex,解释执行部分的bytecode并不会被dump
2018-3-20 17:11
0
雪    币: 33
活跃值: (854)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主你那个arm64的dex2oat应该是32位的
2018-9-23 00:08
0
雪    币: 498
活跃值: (4211)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主怎么单独编译art模块的
2018-10-19 11:30
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
需要修复吗?
2018-10-29 09:44
0
雪    币: 448
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我来测试一下。
结果:我用AVD虚拟机使用 arm64版本 ,然后用ROM助手,替换了 arm64版本 dex2oat后。
运行后,没有找到脱过的dex。它在哪里?
最后于 2018-12-22 23:36 被netbee编辑 ,原因:
2018-12-17 14:48
0
雪    币: 34
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
看看你很尴尬
2020-2-3 05:30
0
游客
登录 | 注册 方可回帖
返回
//