草庐IT

PE_CONF_PWD

全部标签

c++ - 解决 PE SxS 导入 Windows

我正在编写我自己的WindowsLoader版本(尽管是一个非常简单的版本),到目前为止一切顺利。但是,在递归遍历已加载模块的导入表时,我遇到了一些小问题。对于大多数依赖项,一切都很顺利,我可以简单地递归加载模块。但是,对于某些依赖项,这只会破坏目标进程。经过进一步调查,我意识到这是因为Windows并行程序集。本质上,加载的PE中的依赖项是目标进程中使用的模块的不同SxS版本。在一种情况下,我正在加载的DLL引用了msvcr90.dll,但目标进程使用的是运行时的早期版本:msvcr71.dll。现在,windows加载程序可以很好地处理这个问题,所以显然有一种“正确”的方法可以做到

windows - 生成PE格式的可执行文件

我正在尝试生成PE格式的可执行文件;我正处于dumpbin满意的阶段,据我所知,这与与Microsoft链接器链接的空程序没有本质区别,但Windows仍然拒绝它:PEfile-what'smissing?如果我有一些生成有效PE文件的算法,也许我可以从那里爬山。到目前为止,这是我发现的内容:有大量文档、示例代码和工具可用于阅读PE文件,而不是从头开始生成它们。PEBliss在其功能中列出了生成,但不会编译。用于生成PE文件的示例汇编语言模板专注于最小化大小。看起来最有前途的生成一个Windows拒绝的文件,尽管据我所知它应该被接受;具有讽刺意味的是,我发现确实有效的那个生成了一个Wi

windows - 如何在 Windows PE 脚本中使用 `wmic`?

我正在尝试确定在WindowsPE3.1上下文中运行的批处理脚本中的计算机型号(例如“Optiplex9010”)。当正常运行Windows时,我可以使用wmiccsproduct或wmicbios来执行此操作,但在运行WindowsPE时这些都不会返回任何数据。(这似乎也适用于大多数或所有其他类。)我已经安装了winpe-wmi.cab包来支持WMI。使用wmic路径而不是别名没有区别。如何使我的wmic命令起作用? 最佳答案 事实证明,大多数wmic命令,包括wmiccsproduct和wmicbios,都可以在安装winpe时

c++ - 区分 cl.exe (Visual Studio C++) 生成的 32 位和 64 位 PE 目标文件

给定来自cl.exe的两个PE目标文件,一个32位和一个64位,我如何不借助unix实用程序区分一个和另一个,最好是在命令行(cmd.exe或powershell)?C:\>"...\VC\bin\cl.exe"-ctest.c-Fotest32.objC:\>"...\VC\bin\x86_amd64\cl.exe"-ctest.c-Fotest64.obj如果我安装msys2file实用程序可以理解它:$filetest*.objtest32.obj:Intel80386COFFobjectfile,notstripped,3sections,[...]test64.obj:dat

windows - PE 加载器不加载哪些部分?

PE加载器是否完全加载了任何部分?或者是否加载了节标题中指定的每个节?在ELF程序中,应该加载的节头(称为程序头或段)是那些用PT_LOAD标记的。PE项目中有类似的东西吗?附言。我找到了标志IMAGE_SCN_MEM_DISCARDABLE。是否标记有未加载的部分? 最佳答案 当重定位段可用,但PE镜像不需要重定位时,加载器不加载重定位段。如果PE镜像已进行数字签名,则它有一个包含证书的部分。此部分未由加载程序加载。此外,如果调试部分可用,加载程序也不会加载它。 关于windows-P

c++ - 是否可以使用内存缓冲区(或 PE 资源)来支持只读 SQLite 数据库?

我想使用Windows的“自定义资源”功能将存储在SQLite数据库中的相当大的数据block嵌入到我的二进制文件中。(这是一个日志记录工具的白名单)SQLite确实支持inmemorydatabases,但看起来这可能仅限于创建全新的数据库;并且似乎不支持从内存缓冲区读取;但我并不肯定。数据库是否支持这样的东西?(由于其他原因我必须嵌入SQLite,所以将它用于白名单也很棒......) 最佳答案 sqlite文档在线备份部分http://www.sqlite.org/backup.html有一些代码可以做你想做的事(即将内存数据

windows - PE 文件节名

根据这篇文章http://msdn.microsoft.com/en-us/library/ms809762.aspx?ppud=4我们可以用自定义名称命名PE部分。所以在一个PE文件中,它的创建者用他自己的名字替换了部分名称,现在,如果“.pdata”部分不再称为“.pdata”,那么我就无法通过它的名称找到它。我怎样才能找到“.pdata”? 最佳答案 正确,根据WindowsPortableExecutablespecification和其他来源,如MattPietrek的来源,部分名称是为人类制作的!通常,编译器为特定类型的

c++ - 如何获取PE文件签名偏移量?

我正在尝试解析PE文件,将其加载到内存中并将WinNT结构指针设置为适当的地址。但是,我无法对PE\0\0签名进行愚蠢的检查,因为我与DOSheader的偏移量有误(一个字节太多)。因此,当我检查IMAGE_NT_HEADERS.Signature时,我收到从“E”开始的4个字节。#defineSHOW_VAR(x)std::cout(m_image.get());//--m_DOSHeader->e_lfanew;(m_image.get()+m_DOSHeader->e_lfanew);//DEBUGSHOW_HEX(m_DOSHeader->e_lfanew);for(inti=

windows - 如何更改 Windows 上 Apache 的 httpd.conf 的位置?

我正致力于在WindowsServer2012上设置一个负载平衡集群,并且有一个共享驱动器,我希望Apache的配置文件存在于其中。这样LB的每个成员都可以加载完全相同的配置文件。如何独立于ServerRoot的位置更改配置文件的位置? 最佳答案 使用-d参数启动Apache进程,并将您的替代ServerRoot作为参数,尽管我认为这对您来说是一个更好的主意使用某种机制将文件本地同步到每个服务器。另请阅读http://httpd.apache.org/docs/2.4/mod/core.html#mutex,如果您从网络文件系统运行

python - 为什么没有用于 Windows 的 pwd python 模块

许多不同的软件工具都使用特定于Unix的pwdmodule所以不能在Windows上运行。该模块只有少数与用户和密码文件相关的函数。乍一看,它似乎可以在Windows机器上复制。由于我找不到,所以我认为一定有一个表演塞子。有谁知道创建Windows版本的pwd模块的技术挑战是什么? 最佳答案 用户在Unix及其衍生产品上的管理方式与Windows有很大不同,因此支持两者的模块需要更高级别的抽象。正如您链接到的文档所表明的那样,pwd模块基本上只是对标准/etc/passwd文件访问的包装,直接公开其字段。Windows系统没有“sh