㈠ 如何得到其它进程的启动命令行参数
第二部不要选择开始浏览网络 应该选择链接 它会提示要你输入共享密钥
然后输入无线路由器的密码即可
如果是下面的原因 密码正确而链接不了的话就是无限路由器可能设置了无限连接 你看看无线连接参数里面 是不是自己设置了 或者是自身屏蔽了
㈡ 如何获取指定进程程序运行时的命令行参数文本
获取指定进程程序运行时的命令行参数文本的方法
在windows下查看某个运行程序(或进程)的命令行参数
使用下面的命令:
wmic process get caption,commandline /value
如果想查询某一个进程的命令行参数,使用下列方式:
wmic process where caption=”svchost.exe” get caption,commandline /value
这样就可以得到进程的可执行文件位置等信息。
㈢ 如何获取某进程的命令行参数
“如果想查询某一个进程的命令行参数,使用下列方式: wmic process where caption=”svchost.exe” get caption,commandline /value 这样就可以得到进程的可执行文件位置等信息。”
㈣ 迅雷启动程序的命令行参数都有哪些
可直接输入文件完整路径
eg:假如你的迅雷是默认安装方式
则命令为:c:\program files\thunder network\thunder\program\thunder.exe
亦可以在前面加入start命令:
start c:\program files\thunder network\thunder\program\thunder.exe
系统的一些特殊程序可以不用输入完整路径:
explorer 启动“桌面”/打开资源管理器
taskmgr 启动任务管理器
启动注册表的话就不能用了
㈤ VB.NET 命令行,一个程序启动时接收命令行启动参数的程序 怎样做
添加一个全局类,添加一个 Main 静态方法,让它接收一个类型为字符串数组的参数,并设置项目属性的启动项目为Main函数即可。
但是要注意在Main函数中运行窗体。Application.Run()
㈥ HOOK NtCreateThread 怎么获得 创建进程的命令行参数
线程注入,说到底还是创建线程,只不过创建的线程在别的进程中运行而已,那么,我们需要下手的地方跟监控普通线程创建需要下手的地方应当是一样的——NtCreateThread(不过这不是一个太好的选择,因为NtCreateThread的定位稍显麻烦。这儿只是一个为了说明如何监控而做一个例子而已,所以尽可能选择简单的方法来挂钩,修改ssdt可以挂这个函数,所以就选择了它。^-^更好的选择见后文)。
我认为我有必要先列出NtCreateThread的原型:
NTSTATUS
NtCreateThread(
__out PHANDLE ThreadHandle,
__in ACCESS_MASK DesiredAccess,
__in_opt POBJECT_ATTRIBUTES ObjectAttributes,
__in HANDLE ProcessHandle,
__out PCLIENT_ID ClientId,
__in PCONTEXT ThreadContext,
__in PINITIAL_TEB InitialTeb,
__in BOOLEAN CreateSuspended
)
__out的那些就都不解释了,主要解释需要用到的。
access_mask是访问权限,不解释;ObjectAttr是对象属性,_opt的,不解释;ProcessHandle就是将要被创建线程的进程(新线程在这个进程中运行)的句柄了;剩下几个也跟本文无关,也不解释,需要了解详细信息可以查MSDN。
需要关注的参数我想我已经说的很明确了——ProcessHandle。我们可以使用ObReferenceObjectByHandle来获取这个Handle所指向的进程的EPROCESS的地址(PEPROCESS)。
剩下的就是判断这个线程是正常创建还是远程创建的问题了,这个判断将会变得很容易,因为我们可以用获得到PEPROCESS和IoGetCurrentProcess的结果相比较——NtCreateThread总是应当在创建者的进程上下文中被执行。
不过当我们编译运行之后就会发现,还有一个问题是我们不得不关注的——运行程序的时候父进程会“帮助”子进程创建子进程的主要线程(因为这个时候子进程还没有线程,所以不可能自己创建),所以这就引出了另外一个问题——如何判断这个远程线程创建是注入还是正常的程序运行呢?
简单分析下我们不难发现,二者的区别在于将被创建线程的进程是否还存在其他线程——因为我们的代码是在NtCreateThread之前执行的,所以如果是正常运行的程序的话,这个时候它不应当有任何的线程,而线程注入则不同,线程注入的话目标进程应当已经有了至少一个线程(一个主线程和若干个附属线程(或者没有附属线程))。
那么如何判断目标进程是否已经存在线程呢?在EPROCESS结构中:
...
+0x190 ThreadListHead : _LIST_ENTRY
...
我想这个ThreadListHead这是很容易理解的。。。。
实现方法(因为只是为了演示,所以所有的地址、偏移等都是硬编码):
ThreadListHead = 0x190;
//==========================================
BOOLEAN
ProcessNoThread( PEPROCESS Process)
{
PLIST_ENTRY Entry;
PLIST_ENTRY ThreadListEntry;
PLIST_ENTRY ListHead;
ThreadListEntry = (PLIST_ENTRY)((ULONG)Process + ThreadListHead);
Entry = ThreadListEntry->Flink;
return (Entry==ThreadListEntry);
}
//==========================================
NTSTATUS new_NtCreateThread(
OUT PHANDLE ThreadHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ProcessHandle,
OUT PCLIENT_ID ClientId,
IN PCONTEXT ThreadContext,
IN PVOID InitialTeb,
IN BOOLEAN CreateSuspended )
{
NTSTATUS st;
PVOID pepCurrentProcess=0;
st=ObReferenceObjectByHandle(ProcessHandle,(ACCESS_MASK)PROCESS_ALL_ACCESS,NULL,KernelMode,&pepCurrentProcess,NULL);
if (NT_SUCCESS(st))
{
if (IoGetCurrentProcess()!=pepCurrentProcess)
{
if (!ProcessNoThread((PEPROCESS)pepCurrentProcess)) DbgPrint("PROCESS 0x%X have created a thread into PROCESS 0x%X, NtCreateThread return value = 0x%x",IoGetCurrentProcess(),pepCurrentProcess,st);
}
ObDereferenceObject((PVOID)pepCurrentProcess);
}
st=old_NtCreateThread(ThreadHandle,DesiredAccess,ObjectAttributes,ProcessHandle,ClientId,ThreadContext,InitialTeb,CreateSuspended);
return st;
}
//==========================================
我想这段代码也不至于太难理解。。
是时候说说其他的一些问题了:
1、其实hook PspCreateThread要比hook NtCreateThread相对容易一些(两个函数同样都没有被导出,而PspCreateThread可以很容易的在PsCreateSystemThread中被定位,但NtCreateThread的定位就需要分析PE文件了(改SSDT另当别论,不过改SSDT的强度太差))。
2、遍历进程的线程是使用硬编码的,这使得通用性变得很差,而通过遍历PspCidTable枚举系统中的线程则成为一种不错的方法(从PspCreateThread中的代码来看,是由PspCreateThread在PspCidTable中ExCreateHandle的,但是我没有做测试)
就这样把,我自负的认为我的语言表达能力还算是不错的。
---EOF---
㈦ 如何获取某个程序的命令行参数
一般情况下,程序都有自己有help,或单独的文档说明
如果采用help不能查到,则只能去看这个程序的相关文档!
在windows下 命令行中,输入执行代码名 /?
可获取到,如果没有,只能去查文档了。操作系统本身并不提供这个支持
㈧ 如何得到其它进程的启动命令行参数
启动进程:start 进程名关闭进程:taskkill 进程ID
㈨ 如何手动查看一个应用程序的启动参数
1,首先,找到要查看的应用程序,双击打开这个程序。
㈩ 进程启动命令行中怎么传递带空格的参数
这个需要该程序实现命令行启动的功能才行,不是所有的窗口程序都可以从命令行带参数启动的。