首页
社区
课程
招聘
7
[原创]pediy 打造专属的 Malware Defender
发表于: 2010-11-30 18:29 15956

[原创]pediy 打造专属的 Malware Defender

2010-11-30 18:29
15956

【文章标题】: pediy 打造专属的 Malware Defender
【文章作者】: FishSeeWater
【作者邮箱】: FishSeeWater@gmail.com
【软件名称】: Malware Defender
【下载地址】: 自己搜索下载
【使用工具】: ollyice ,lordPe,010Editor
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  Malware Defender 是一个主动防御软件,也就是HIPS。以下简称MD, 很早以前使用这个软件,给作者提过不少建议。
其中一个加入“暂停保护”的功能,却没有提供热键支持,最近心起,使用这个软件时,感觉太需要这个功能了,没办法只好自己动手解决了:).

  绝无恶意,作者莫怪~~:)
  最新版是2.7.2.0001
  
  下载安装后,把主程序拷贝出来,扔到IDA中直接加工。生成MAP文件,然后用OD载入开始分析。
  开始前我们先理一下思路:
       暂停保护的功能作者已经加入了(1,5,15,30,60,自定义 6项功能),
  只是需要在托盘用鼠标操作。我们只要找到这些消息的处理过程,用我们注册的热键来调用就OK了。
  
  具体分步如下:
           1。找到响应“暂停保护XX分钟”鼠标操作的消息处理例程
           2。找到MD中注册热键的例程,加入我们定义的新热键。
                        SHITF+CTRL+ALT+1......6来调用作者提供的6项功能。
           3。找到MD中反注册热键的例程,反注册我们的热键.
           4。找到MD中响应热键的消息处理例程,加入我们的热键处理代码,在这里调用1的入口
  首先进行一步:
  OD载入MD,
  在“暂停保护”选项处有个“自定义”选项,选这个功能会跳出一个对话框
  
  这时按“F12,Alt+F9”再点击确定,程序会断在下图中:
  
  返回后,
  
  我们可以看到,00490821 这一行,F7进
  

1
2
3
00490683   /$ >push    ebp                               
00490684   |. >mov     ebp, esp
00490686   |. >push    ecx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0049079B <>/$ >push    1                                    ;  stop_1_Minute
 0049079D   |. >call    MalwareD.00490683
 004907A2   |. >xor     eax, eax
 004907A4   \. >retn    10
 004907A7 <>/$ >push    5                                    ;  stop_5_Minute
 004907A9   |. >call    MalwareD.00490683
 004907AE   |. >xor     eax, eax
 004907B0   \. >retn    10
 004907B3 <>/$ >push    0A                                   ;  stop_15_Minute
 004907B5   |. >call    MalwareD.00490683
 004907BA   |. >xor     eax, eax
 004907BC   \. >retn    10
 004907BF <>/$ >push    1E                                   ;  Stop_30_Minute
 004907C1   |. >call    MalwareD.00490683
 004907C6   |. >xor     eax, eax
 004907C8   \. >retn    10
 004907CB <>/$ >push    3C                                   ;  Stop_60_Minute
 004907CD   |. >call    MalwareD.00490683
 004907D2   |. >xor     eax, eax
 004907D4   \. >retn    10
