-
-
[旧帖] [原创]在文件夹中双击运行exe文件系统调用哪些api 0.00雪花
-
发表于: 2009-5-31 18:40 1136
-
对于这样的问题,用windbg内核调试最合适不过了,在这里仍然是使用双机内核调试,因为这样可以拦截几乎所有进程对api的调用,不罗嗦了,大家看我的调试过程:
kd> .reload //加载符号,由于是内核调试,默认是不加用户态模块的
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Loading Kernel Symbols
.............................................................................................................................
Loading User Symbols
Loading unloaded module list
.....
kd> bp nt!NtCreateProcessEx //设置ssdt断点,为加载用户态模块作准备
kd> g //让客户机运行,在客户机上任意运行一个程序,命中ssdt断点
Breakpoint 0 hit
nt!NtCreateProcessEx:
805c836a 6a0c push 0Ch
kd> .reload /user //趁机加载用户态模块.
Loading User Symbols
............................................................................
//加载完毕后取消nt!NtCreateProcessEx这个不用的断点。
//开始设置api断点,共测试9个函数。
kd> bp kernel32!CreateProcessA
kd> bp kernel32!CreateProcessW
kd> bp kernel32!CreateProcessInternalA
kd> bp kernel32!CreateProcessInternalW
kd> bp shell32!ShellExecuteA
kd> bp shell32!ShellExecuteW
kd> bp shell32!ShellExecuteExA
kd> bp shell32!ShellExecuteExW
kd> bp kernel32!WinExec
kd> g //运行客户机,在客户机上任意找个exe文件运行,下面是断点命中的输出信息,结果一目了然
Breakpoint 7 hit
SHELL32!ShellExecuteExW:
001b:7d5d2f03 8bff mov edi,edi
kd> g
Breakpoint 1 hit
kernel32!CreateProcessW:
001b:7c802336 8bff mov edi,edi
kd> g
Breakpoint 3 hit
kernel32!CreateProcessInternalW:
001b:7c81979c 68080a0000 push 0A08h
kd> g //客户机开始正常运行,共命中3个断点。
在文件夹中双击运行exe文件系统调用了上面哪些api已经非常明了,而且调用顺序也非常明了,依次是ShellExecuteExW,CreateProcessW,CreateProcessInternalW。
kd> .reload //加载符号,由于是内核调试,默认是不加用户态模块的
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Loading Kernel Symbols
.............................................................................................................................
Loading User Symbols
Loading unloaded module list
.....
kd> bp nt!NtCreateProcessEx //设置ssdt断点,为加载用户态模块作准备
kd> g //让客户机运行,在客户机上任意运行一个程序,命中ssdt断点
Breakpoint 0 hit
nt!NtCreateProcessEx:
805c836a 6a0c push 0Ch
kd> .reload /user //趁机加载用户态模块.
Loading User Symbols
............................................................................
//加载完毕后取消nt!NtCreateProcessEx这个不用的断点。
//开始设置api断点,共测试9个函数。
kd> bp kernel32!CreateProcessA
kd> bp kernel32!CreateProcessW
kd> bp kernel32!CreateProcessInternalA
kd> bp kernel32!CreateProcessInternalW
kd> bp shell32!ShellExecuteA
kd> bp shell32!ShellExecuteW
kd> bp shell32!ShellExecuteExA
kd> bp shell32!ShellExecuteExW
kd> bp kernel32!WinExec
kd> g //运行客户机,在客户机上任意找个exe文件运行,下面是断点命中的输出信息,结果一目了然
Breakpoint 7 hit
SHELL32!ShellExecuteExW:
001b:7d5d2f03 8bff mov edi,edi
kd> g
Breakpoint 1 hit
kernel32!CreateProcessW:
001b:7c802336 8bff mov edi,edi
kd> g
Breakpoint 3 hit
kernel32!CreateProcessInternalW:
001b:7c81979c 68080a0000 push 0A08h
kd> g //客户机开始正常运行,共命中3个断点。
在文件夹中双击运行exe文件系统调用了上面哪些api已经非常明了,而且调用顺序也非常明了,依次是ShellExecuteExW,CreateProcessW,CreateProcessInternalW。
赞赏
他的文章
- [求助]thunk这个单词怎么解释 3479
- [求助]重名问题 3130
- [求助]求源码一份 2856
- [求助]驱动中能否使用资源文件? 4914
- [讨论]来这里的不知道有没有对破解不感兴趣的 1613
看原图
赞赏
雪币:
留言: