发布网友 发布时间:2022-04-22 04:03
共2个回答
热心网友 时间:2024-03-05 01:59
1.打开cmd后输入以下命令就可以结束进程: 方法一:利用进程的pid结束进程 命令格式:ntsd-cq-ppid 命令范例:ntsd-cq-p1332(结束explorer.exe进程) 范例详解:explorer.exe的pid为1332,但是如何获取进程的pid呢?在cmd下输入tasklist就可以获取当前任务管理器所有进程的pid。或者打开任务管理器,在菜单栏,选择“查看”—“选择列”,在打开的选择项窗口中将“pid(进程标识符)”项选择钩上,这样任务管理器的进程中就会多出pid一项了。(pid的分配并不固定,是在进程启动是由系统随机分配的,所以进程每次启动的进程一般都不会一样。) 可使用以下命令: ================================================= @echooff modeconcols=30lines=5 color1e echo. set/pt=请输入进程名: tasklist/focsv>2.txt find"%t%"2.txt>1.txt for/f"delims=,tokens=2"%%iin(1.txt)doseta=%%i ntsd-cq-p%a% echopidname echo============ echo%a%%t% del1.txt del2.txt pause>nul exit 3.方法二:利用进程名结束进程 命令格式:ntsd-cq-pn***.exe(***.exe为进程名,exe不能省) 命令范例:ntsd-cq-pnexplorer.exe 另外的能结束进程的dos命令还有taskkill和tskill命令: 命令格式:taskkill/pid1234/f(也可以达到同样的效果。) 如果上面这些还不能满足您的求知欲,下面还有: ntsd详解 有一些高等级的进程,tskill和taskkill或许无法结束,那么我们还有一个更强大的工具,那就是系统debug级的ntsd.准确的说,ntsd是一个系统调试工具,只提供给系统开发级的管理员使用,但是对杀掉进程还是很爽的.基本上除了windows系统自己的管理进程,ntsd都可以杀掉。ntsd调试程序在启动时要求用户指定一个要连接的进程。使用tlist或pviewer,可以获得某个现有进程的进程id,然后键入ntsd-ppid来调试这个进程。ntsd命令行使用如下的句法: ntsd[options]imagefile 其中,imagefile是要调试的映像名称。 用法usage:ntsd[-?][-2][-d][-g][-g][-myob][-lines][-n][-o][-s][-v][-w] [-rbreakerrorlevel][-tprinterrorlevel] [-hd][-pd][-pe][-pt#][-pv][-x|-x{e|d|n|i}] [--|-ppid|-pnname|command-line|-zcrashdmpfile] [-zpcrashpagefile][-premotetransport][-robp] [-adllname][-c"command"][-iimagepath][-ysymbolspath] [-clines#][-srcpathsourcepath][-qr\\machine][-wake] [-remotetransport:server=name,portid][-servertransport:portid] [-ses][-sfce][-sicv][-snul][-noio][-failinc][-noshell] where:-?displaysthishelptext command-lineisthecommandtorununderthedebugger --isthesameas-g-g-o-p-1-d-pd -adllnamesetsthedefaultextensiondll -cexecutesthefollowingdebuggercommand -clinesnumberoflinesofoutputhistoryretrievedbyaremoteclient -failinccausesincompletesymbolandmoleloadstofail -dsendsalldebuggeroutputtokerneldebuggerviadbgprint -dcannotbeusedwithdebuggerremoting -dcanonlybeusedwhenthekerneldebuggerisenabled -gignoresinitialbreakpointindebuggee -gignoresfinalbreakpointatprocesstermination -hdspecifiesthatthedebugheapshouldnotbeused forcreatedprocesses.thisonlyworksonwindowswhistler. -odebugsallprocesseslaunchedbydebuggee -ppidspecifiesthedecimalprocessidtoattachto -pdspecifiesthatthedebuggershouldautomaticallydetach -pespecifiesthatanyattachshouldbetoanexistingdebugport -pnnamespecifiesthenameoftheprocesstoattachto -pt#specifiestheinterrupttimeout -pvspecifiesthatanyattachshouldbenoninvasive -rspecifiesthe(0-3)errorleveltobreakon(seeseterrorlevel) -robpallowsbreakpointstobesetinread-onlymemory -tspecifiesthe(0-3)errorleveltodisplay(seeseterrorlevel) -wspecifiestodebug16bitapplicationsinaseparatevdm -xsetssecond-chancebreakonavexceptions -x{e|d|n|i}setsthebreakstatusforthespecifiedevent -2createsaseparateconsolewindowfordebuggee -iimagepathspecifiesthelocationoftheexecutablesthatgenerated thefault(see_nt_executable_image_path) -linesrequeststhatlinenumberinformationbeusedifpresent -myobignoresversionmismatchesindbghelp.dll -nenablesverboseoutputfromsymbolhandler -noiodisablesalli/ofordedicatedremotingservers -noshelldisablesthe.shell(!!)command -qrqueriesforremoteservers -sdisableslazysymbolloading -sesenablesstrictsymbolloading -sfcefailscriticalerrorsencounteredringfilesearching -sicvignoresthecvrecordwhensymbolloading -snuldisablesautomaticsymbolloadingforunqualifiednames -srcpathspecifiesthesourcesearchpath -venablesverboseoutputfromdebugger -wakewakesupasleepingdebuggerandexits -yspecifiesthesymbolsearchpath(see_nt_symbol_path) -zspecifiesthenameofacrashmpfiletodebug -zpspecifiesthenameofapage.dmpfile tousewithacrashmp -remoteletsyouconnecttoadebuggersessionstartedwith-server mustbethefirstargumentifpresent transport:tcp|npipe|ssl|spipe|1394|com name:machinenameonwhichthedebugserverwascreated portid:idoftheportthedebuggerserverwascreatedon fortcpuse:port= fornpipeuse:pipe= for1394use:channel= forcomuse:port=,baud=, channel= forsslandspipeseethedocumentation example:-remotenpipe:server=yourmachine,pipe=foobar -servercreatesadebuggersessionotherpeoplecanconnectto mustbethefirstargumentifpresent transport:tcp|npipe|ssl|spipe|1394|com portid:idoftheportremoteuserscanconnectto fortcpuse:port= fornpipeuse:pipe= for1394use:channel= forcomuse:port=,baud=, channel= forsslandspipeseethedocumentation example:-servernpipe:pipe=foobar -premotetransportspecifiestheprocessservertoconnectto transportargumentsaregivenaswithremoting environmentvariables: _nt_symbol_path=[drive:][path] specifysymbolimagepath. _nt_alt_symbol_path=[drive:][path] specifyanalternatesymbolimagepath. _nt_debugger_extension_path=[drive:][path] specifyapathwhichshouldbesearchedfirstforextensionsdlls _nt_executable_image_path=[drive:][path] specifyexecutableimagepath. _nt_source_path=[drive:][path] specifysourcefilepath. _nt_debug_log_file_open=filename ifspecified,alloutputwillbewrittentothisfilefromoffset0. _nt_debug_log_file_append=filename ifspecified,alloutputwillbeappendedtothisfile. _nt_debug_history_size=size specifiesthesizeofaserver'soutputhistoryinkilobytes controlkeys: quitdebugger breakintotarget forceabreakintodebuggee(sameasctrl-c) debugcurrentdebugger toggleverbosemode printversioninformation ntsd:exiting-pressenter--- 选项option: -2打开一个用于调试字符模式的应用程序的新窗口 -d将输出重定向到调试终端-g使执行自动通过第一个断点 -g使ntsd在子程序终止时立即退出o启用多个进程的调试,默认值为由调试程序衍生的一个进程 -p指定调试由进程id标识的进程 -v产生详细的输出。 例如,假设inetinfo.exe的进程id为104。键入命令“ntsd-p104”将ntsd调试程序连接到inetinfo进程(iis)。也可使用ntsd启动一个新进程来进行调试。例如,ntsdnotepad.exe将启动一个新的notepad.exe进程,并与它建立连接。一旦连接到某个进程,就可以用各种命令来查看堆栈、设置断点、转储内存,等等。 命令含义~显示所有线程的一个列表kb显示当前线程的堆栈轨迹~*kb显示所有线程的堆栈轨迹r显示当前 帧的寄存器输出u反汇编代码并显示过程名和偏移量d[type][]转储内存bp设置断点bc[]清除一个或多个断点bd[]禁用一个或多个断点be[]启用一个或多个断点bl[]列出一个或多个断点。 有很多病毒,木马,或者恶意软件,都喜欢把自己做成动态库,然后注册到系统正常程序的加载库列表中,达到隐藏自己的目的. 首先需要设置一下ntsd的输出重定向,最好是重定向到一个文本文件,方便分析研究. c:\>set_nt_debug_log_file_append=c:\pdw.txt 注意,虽然输出重定向了,但是我的输出依然会继续显示在屏幕上,而且会进入到debug模式,我们使用-cq参数,就可以避免这个问题. c:\>ntsd-cq-vnotepad.exe 现在我们的pdw.txt文件中,就可以看见notepad.exe文件的调试信息。 可以知道,ntsd的软件终止能力是很好很强大的,一些taskkill都无法终止的软件(如student.exe这一类或木马)可以用ntsd轻易终止。热心网友 时间:2024-03-05 02:00
1 sudo make menuconfig