创建没有空字符的.dll文件

时间:2014-07-12 22:21:16

标签: dll minify portable-executable

有没有办法设计小而简单的dll文件,编译后不会包含任何0x00字符?

有一些像tinyPE这样的项目,但是他们关注的是不在目标文件上的大小。

2 个答案:

答案 0 :(得分:0)

如果DLL文件包含字符串常量,那么这些字符串无论如何都需要以null字节结尾。您无法阻止null字节出现在DLL中。出于某种原因,每个字节都放在DLL中。

答案 1 :(得分:0)

PE-header中有太多字段只能包含0字节才能使其正常工作。例如,ImageBase中的IMAGE_OPTIONAL_HEADER字段必须是64k的倍数,否则Windows将拒绝加载您的二进制文件。还要考虑标题中的文件地址:您的文件必须是HUGE才能在32位(甚至是AMD64上的64位)文件地址中不包含零。