首页
社区
课程
招聘
[原创]分析个性感小马
发表于: 2011-8-2 12:04 15407

[原创]分析个性感小马

2011-8-2 12:04
15407

昨天发了一篇被判定为YJ贴了。。,希望这篇不会。。。
马比较简单,适合新手。
先说一下行为:exe文件会释放Pcix32.sys amd32_.sys atax32.sys三个文件,但是后两个其实只是地一个的拷贝。sys文件负责监控各种杀毒软件和安全工具的启动,一旦发现,马上kill。
1。exe行为。
这里只写思路,详细请参考idb文件和自己跟,嘎嘎。
首先获取系统drivers目录,然后释放Pcix32.sys到这个目录下,期间拷贝各种副本。
还有,exe会检测是否有还原精灵,有的话会做相应处理,不过本人太懒。。懒得搭环境,这部分有兴趣的跟一下吧:)
如果没有还原精灵的话,就加载驱动。
最后有一个注入的行为,也没仔细跟:D
2。sys
这个是感兴趣的,贴代码:

.text:00010B34                 lea     eax, [ebp+SystemInformation]
.text:00010B37                 push    eax             ; ReturnLength
.text:00010B38                 push    0               ; SystemInformationLength
.text:00010B3A                 push    eax             ; SystemInformation
.text:00010B3B                 push    0Bh             ; SystemInformationClass
.text:00010B3D                 mov     edi, ds:__imp_ZwQuerySystemInformation
.text:00010B43                 call    edi ; __imp_ZwQuerySystemInformation
.text:00010B45                 push    [ebp+SystemInformation] ; NumberOfBytes
.text:00010B48                 push    1               ; PoolType
.text:00010B4A                 call    ds:ExAllocatePool
text:00010B5A                 push    0               ; ReturnLength
.text:00010B5C                 push    [ebp+SystemInformation] ; SystemInformationLength
.text:00010B5F                 push    esi             ; SystemInformation
.text:00010B60                 push    0Bh             ; SystemInformationClass
.text:00010B62                 call    edi ; __imp_ZwQuerySystemInformation
.text:00010B64                 test    eax, eax
.text:00010B66                 jl      short loc_10BDE
.text:00010B68                 mov     ebx, [esi+0Ch]
.text:00010B6B                 mov     edi, [esi+10h]
.text:00010B6E                 add     edi, ebx
.text:00010B70                 push    0               ; Tag
.text:00010B72                 push    esi             ; P
.text:00010B73                 call    ds:ExFreePoolWithTag
.text:00010B79                 mov     esi, ebx
.text:00010B7B
.text:00010B7B loc_10B7B:                              ; CODE XREF: sub_10B28+BFj
.text:00010B7B                 cmp     esi, edi
.text:00010B7D                 ja      short loc_10BDE
.text:00010B7F                 push    esi             ; VirtualAddress
.text:00010B80                 call    ds:MmIsAddressValid
.text:00010B86                 test    al, al
.text:00010B88                 jz      short loc_10BE6
.text:00010B8A                 lea     ebx, [esi+4]
.text:00010B8D                 push    ebx             ; VirtualAddress
.text:00010B8E                 call    ds:MmIsAddressValid;测试地址是否可用,防止BSOD。。。
.text:00010B94                 test    al, al
.text:00010B96                 jz      short loc_10BE6
.text:00010B98                 mov     eax, 8B55FF8Bh:google一下这个值吧,发现是PspTerminateProcess
.text:00010B9D                 cmp     [esi], eax
.text:00010B9F                 jnz     short loc_10BE6
.text:00010BA1                 mov     eax, 0CEC83ECh
.text:00010BA6                 cmp     [ebx], eax
.text:00010BA8                 jnz     short loc_10BE6
.text:00010BAA                 mov     eax, 0FFF84D83h
.text:00010BAF                 cmp     [esi+8], eax
.text:00010BB2                 jnz     short loc_10BE6
.text:00010BB4                 mov     eax, 7D8B5756h
.text:00010BB9                 cmp     [esi+0Ch], eax
.text:00010BBC                 jnz     short loc_10BE6
.text:00010BBE                 and     [ebp+ms_exc.disabled], 0
.text:00010BC2                 mov     [ebp+var_20], esi
.text:00010BC5                 mov     [ebp+ms_exc.disabled], 0FFFFFFFEh
.text:00010BCC                 mov     eax, esi;保存函数地址
.text:00010A40                 call    _GetPspTerminateProcessAddress
.text:00010A45                 mov     PspTerminateProcess, eax
.text:00010A4A                 test    eax, eax
.text:00010A4C                 jnz     short loc_10A8F
.text:00010A4E                 call    sub_10568

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
性感在哪..
2011-8-2 12:42
0
雪    币: 2332
活跃值: (3809)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
37k~~
2011-8-2 12:55
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
早就被人发布过了!!!!
2011-8-2 13:06
0
雪    币: 2332
活跃值: (3809)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
求原文地址~~
2011-8-2 13:12
0
雪    币: 163
活跃值: (75)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
又是名字匹配,HIPS什么时候整个进程名随机化嘛...
2011-8-2 13:13
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
就是在看雪发的,发了好几个星期了,况且和东西偶没加壳。没啥分析意义,仅对XP起作用!
2011-8-2 13:16
0
雪    币: 2
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
37kb 开发者是个大牛
2011-8-2 14:03
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
无聊中顺便看了下..
驱动中寻找到得函数其实是PspTerminateThreadByPointer
而结束进程的手法是在这篇帖子中的一样的 http://bbs.pediy.com/showthread.php?t=68794
函数00010BEE 对应的是GetNextProcessThread
函数00010C4E 对应的是TerminateProcess

寻找PspTerminateThreadByPointer过程中,第一个函数00010B28是原帖GetUndocumentFunctionAdress中的方法,
第二个函数00010568是原帖三楼xPLK大提供的地址
8057e245 ff7508          push    dword ptr [ebp+8]
8057e248 50              push    eax
8057e249 e8b5e4ffff      call    nt!PspTerminateThreadByPointer (8057c703)
找到8057e245  后+5 ,到call的地址,计算偏移算出来的
2011-8-2 14:45
0
雪    币: 220
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
37K就性感? 38呢?
2011-8-3 09:48
0
雪    币: 47
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我承认我想多多了

就是不明白  这个代码怎么就性感了
2011-8-15 00:22
0
雪    币: 30
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
是如何做到加载驱动而杀软不提示呢?有这个功能吗?
2011-8-15 16:47
0
雪    币: 111
活跃值: (113)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
我也分析过这个病毒,这个是对的。。。
2013-5-28 11:34
0
雪    币: 108
活跃值: (44)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
顶,学习了~
2013-5-28 11:49
0
游客
登录 | 注册 方可回帖
返回
//