获取其他进程的命令行

 我们都知道用GetCommandLine可以获取当前进程的命令行,但是如果获取其他进程的命令行怎么获取呢?

一般可以用CreateRemoteThread注入到别的进程调用GetCommandLine,但是今天我看到一种方法(今天才知道,估计我是Out了),这个方法很简洁,直接ReadProcessMemory,地址你一定想不到(起码我当时没想到,我out了,说不定你in哦)居然是GetCommandLine+1,是GetCommandline函数地址+1字节,我想了一会猜了个大概,估计GetCommandline的前5个字节跟别的API不一样,不是mov edi,edi,push ebp, mov ebp,esp开头,而是一个mov指令,而mov指令的后四个字节就是commandline的地址,用OD随便载入一个exe看了一下(大部分exe在winmain之前总会用GetCommandLine),果然如此,GetCommandLineA只有一条指令,mov eax, [xxxxxxx],其中的xxxxxxxx就是commandline字符串指针变量,所以直接Read出来就O 了。

你可能感兴趣的:(api,exe)