首页
社区
课程
招聘
[求助]经典的explorer.exe病毒,难道真的没人会分析......?
发表于: 2009-4-23 13:28 7298

[求助]经典的explorer.exe病毒,难道真的没人会分析......?

2009-4-23 13:28
7298
好像采取了一些anti-debug的东西,病毒在一个合法的explorer.exe中修改了几行。

哪位大侠能给分析一下,并介绍下分析过程啊?

病毒附件见第5楼。用123456解压缩。

本楼的附件是一个没问题的wxp sp2的explorer.exe, 也用123456解压缩。

通过fc.exe比较两个explorer.exe可以看到,病毒修改了以下内容:

0000024C: 40 60
0000024F: 40 E0

0001D660: E3 B4
0001D661: 38 83
0001D662: FF 06
0001D663: FF 00

000842C3: 79 8B
000842C4: 79 FF
000842C5: 79 B8
000842C6: 79 47
.
.
一直到...
.
.
.
00084A23: 79 FF
00084A24: 79 E2
00084A25: 79 45
00084A26: 79 CC
00084A27: 79 63
00084A28: 79 00
00084A29: 79 00
00084A2A: 79 00
00084A2B: 79 00
00084A2C: 79 00
00084A2D: 79 00
00084A2E: 79 00
00084A2F: 79 00
00084A30: 79 00
00084A31: 79 00
00084A32: 79 00

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

上传的附件:
收藏
免费
支持
分享
最新回复 (11)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个病毒是在以下语句处修改了一行:

0101E24E > $  8BFF          MOV EDI,EDI                              ;  ntdll.7C910228
0101E250   .  55            PUSH EBP
0101E251   .  8BEC          MOV EBP,ESP
0101E253   .  83EC 44       SUB ESP,44
0101E256   .  56            PUSH ESI
0101E257   .  57            PUSH EDI
0101E258   .  6A 10         PUSH 10
0101E25A   .  68 C8E20101   PUSH explorer.0101E2C8                   ;  ASCII "ExplorerStartup"
0101E25F   .  E8 B4830600   CALL explorer.01086618
0101E264   .  E8 E8F8FFFF   CALL explorer.0101DB51

跟踪进入explorer.01086618,病毒call病毒主体explorer.010865A8然后又跳回正确的地方explorer.01011B47了:
01086618    60              PUSHAD
01086619    E8 8AFFFFFF     CALL explorer.010865A8
0108661E    61              POPAD
0108661F  - E9 23B5F8FF     JMP explorer.01011B47

