hor*_*guy 4 windows winapi code-signing portable-executable
正如问题标题中所述.但是,我正在使用"技巧",我在运行时使用可执行文件之后存储额外的数据(参见此处).
签署我的可执行文件似乎打破了这个"技巧",所以我的问题是签名存储在exe(PE)文件中的位置?
我正在使用signtoolmicrosoft来签署我的可执行文件.
无论您是否附加了自定义数据,嵌入式数字签名始终附加到可执行文件的末尾.附加数据包含在签名的哈希中.
签名的位置和大小存储在PE头的安全目录中.提取该信息的方式如下:
IMAGE_OPTIONAL_HEADERPE文件.IMAGE_OPTIONAL_HEADER::DataDirectory是一组IMAGE_DATA_DIRECTORY结构.将其索引IMAGE_DIRECTORY_ENTRY_SECURITY(未记录但在winnt.h中声明)以找到安全目录的条目.IMAGE_DATA_DIRECTORY::VirtualAddress包含签名的文件偏移量(不是RVA)并IMAGE_DATA_DIRECTORY::Size包含签名的大小.参考文献: