首页
社区
课程
招聘
[原创]恶意代码分析实战Lab03-03(PE映像切换技术)
2021-9-29 20:12 12463

[原创]恶意代码分析实战Lab03-03(PE映像切换技术)

2021-9-29 20:12
12463

恶意代码分析实战Lab03-03(PE映像切换技术)

这个样本比较有意思,利用了pe映像切换技术,《逆向工程核心原理》有类似例子,最近也是上课看书,偶然看到这部分,写个文章巩固下知识点。

pe映像

我们首先来康康什么是pe映像。

 

我们都知道创建一个进程时,操作系统会为该进程分配一个 4GB 大小的虚拟 进程地址空间。pe映像就是pe文件在进程内存中的映射形态。

并且pe文件和pe映像在形态上也不会是完全相同的,会有一些差别,如下。

pe映像切换

那么什么是pe映像切换呢,简单来说,假设现在有A,B,setup三个exe文件,我们会使用setup.exe来创建A进程,按道理本该执行A进程,但是却使用pe映像切换技术来达到运行B进程的目的。

 

下面来大概总结其步骤,是setup.exe的代码步骤。

  • 将B.exe这个文件存放到开辟的某个内存空间,利用createfile,VirtualAlloc函数,或者其他类似作用的函数。
  1. 以挂起模式创建A进程。
  2. 利用GetThreadContext函数获得A进程的主线程的上下文结构,得到CONTEXT.Eax,ReadProcessMemory函数读取PEB.image,也就是A进程的image base和EP。
  3. 调用NtUnmapViewOfSection函数卸载A进程的pe映像,防止将B.exe文件映射到该地址时发生冲突(实际上,若image base不相同,可以不卸载)。
  4. 利用VirtualAllocEx函数在A进程中以B进程的image base地址申请其size of image大小的空间。
  5. 映射pe文件头
  6. for循环映射pe节区
  7. 调用WriteProcessMemory将A进程的PEB.imagebase修改为B进程的image base。
  8. 将EP(CONTEXT.Eax)修改为B.exe的EP。
  9. 调用ResumeThread,恢复运行A进程,但是实际上运行的是B进程。

在看完本lab和《逆向工程核心原理》中的例子后,产生了两个问题

  • 上面的步骤中,修改image base这一操作的先后顺序是否有影响呢?我认为是没有影响的,因为无论哪种方式,都可以达到在A进程中为B进程的PE映像分配了内存空间,并且将A进程的PEB.imagebase修改为B进程的image base的目的。
  • 为什么对于映射pe文件头,映射pe节区需要分开来?其实也很简单,答案就在上面的图片中,pe文件和pe映像在形态上不会是完全相同的。

    到这里,pe映像切换的原理差不多就讲完了,感兴趣可以去看看书中的详细讲解,下面来分析恶意样本,与书中例子有小差别,但大体原理一致。

Lab03-03样本分析

先看看行为吧,可以看到创建了一个进程,并且退出了。

 

查壳,无壳,先拖进ida静态分析分析。

 

main函数

sub_40132C函数

我们后面在来解密这个文件,并分析它。

 

sub_4010EA函数,这个函数的参数有两个,一个是C:\Windows\System32\svchost.exe,用来创建进程,一个是申请的空间地址,保存着解密后的资源文件。

资源文件分析

利用resource hacker dmup出资源文件,然后解密,现在来分析解密后的资源文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<math.h>
 int main(void){
 
       FILE *p;
    char v[0x5FE0]={0};
    int i;
 
    p=fopen("abc.bin","rb");
    fread(&v, 1, 0x5FE0, p);
    for(i=0;i<0x5FE0;i++)
    {
        v[i]=v[i]^65;
    }
    FILE *p1 = fopen("def.bin", "wb");
    fwrite(&v, 1, 0x5FE0, p1);
}

先看main函数

 

 

fn函数

sub_4010C7函数

效果如下

 

最终我们得出结论,该恶意软件是一个键盘记录器,它在svchost.exe上使用进程替换。


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

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 4427
活跃值: (3449)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2021-11-18 10:22
2
0
这个技术就是傀儡进程吧
雪    币: 3498
活跃值: (3038)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
The_Itach1 3 2021-11-19 12:49
3
0
木志本柯 这个技术就是傀儡进程吧
是的,只是书中的名称是pe映像切换
游客
登录 | 注册 方可回帖
返回