有没有办法设计小而简单的dll文件,编译后不会包含任何0x00字符?
有一些像tinyPE这样的项目,但是他们关注的是不在目标文件上的大小。
答案 0 :(得分:0)
如果DLL文件包含字符串常量,那么这些字符串无论如何都需要以null
字节结尾。您无法阻止null
字节出现在DLL中。出于某种原因,每个字节都放在DLL中。
答案 1 :(得分:0)
PE-header中有太多字段只能包含0字节才能使其正常工作。例如,ImageBase
中的IMAGE_OPTIONAL_HEADER
字段必须是64k的倍数,否则Windows将拒绝加载您的二进制文件。还要考虑标题中的文件地址:您的文件必须是HUGE才能在32位(甚至是AMD64上的64位)文件地址中不包含零。