草庐IT

C++标准

全部标签

windows - 无法在 Windows Server 2008 R2 标准上运行 windbg

我有最新的windowsserver2008R2标准,多个人都有帐户。我最近在上面安装了Windbg。但是我无法运行,因为它给出了以下错误。请注意,我拥有的所有正版操作系统都完全与最新的安全更新保持同步。windbg.exe-EntryPointNotFound---------------------------TheprocedureentrypointRtlCopyContextcouldnotbelocatedinthedynamiclinklibraryntdll.dll.---------------------------OK-----------------------

python - 将 Python 标准 IO 暴露给子进程

在Python3.5.1上,我有以下内容:output=subprocess.check_output(cmd).decode(encoding="UTF-8")这会调用正确调用的命令cmd。cmd中的C++14代码如下所示:HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);assert(handle!=INVALID_HANDLE_VALUE);//Alwayspassesassert(handle!=nullptr);//AlwayspassesCONSOLE_SCREEN_BUFFER_INFOcsbi;BOOLresult=GetCons

c - 迭代 PEB DllName 仅显示 exe 名称

我正在尝试获取我的应用程序中已加载模块的列表(与安全/shellcode有关,因此请避免调用WINAPI)。我正在遍历PEB->Ldr模块双向链表,但每次打印DLL的名称时,它只是打印当前正在执行的应用程序的名称和路径。在其他人的代码中,我看到他们只是将当前的LIST_ENTRY指针设为PLDR_DATA_TABLE_ENTRY,您可以直接调用FullDllName那样。但是,例如,要实际获取基址,您需要调用Reserved2[0]而不是DllBase,这是可以理解的,因为LIST_ENTRY是结构中的8个字节,但它没有解释为什么可以直接调用FullDllName。Here'sanex

c++ - 使用重定向标准输入处理子进程中的 kbhit

我编写了一个启动另一个进程并使用WindowsAPI(CreateProcess、CreatePipe等)将其标准I/O重定向到管道的程序该程序应启动多个不同的控制台程序并使用stdio与它们通信。这一切都运行良好(我可以写入进程的标准输入并使用管道从进程中读取)直到我尝试启动并与使用kbhit的程序通信。为了简化我想开始的程序对标准输入的处理:while(1){if(kbhit()){fgets(line,sizeof(line),stdin);//dosomethingwithline}Sleep(100);}结果是fgets永远不会被调用,因为kbhit不会返回true,即使我已

c - 为什么 Windows 要求导入 DLL 数据?

在Windows上,可以从DLL加载数据,但需要通过导入地址表中的指针进行间接访问。因此,编译器必须知道正在访问的对象是否是使用__declspec(dllimport)从DLL导入的。类型说明符。这很不幸,因为这意味着设计用作静态库或动态库的Windows库的header需要知道程序链接到哪个版本的库。此要求不适用于函数,这些函数是为DLL透明地模拟的,stub函数调用实际函数,其地址存储在导入地址表中。在Linux上,动态链接器(ld.so)将所有链接数据对象的值从共享对象复制到每个进程的私有(private)映射区域。这不需要间接寻址,因为私有(private)映射区域的地址是模

python - 为 Windows 7 编译 IP2Location Python 扩展

我想编译/安装在此处找到的IP2LocationPython扩展:www.ip2location.com/python.aspx我尝试按照这些网站上的说明进行操作:eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/boodebr.org/main/python/build-windows-extensions但我没有得到任何地方。问题是Python扩展依赖于另一个C库:www.ip2location.com/c.aspx当我尝试在cygwin中编译这个库时,我得到以

c - 使用 C 在 Windows 中打印带有千位分隔符的整数

我想这个问题是不言自明的。我正在使用printf和friend(snprintf等)来显示一些在数百万或数十万范围内的内存统计信息。以我懒惰的思维方式读取格式为“1,523,556”的数字比“1523556”容易得多。我已经尝试设置语言环境并在格式说明符(%'d和%'llu)之前使用撇号标志,但撇号显然是SUS的标准,所以它可能对我在Windows下不起作用。是否有特定于Windows的API来执行此操作?我正在使用PellesC并直接使用ANSIC99进行编程。**编辑**阅读答案和相关的MSDN页面后,我明白了为什么.NET是现在Windows编程的首选方法。它简化了大量的API工

c - 一个 C 程序演示 cmd.exe 和一个 linux shell 例如bash,定界参数?

我听说cmdshell将整个内容传递给命令,然后标准C库将其分隔,同时考虑空格和引号。而在Linux中,只有shell可以做到这一点。一个带有while循环的程序,显示argsv[i]显示它是如何定界的,但不显示shell做了什么,也没有显示C库做了什么。任何人都可以指出或向我展示一个可以显示它的程序吗? 最佳答案 我想你想知道shell在linux中是如何工作的,对吗?我认为当我们在命令shell上键入任何内容时,shell接收所有参数作为字符串格式的参数,shell然后fork+exec二进制文件并将所有参数作为环境变量传递给新

c++ - 使 CreateProcess 从字符串中获取标准输入

非常简单,但找不到任何有关如何执行此操作的信息。有人有任何提示或有用的链接吗?谢谢! 最佳答案 也许你想要一个anonymouspipe.如果是这样,我建议你看看CreatingaChildProcesswithRedirectedInputandOutput在MSDN上。 关于c++-使CreateProcess从字符串中获取标准输入,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c++ - CRT 和 WIN32 API

我,我想知道在Windows下哪里使用了CRT库。在形成win32API的每个dll中?仅靠visualstudio下开发的软件?换句话说,Windows操作系统是否通过使用CRT以外的其他东西来执行malloc,对文件的写入/读取等?谢谢 最佳答案 C运行时(如果是VisualStudio2010msvcr100.dll)包含C标准库函数的实现。C运行时以特定于平台的方式实现,在Windows情况下,它使用kernel32.dll(Win32API的一部分)中的函数来执行其任务。您可以使用DependencyWalker查看导出和