能力值:
( LV2,RANK:10 )
|
-
-
2 楼
调用SHELL,瞎猜得
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
Explorer.exe的CreateProcess就可以拦截到了
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
先 CreateProcess 如果失败然后 ShellExecuteEx
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
ShellExecuteEx最后还是调用CreateProcess的
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我用海风兄的hookapi拦了explorer.exe的createprocess和winexec都没有作用,双击后还是执行了目标程序。看来不是用这两个函数。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
绝对是CreateProcessW,我测试成功过
直接按Ctrl+Alt+Del弹出任务管理器没拦截到,但双击的程序都拦截到了的
还有一个办法就是用shell钩子
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
CreateProcessInternalW
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
winexec函数的话,CreateProcessInternalW就可以拦截到,LZ自己跟下API不就晓得了~钩住CreateProcessInternalW,CreateProcess,ShellExecute,WinExec这三个API创建的进程都能拦截到~
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
任务管理器,是Winlogon进程focker出来的
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
用海风兄的HOOKAPI钩CreateProcessInternalW这个函数,直接出错后explorer.exe退出。是不是CreateProcessInternalW函数的入口不是5字节?如果现在要钩这个函数要怎么改?钩子函数中什么都不做,直接返回也是出错。
但是钩其它程序是可以钩得住的,是不是explorer.exe做了什么手脚?
|
能力值:
( LV5,RANK:70 )
|
-
-
12 楼
CreateProcessInternalW 的参数个数你或许弄错了,检查一下
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
LZ要HOOK这个函数,却不知道它入口是不是5字节,汗....有可能是你没修改它的内存页面的保护属性或者修改不成功的原因~你直接在explorer.exe的CreateProcessInternalW函数下断,跟下,问题出在那不就出来了...
|
能力值:
( LV12,RANK:300 )
|
-
-
14 楼
首先知道CreateProcessInternalW是肯定要调用的,那么剩下的就是要知道是哪个API调用了CreateProcessInternalW,这个只需要使用栈回溯就可以了。
用windbg,Attach到explorer.exe,加载符号
bp kernel32!CreateProcessInternalW
然后g运行
在资源管理器窗口里双击一个可执行程序,explorer.exe进程在CreateProcessInternalW函数入口被断下
这时进行栈回溯:
0:013> kb
ChildEBP RetAddr Args to Child
01aadc80 7c80235e 00000000 023214a4 0231f20c kernel32!CreateProcessInternalW
01aadcb8 7d5d20c4 023214a4 0231f20c 00000000 kernel32!CreateProcessW+0x2c
01aae73c 7d5d1f2e 000400f4 00000000 023218b4 SHELL32!_SHCreateProcess+0x387
01aae790 7d5d1e65 0231dfb8 01aae7b0 7d5d1964 SHELL32!CShellExecute::_DoExecCommand+0xb4
01aae79c 7d5d1964 00000000 00126ab8 0231dfb8 SHELL32!CShellExecute::_TryInvokeApplication+0x49
01aae7b0 7d5d1896 00126ab8 00126ab8 01aae7f0 SHELL32!CShellExecute::ExecuteNormal+0xb1
01aae7c4 7d5d1832 01aae7f0 001496b8 00126ab8 SHELL32!ShellExecuteNormal+0x30
01aae7e0 7d5de563 01aae7f0 00000000 0000003c SHELL32!ShellExecuteExW+0x8d
01aae82c 7d5de4b8 01aaea88 40000000 01aae85c SHELL32!_InvokePidl+0x9f
01aaea68 7d5de3ef 01aaea88 00000000 00126ab8 SHELL32!CShellExecMenu::_InvokeOne+0xa0
01aaeaf4 7d5de33b 001496bc 01aaeb10 0017c038 SHELL32!CShellExecMenu::InvokeCommand+0xa7
01aaeb54 7d5de28d 02305408 01aaeb74 00000000 SHELL32!HDXA_LetHandlerProcessCommandEx+0xa5
01aaede4 7d67512d 0017c038 01aaf130 00000000 SHELL32!CDefFolderMenu::InvokeCommand+0x17f
01aaf114 7d679dc0 0017c038 01aaf130 00000000 SHELL32!CDefView::_InvokeContextMenu+0xb0
01aaf280 7d679ea3 0017c038 00000000 00000000 SHELL32!CDefView::_InvokeContextMenuVerb+0x18c
01aaf2ac 7d6192dd 00000000 00000000 04000000 SHELL32!CDefView::_InvokeContextMenuVerbOnSelection+0x9a
01aaf52c 7d5c1ebb 01aaf8a4 0009bd40 0009bd40 SHELL32!CDefView::_OnLVNotify+0x37a
01aaf544 7d5c1d2d 01aaf8a4 00000000 0009bd40 SHELL32!CDefView::_OnNotify+0x7c
01aaf6b8 7d5c1da1 000601c0 0000004e 00000001 SHELL32!CDefView::WndProc+0x860
01aaf6fc 77d18734 000601c0 0000004e 00000001 SHELL32!CDefView::s_WndProc+0x72
结果就一目了然了吧。我这是在虚拟机里跑的,因为实机安装有安全软件,可能在这个过程中会有安全软件的HOOK。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
我根据LZ的问题,用WinDbg调试出3个,依次是ShellExecuteExW,CreateProcessW,CreateProcessInternalW。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
应该是 CreateProcessW
失败后 ShellExecuteExW
CreateProcessInternalW
乱猜的。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
winxp2的explorer.exe用od跑不了,好象是要用个什么办法,前断时间刚刚看过一下。
我hook CreateProcessInternalW这个函数,在我自己做的建立新进程的程序里可以正常hook并弹出messagebox,但是一注入explorer.exe后,explorer.exe就出错。太奇怪了,为什么注一般的程序中可以但是注入explorer.exe就出错。
|
|
|