**写在前面的话:**因为做题做到了一个非常神奇的cmd输入输出方式,因此特立此篇收集整理相关的一些调用cmd的奇淫巧计。
GetStdHandle()
该函数传入的参数只有三种:
STD_INPUT_HANDLE (DWORD) -10 – 标准输入设备
STD_INPUT_HANDLE (DWORD) -11 – 标准输出设备
STD_INPUT_HANDLE (DWORD) -12 – 标准错误设备
其中第三种标准错误设备尚未搞明白怎么用,不过前两种可以为我们的骚气的输入输出方式提供思路 – 正常来讲,传入前两参之后返回的句柄,分别对应的是我们控制台的输入缓冲区和输出缓冲区,其原理类似于用管道来控制cmd的输入输出。
而这里的使用方法就可以用我们正常的使用句柄的读写函数 – WriteFile和ReadFile:
hFile = GetStdHandle(0xFFFFFFF5); // 控制台输出
v7 = GetStdHandle(0xFFFFFFF6); // 控制台输入
WriteFile(hFile, "Enter password:\r\n", 0x12u, &NumberOfBytesWritten, 0);// 输出
ReadFile(v7, &Buffer, 0x80u, &NumberOfBytesWritten, 0);