为了跨域进程边界来共享内核对象,微点无非就是那么几种办法,开始我以为用的是:可继承句柄或命名对象的方法。后来反了一下微点的主程序: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