610548422 2008-6-17 19:54
映像劫持技术深入
映像劫持大家都知道吧,就不浪费时间解释了
但是大家发现被劫持的软件会无法运行,这样就不安全了,很容易被发现的。以前也想过怎么解决,但是想了很久没有想到应该怎么办,就不了了之了。
一天我在玩映像劫持的时候,用NOTEPAD来劫持QQ,NOTEPAD是运行了,但是发现都是乱码,
[attach]18870[/attach]
我一看,也不知道为什么,后来想到了NOTEPAD支持命令行来启动,而NOTEPAD是被系统用:
notepad.exe "qq的路径"这样的方式来启动的
,所以NOTEPAD打开了QQ.EXE,便显示了乱码。
其实这本没什么,但却为我们更好映像劫持提供了条件。
我是这样想的:
例如我们用ds.exe劫持qq.exe,那么我们可以在ds.exe中接受命令行参数,在处理下参数,再调用WINEXEC来运行就可以了。
但是实践的时候,问题来了,调用winexec运行qq.exe,这样qq.exe又被劫持了,就造成了死循环。
想了想,可以来删除qq.exe子键,这样在运行winexec来运行QQ就不会被劫持了
在处理命令行参数的时候,双引号里面的路径就是我们要的,可以用WINEXEC来调用
在接受命令行参数的时候
具体的代码,
如何得到路径,代码如下:
[code]invoke GetCommandLine
mov esi,eax
xor ebx,ebx
cld
loop1:
lodsb
cmp al,'"'
jz loop2
jmp loop1
loop2:
or ebx,ebx
jnz endl
mov lpCmdLine,esi 便是路径了
mov ebx,1
jmp loop1
endl:
dec esi
mov byte ptr[esi],0[/code]
WINEXEC调用如下:
[code]
invoke WinExec,lpCmdLine,SW_SHOW
[/code]
删除字键代码:
[code]
invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,addr szKey,NULL,KEY_WRITE,addr hKey
invoke RegDeleteKey,hKey,addr szSubKey
invoke RegCloseKey,hKey
[/code]
至于全部的代码
大家可以去我的BLOG看看
s7lx 2008-6-27 10:02
难道不能使用CreateProcess吗? 你没有测试吗::08::
Deroemon 2008-7-5 21:58
Deroemon
哇 是用汇编写的 :face23 :face23 :face23