|
|
|
|
|
|
|
Windows内核调试
帖子发起人: Thomson 发起时间: 2009-07-01 14:10 下午 回复: 6
|
帖子排序:
|
|
|
|
2009-07-01, 14:10 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
在运行一些程序的时候,如build.exe,会调用很多tool,都是很快就会退出的.怎么样能够让这个被create的程序的信息保留下来吗?比如在process explorer里面,退出以后会变成红色,但是不让它消失. 如果选择不update的话,新create的进程的process就看不到了.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-01, 14:28 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-01, 19:09 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
就是这个样子的,是什么思路呢?我觉得ETW应该可以拿到这些数据..
谢谢.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-01, 19:13 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
思路谈不上,一个进程创建监控就可以实现,网上现成代码很多的,改改就行~
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-01, 21:49 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
这个程序能capture到build.exe进程树下面的所有进程吗?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-02, 09:36 上午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-02, 09:54 上午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
如果不是想写一个通用的工具,只是探索一下某个程序组的执行过程,比如build,那么可以使用设置注册表中的Image File Execution Options选项,当目标进程被创建时,自动启动调试器,比如WinDBG,然后执行.childdbg 1,告诉WinDBG要调试所有子进程,这样每个进程启动的时候,都会先启动WinDBG,执行!peb就可以看到详细的命令行和环境信息等等。
比如当使用VC来构建一个驱动的64位目标时,build的命令行一般为:
build -b -w
它会这样启动一个控制台窗口,然后执行nmake:
C:\WINDOWS\system32\cmd.exe /c nmake.exe /nologo BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 NOPASS0=1 AMD64=1
接下来nmake这么做:
nmake.exe /nologo BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 NOPASS0=1 AMD64=1
先调用汇编编译器的driver程序ml64编译驱动中的汇编文件:
C:\WINDOWS\system32\cmd.exe /c ml64 -c -Cx -nologo -Iamd64\ -I. -Id:\winddk\3790.1830\inc\mfc42 -I. -I..\vmx -I..\svm -Iobjchk_wnet_AMD64\amd64 -Id:\winddk\3790.1830\inc\wnet -Id:\winddk\3790.1830\inc\wnet -Id:\winddk\3790.1830\inc\ddk\wnet -Id:\winddk\3790.1830\inc\ddk\wdm\wnet -Id:\winddk\3790.1830\inc\crt /Zi /Zi -D_WIN64 -D_AMD64_ -DAMD64 -DCONDITION_HANDLING=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0502 /DWINVER=0x0502 -D_WIN32_IE=0x0603 -DWIN32_LEAN_AND_MEAN=1 -D_AMD64_SIMULATOR_PERF_ -D_SKIP_IF_SIMULATOR_ -D_AMD64_SIMULATOR_ -D_AMD64_WORKAROUND_ -DDEVL=1 -DDBG=1 -D__BUILDMACHINE__=WinDDK -Fod:\work\...(省略)\msr.asm
ml64进程启动:
ml64 -c -Cx -nologo -Iamd64\ -I. -Id:\winddk\3790.1830\inc\mfc42 -I. -I..\vmx -I..\svm -Iobjchk_wnet_AMD64\amd64 -Id:\winddk\3790.1830\inc\wnet -Id:\winddk\3790.1830\inc\wnet -Id:\winddk\3790.1830\inc\ddk\wnet -Id:\winddk\3790.1830\inc\ddk\wdm\wnet -Id:\winddk\3790.1830\inc\crt /Zi /Zi -D_WIN64 -D_AMD64_ -DAMD64 -DCONDITION_HANDLING=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0502 /DWINVER=0x0502 -D_WIN32_IE=0x0603 -DWIN32_LEAN_AND_MEAN=1 -D_AMD64_SIMULATOR_PERF_ -D_SKIP_IF_SIMULATOR_ -D_AMD64_SIMULATOR_ -D_AMD64_WORKAROUND_ -DDEVL=1 -DDBG=1 -D__BUILDMACHINE__=WinDDK -Fod:\work\...msr.asm
然后调用cl编译c文件,最后调用link链接到一起:
link -out:..\bin\amd64\uglyduck.sys -machine:amd64 @C:\DOCUME~1\...\LOCALS~1\Temp\nm16E.tmp
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » 有办法能让新create的进程的commandline,path等信息保留吗?
|
|
|
|
|
|