首页
社区
课程
招聘
[原创][分享]Dex动态加载关键函数调用链
发表于: 2020-3-21 17:35 5854

[原创][分享]Dex动态加载关键函数调用链

2020-3-21 17:35
5854

写在后面,以上所有图,都是上完@hanbingle师傅的课程后,自己看源码后整理的,如果有错误,欢迎指摘;最后在这里感谢@hanbingle师傅的指导和鼓励。
----------------------------更新实践部分-------------------
为了证实我的图中标注的脱壳点有效,拿了一个腾讯加固的例子
这里选取我之前总结的调用图中的DexFileVerifier::VerifyDexFileVerifier以及OpenFile函数与DexFile::DexFile函数作为脱壳点,
在函数中插入以下dump dex的代码

编译源码,刷机,
刷机成功后,安装并给予应用存储权限,然后运行app,并在sdcard目录下使用grep命令过滤dex,最终得到脱壳后的文件如下

可以发现最终是可以脱下来的,有兴趣的可以测一测其他的加固,应当都是能脱下来的,测试的apk见
链接:https://pan.baidu.com/s/1zHzMVJ9XYT4q-NgwPRb12A 密码:q7x4

DexFileVerifier(const DexFile* dex_file,
                  const uint8_t* begin,
                  size_t size,
                  const char* location,
                  bool verify_checksum)
      : dex_file_(dex_file),
        begin_(begin),
        size_(size),
        location_(location),
        verify_checksum_(verify_checksum),
        header_(&dex_file->GetHeader()),
        ptr_(nullptr),
        previous_item_(nullptr)  {
      // 以下是添加的代码
      char dexfilepath[100]={0};
      int pid=getpid();
                  sprintf(dexfilepath,"/sdcard/%d_%d_DexFileVerifier.dex",(int)(size),pid);

      int fd=open(dexfilepath,O_CREAT|O_RDWR,0666);
      if(fd>0){
        write(fd,begin,size);
        close(fd);
      }
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-3-27 10:10 被Simp1er编辑 ,原因: 更新代码
上传的附件:
  • 1.zip (2.83MB,113次下载)
收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 112
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
没什么用吧
2020-3-21 19:06
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
3
东纹 没什么用吧
正常的壳都是可以脱下的,只不过完整不完整的问题
2020-3-25 12:54
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
1、图片100%比例都看不清任何文字,你自己看得清?
2、dump dex关键代码没贴出来,base、size怎么获取?
最后于 2020-3-25 14:38 被tDasm编辑 ,原因:
2020-3-25 14:22
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
5
tDasm 1、图片100%比例都看不清任何文字,你自己看得清?2、dump dex关键代码没贴出来,base、size怎么获取?
第一,图看不清我知道,我在文中也说了,高清图我放在附件里了
第二,关键代码我已经贴出来了,base和size就是函数的参数。
2020-3-27 09:01
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
6
tDasm 1、图片100%比例都看不清任何文字,你自己看得清?2、dump dex关键代码没贴出来,base、size怎么获取?
我更新了函数头,这下代码应该很明了了
2020-3-27 10:12
0
雪    币: 1759
活跃值: (2334)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
可以,很6,相关文件也都提供了下载
2020-3-30 14:37
0
雪    币: 4883
活跃值: (18890)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
8
感谢分享
2020-4-6 11:47
0
游客
登录 | 注册 方可回帖
返回
//