首页
社区
课程
招聘
[原创]玩玩微点之一:利用CreateEvent函数不让微点启动
2008-7-16 21:02 8044

[原创]玩玩微点之一:利用CreateEvent函数不让微点启动

2008-7-16 21:02
8044
今天看书,买了好久的好书——《Windows核心编程》。看到内核对象,3.3.4 节讲“终端服务器的名字空间”,内容是说:如果存在一个可供内核对象使用的全局名字空间,就意味着它可以供所有的客户程序会话访问。Windows中就有这样的全局名字空间:"Global\" ,将"Global\"置于对象名前面,就可以使命名对象进入全局名字空间。——你是否想到什么呢?

为了跨域进程边界来共享内核对象,微点无非就是那么几种办法,开始我以为用的是:可继承句柄或命名对象的方法。后来反了一下微点的主程序:MPStart.exe,发现貌似不是这样,当我看到下面的东西,我很坚定的相信微点用的是上面提到的全局名字空间的方法。哈哈!

.data:00408060 ; char Name[]   
.data:00408060 Name            db 'Global\MPMon_6934D571-115B-4830-AC5C-02A0D08179C5',0   
  
  
sub_401170 proc near   
push    esi   
push    edi   
xor     edi, edi   
push    offset Name     ; "Global\\MPMon_6934D571-115B-4830-AC5C-02"...   
push    edi             ; bInitialState   
push    edi             ; bManualReset   
push    edi             ; lpEventAttributes   
call    ds:CreateEventA   
mov     esi, eax   
call    ds:GetLastError   
cmp     eax, 0B7h   
jnz     short loc_401196   
--------------------------------------------------------------------------------------------   
  
.data:004080A4 ; char aGlobalRebootev[]   
.data:004080A4 aGlobalRebootev db 'Global\REBOOTEVENT_6934D571-115B-4830-AC5C-02A0D08179C5',0   
  
  
loc_401875:   
push    esi   
push    edi   
xor     edi, edi   
push    offset aGlobalRebootev ; "Global\\REBOOTEVENT_6934D571-115B-4830-A"...   
push    1               ; bInitialState   
lea     edx, [esp+20h+EventAttributes]   
push    edi             ; bManualReset   
push    edx             ; lpEventAttributes   
call    ds:CreateEventA   
mov     esi, eax   
test    esi, esi   
jz      short loc_4018AB  



看到上面的东西,我的坏心眼出来啦!我们是不是可以在微点启动之前,或者微点没有启动的状态下,利用CreateEvent函数先微点一步,创建这个'Global\MPMon_6934D571-115B-4830-AC5C-02A0D08179C5'标识的内核对象,这样我估计微点八成是起不来了。

我写了一个小Demo,测试了一下,发现果然不出我所料,我先把微点关掉,然后运行我的demo:



这时候,你再去启动微点,微点是绝对启动不起来的,除非把我的程序先退出掉,或者释放掉上面创建的那个内核对象。哈哈!

当然了,大家会说,你这是一泡屎,人家微点就不退出,你根本没机会!——不一定吧,我要是写一个程序一直监视微点活着没,如果发现微点没在,我就赶紧创建上面那个内核对象,我看微点怎么办,要知道微点总会自动升级的,而且有时候自动升级完成后,会重启,这中间有大概3秒左右时间吧,够我创建一个内核对象了吧!哈哈!顺便说一下,我个人认为今后这样的智能木马才是大势所趋,那些野蛮的木马就是一泡屎!

好了就写到这里,声明下:本Demo没有恶意,只是学习、测试而已!

希望微点重视一下,我个人不推荐使用全局名字空间,而推荐使用可继承句柄的方法来在进程间共享内核对象。

Demo及源码下载:
利用CreateEvent函数不让微点启动.rar

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (13)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xkxpiao 2008-7-16 21:17
2
0
顶        .
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2008-7-16 21:18
3
0
哈哈试试!!!!!
雪    币: 222
活跃值: (44)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
shineast 4 2008-7-16 21:21
4
0
试的时候要先,关掉微点(托盘图标右键退出),然后启动我的程序(不要关闭),然后再启动微点试试!看能启动不?
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zapline 2008-7-16 21:25
5
0
厉害
   应该加精
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wangweimin 2008-7-16 21:32
6
0
  你没有试试把Global\\REBOOTEVENT_6934D571-115B-4830-A关了,再开开微点是啥效果啊
雪    币: 222
活跃值: (44)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
shineast 4 2008-7-16 21:42
7
0
和 Global\\MPMon_6934D571-115B-4830-AC5C-02A0D08179C5 效果一样
雪    币: 222
活跃值: (44)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
shineast 4 2008-7-16 21:43
8
0
突然想到:莫非 Global\\REBOOTEVENT_6934D571-115B-4830-AC5C-02A0D08179C5 就是微点检测到关机后,创建的事件对象???!!!
雪    币: 182
活跃值: (50)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
pathletboy 2 2008-7-16 21:54
9
0
ProcessExplorer
用这个查内核对象比较爽。
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
nevergone 3 2008-7-17 00:05
10
0
实际上
关掉微点进程内部的内某个EVENT
微点进程就挂了
雪    币: 230
活跃值: (144)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Kendiv 2008-7-20 19:36
11
0
不错,微点应该给楼主奖励,这算是产品设计缺陷~~为啥不使用随机名称呢?
估计微点也没啥像样的测试~~
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2008-7-21 10:45
12
0
事件对象占坑,学习了。
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gesily 2008-7-22 13:30
13
0
微点要走的路还很长。。。
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
vrowang123 1 2008-7-27 11:09
14
0
把微点的茅坑给占了
游客
登录 | 注册 方可回帖
返回