......省略一些
1
2
3
4
5
6
0049079B <>/$ >push    1                                     ;  stop_1_Minute
004907A7 <>/$ >push    5                                     ;  stop_5_Minute
004907B3 <>/$ >push    0A                                    ;  stop_15_Minute
004907BF <>/$ >push    1E                                    ;  Stop_30_Minute
004907CB <>/$ >push    3C                                    ;  Stop_60_Minute
004907D7 <>/$ >mov     eax, <MalwareD.loc_581A60>            ;  StopCustomTime
1
2
3
4
5
6
7
8
9
10
11
12
0047BDF7   |. >test    ax, ax
0047BDFA   |. >je      short <MalwareD.loc_47BE70>
0047BDFC   |. >mov     ebx, [arg.2]
0047BDFF   |. >movzx   ecx, di
0047BE02   |. >push    ecx                            ; /Key
0047BE03   |. >movzx   eax, ax                        ; |
0047BE06   |. >push    eax                            ; |Modifiers
0047BE07   |. >push    ebx                            ; |HotKeyID
0047BE08   |. >push    dword ptr ds:[esi+4]           ; |hWnd
0047BE0B   |. >call    dword ptr ds:[<&USER32.Registe>; \RegisterHotKey
0047BE11   |. >test    eax, eax
0047BE13   |. >jnz     short <MalwareD.loc_47BE83>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
0047BE8D <>/$ >mov     eax, <MalwareD.loc_580D22>     ;  _ProcessHotKey
0047BE92   |. >call    <MalwareD.__EH_prolog>
0047BE97   |. >push    ecx
0047BE98   |. >push    ecx
0047BE99   |. >push    esi
0047BE9A   |. >mov     esi, ecx
0047BE9C   |. >call    <MalwareD._UnAllHotKey>
...............
0047BEBB   |. >lea     eax, [local.4]
0047BEBE   |. >push    eax
0047BEBF   |. >push    dword ptr ds:[<_HotKey_Ctrl_1>>
0047BEC5   |. >mov     ecx, esi
0047BEC7   |. >push    1
0047BEC9   |. >push    offset <MalwareD._HotKey_1>
0047BECE   |. >call    <MalwareD._RegHotKey>
.............
0047BF7F   |. >push    dword ptr ds:[<_HotKey_Ctrl_9>]
0047BF85   |. >mov     ecx, esi
0047BF87   |. >push    9
0047BF89   |. >push    offset <MalwareD._HotKey_9>
0047BF8E   |. >call    <MalwareD._RegHotKey>
0047BF93      >mov     edi, dword ptr ss:[ebp-10]
0047BF96      >cmp     dword ptr ds:[edi-8], 0
0047BF9A   |. >je      short <MalwareD.loc_47BFE6>     ;这里判断是否注册成功,否则弹框提示
..........
0047BFCE   |. >push    30                                    ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
0047BFD0   |. >push    0                                     ; |Title = NULL
0047BFD2   |. >push    [local.5]                             ; |Text
0047BFD5   |. >push    dword ptr ds:[esi+4]                  ; |hOwner
0047BFD8   |. >call    dword ptr ds:[<&USER32.MessageBoxW>]  ; \MessageBoxW
0047BFDE   |. >lea     ecx, [local.5]
1
2
3
4
5
6
7
0047BF7B   |. >lea     eax, [local.4]                     
0047BF7E   |. >push    eax                ;压入this
0047BF7F   |. >push    dword ptr ds:[<_HotKey_Ctrl_9>];压入热键码,高位VK,低位fsModifiers
0047BF85   |. >mov     ecx, esi
0047BF87   |. >push    9                  ;压入ID
0047BF89   |. >push    offset <MalwareD._HotKey_9>  ;压入一个变量,用来保存ID的,在UnhotKey时需要用到这个变量
0047BF8E   |. >call    <MalwareD._RegHotKey>           ;调用注册CALL
1
0047BF8E   |. >call    <MalwareD._RegHotKey>这一行是最后一个热键的注册,从下一行0047BF93跳到我们的代码中注册新的热键。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
004628F9 <>/$ >push    esi                                   ;  _UnAllHotKey
004628FA   |. >push    offset <MalwareD._HotKey_1>
004628FF   |. >mov     esi, ecx
00462901   |. >call    <MalwareD._UnregisterHotKey>
00462906   |. >push    offset <MalwareD._HotKey_2>
0046290B   |. >mov     ecx, esi
0046290D   |. >call    <MalwareD._UnregisterHotKey>
00462912   |. >push    offset <MalwareD._HotKey_3>
00462917   |. >mov     ecx, esi
.........
00462955   |. >call    <MalwareD._UnregisterHotKey>
0046295A   |. >push    offset <MalwareD._HotKey_9>
0046295F      >mov     ecx, esi
00462961      >call    <MalwareD._UnregisterHotKey>
00462966   |. >pop     esi
00462967   \. >retn

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

上传的附件:
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-5-31 04:49
伟叔叔
为你点赞~
2024-3-4 00:59
QinBeast
为你点赞~
2024-1-20 00:25
心游尘世外
为你点赞~
2024-1-16 01:00
shinratensei
为你点赞~
2024-1-15 01:42
飘零丶
为你点赞~
2024-1-14 00:13
PLEBFE
为你点赞~
2023-3-14 05:03
最新回复 (19)
雪    币: 3724
活跃值: (4309)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
又是一篇精华哦,楼主功底很好,羡慕
2010-11-30 18:42
0
雪    币: 433
活跃值: (1890)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
3
一直用Malware Defender来辅助分析病毒,感觉还不错,现在已经被360收购了……
2010-11-30 18:59
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有意思。
2010-12-1 09:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一直在用的软件 很不错
2010-12-1 11:40
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
精品文章················
2010-12-1 11:44
0
雪    币: 149
活跃值: (361)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
文章很强大。看完了。获益不少。
2010-12-1 13:37
0
雪    币: 303
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
又见牛文。学飞迸了。。。
2010-12-1 14:05
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
好文章 整理上用了不少时间 思路很好 Up~
2010-12-1 14:13
0
雪    币: 169
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
算了, 数字产品~
2010-12-1 14:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我就是来学习的&&&……
2010-12-1 16:50
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
顶起来
2010-12-1 17:41
0
雪    币: 768
活跃值: (555)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
13
用了好几个小时~ 汗
2010-12-1 19:16
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
今天静不下心来,下次再来学习
2010-12-1 22:14
0
雪    币: 6802
活跃值: (4455)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
15
学习学习..
2010-12-1 22:28
0
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不错 mark一下吧
2010-12-2 14:10
0
雪    币: 197
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
Mark下,改天来学习
2010-12-2 14:19
0
雪    币: 228
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习了。

MD是不错的产品,  可惜的是……
2010-12-2 22:40
0
雪    币: 560
活跃值: (313)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习了!!!
2010-12-4 11:54
0
雪    币: 100
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
好东西,学习学习
2010-12-4 12:10
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

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