在合法的explorer.exe的0101E25F处,本来应该是call explorer.01011B47.
2009-4-23 14:03
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但是在CALL explorer.010865A8之后,病毒到底干了些什么,我就看不懂了。
2009-4-23 14:04
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
我这打开的样本是这样的
0101E24E > $  8BFF                   mov     edi, edi                         ;  ntdll.7C930738
0101E250   .  55                         push    ebp
0101E251   .  8BEC                     mov     ebp, esp
0101E253   .  83EC 44                sub     esp, 44
0101E256   .  56                         push    esi
0101E257   .  57                          push    edi
0101E258   .  6A 10                    push    10
0101E25A   .  68 C8E20101        push    0101E2C8;  ASCII "ExplorerStartup"
0101E25F   .  E8 E338FFFF          call    01011B47
0101E264   .  E8 E8F8FFFF          call    0101DB51
0101E269   .  6A 01                     push    1                          
0101E26B   .  FF15 98100001      call    dword ptr [<&KERNEL32.SetErrorMo>;
0101E271   .  FF15 94100001      call    dword ptr [<&KERNEL32.GetCommand>;
0101E277   .  50                          push    eax
0101E278   .  E8 60000000         call    0101E2DD
0101E27D   .  6A 10                    push    10
0101E27F   .  8BF0                      mov     esi, eax
0101E281   .  59                         pop     ecx
根本就没有你说的病毒主体explorer.010865A8。是不是传错了
2009-4-23 14:55
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不好意思,确实传错了。重来,用123456解压。
上传的附件:
2009-4-23 15:38
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
010865A8    55               push    ebp
010865A9    8BEC             mov     ebp, esp
010865AB    83C4 DC          add     esp, -24
010865AE    8D75 EC          lea     esi, dword ptr [ebp-14]
010865B1    56               push    esi
010865B2    C706 437E6421    mov     dword ptr [esi], 21647E43
010865B8    C746 04 332A7632 mov     dword ptr [esi+4], 32762A33
010865BF    C746 08 6D243231 mov     dword ptr [esi+8], 3132246D
010865C6    C746 0C 63644466 mov     dword ptr [esi+C], 66446463
010865CD    C746 10 00000000 mov     dword ptr [esi+10], 0           ;初始化
010865D4    6A 00            push    0
010865D6    6A 00            push    0                               ;参数
010865D8    E8 B8F9FFFF      call    01085F95                        ;某api函数
010865DD    64:A1 18000000   mov     eax, dword ptr fs:[18]          ;teb
010865E3    8B40 34          mov     eax, dword ptr [eax+34]         ;lasterror
010865E6    0BC0             or      eax, eax                        
010865E8    74 04            je      short 010865EE                   ;为0退出到explorer.01011B47
010865EA    33C0             xor     eax, eax
010865EC    C9               leave
010865ED    C3               retn
010865EE    8D7D DC          lea     edi, dword ptr [ebp-24]        
010865F1    57               push    edi
010865F2    C707 7773325F    mov     dword ptr [edi], 5F327377
010865F8    C747 04 33322E64 mov     dword ptr [edi+4], 642E3233
010865FF    C747 08 6C6C0012 mov     dword ptr [edi+8], 12006C6C     ;初始化
01086606    E8 76F9FFFF      call    01085F81                        ;loadlibrary
0108660B    0BC0             or      eax, eax
0108660D    74 05            je      short 01086614
0108660F    E8 70FFFFFF      call    01086584                        
01086614    33C0             xor     eax, eax
01086616    C9               leave                                    ;退出到explorer.01011B47

这个病毒有点...... 调用的api居然是硬编码进去的,我这里地址都不对,所以那些api不知道是什么函数
2009-4-23 16:21
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢楼上的,本人实在菜鸟,问错了请海涵...

010865D8    E8 B8F9FFFF      call    01085F95                        ;某api函数

01086606    E8 76F9FFFF      call    01085F81                        ;loadlibrary

为什么这里是api或者loadlibarary呢?

我感觉01085xxx或者01086xxx这里都是病毒填充的code...ollydbg一运行就terminate...

另外,这个修改过的explorer.exe,它的size和timestamp和修改前一模一样 :-)
2009-4-23 18:13
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
01085F95    8BFF            mov     edi, edi                         ; ntdll.7C930738
01085F97    B8 3FE9807C     mov     eax, 7C80E93F
01085F9C    FFE0            jmp     eax

7c80e93f不是本程序的地址了,应该是kernel32.dll的地址,就像你call loadlibarary一样,不过这里是自己jmp进去的,01085xxx或者01086xxx这里都是病毒修改的code,不是填充。所以size可能不会变。
2009-4-23 18:25
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能进一步跟进去看看到底在做什么吗?

我跟进去,ollydbg就报告process中止了。我感觉是anti-debug的原因。
2009-4-23 20:36
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
现金奖励200元!
2009-4-24 14:46
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
11
010865D8    E8 B8F9FFFF      call    01085F95                        ;某api函数
这个我猜应该是CreateMutex创建互斥体,后面查TEB相当于GetLastError,GetLastError得到STATUS_SUCCESS则认为创建互斥体成功,说明是自身的第一个实例,否则不进行实质操作而返回。
然后就是LoadLibrary加载ws2_32.dll
之后:
0108660F    E8 70FFFFFF      call    01086584                        

这里进去应该是SetTimer设置定时器(因为里面调用的最后一个参数是一个子函数地址,前一个参数是一个类似于超时时间的数值,又不是CreateThread,因此做此猜测)

Timer procedure的内容比较罗嗦,要猜API比较麻烦,就没有仔细猜,但是从其局部变量初始化中看到字符串“http://www.tamamad.cn/v.txt”
可惜这个v.txt链接失效了,我这边没有连上。但是从这里以及结合前面的ws2_32.dll,已经可以猜测,这个v.txt链接是用于联网的,可能是木马下载器的下载列表。

API硬编码很正常,因为explorer.exe不比其他文件,病毒作者认为它一般不会被移到其他系统环境下,因此病毒在进入系统的时候感染该系统的explorer.exe,API地址可以采用硬编码。
从explorer.exe的版本信息看,应该是XP sp2的。我的系统是XP sp3,所以也不能直接调。

楼主想得太复杂了,什么anti-debug都是没影的事,纯粹就是因为系统环境不对,API地址不对,直接调的话遇到无效指令,因此程序出现异常中止。只要找到API地址匹配的XP sp2系统,这个的调试应该并不复杂。

另外楼主不用悬赏了,这个样本杀毒软件厂商早已拿到,瑞星都可以修复,只不过修复效果不能算非常令人满意。
2009-4-24 22:57
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
多谢小聪......和烁皓

哪里有类似的比较易于学习的分析,推荐下???

比如这个TEB,小聪不说我就不明白 :-)
2009-4-27 10:54
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册