上次那个改变键盘布局的程序,被同学很容易的就在任务管理器里找出来杀掉了,不爽!想个办法把它藏起来。
google了一下,发现隐藏进程的方法有很多。可以用rundll,但那样任务管理器里还是会多出个进程,引起怀疑。还可以写注册表里AppInit_Dlls一项,但我试了一下,结果一改就开不了机,可能是我的dll没写好吧。再有就是注入了,代码注入很隐蔽,但还要遇到代码定位,API定位等问题,麻烦,还是dll注入好了。决定了,说干就干!
先把原来的那个程序稍做修改,然后build成dll。即加一个DllEntry就行了。
DllEntry proc hInst: HINSTANCE, reason: DWORD, reserved1: DWORD
LOCAL @dwThreadID
.IF reason == DLL_PROCESS_ATTACH
push hInst
pop inst
invoke CreateThread, NULL, 0, addr WinMain, NULL, NULL, addr @dwThreadID
invoke CloseHandle, eax
.ENDIF
mov eax, TRUE
ret
DllEntry endp
然后
ml /c /coff /Cp test.asm
link /DLL /SUBSYSTEM:WINDOWS test.obj
这样我就有了一个test.dll,把它注入到别的进程里就行啦。为了