Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 为什么editbin/swaprun:CD/swaprun:NET更改了两个字节?_Windows_Portable Executable - Fatal编程技术网

Windows 为什么editbin/swaprun:CD/swaprun:NET更改了两个字节?

Windows 为什么editbin/swaprun:CD/swaprun:NET更改了两个字节?,windows,portable-executable,Windows,Portable Executable,使用选项/swaprun:CD和/swaprun:NET为dll调用editbin会更改dll的PE头字,设置位$0400和$0800(因此实际上它只更改高位字节) 这就是它应该做的 但它也改变了另一个字节(参见十六进制比较) 谁能给我解释一下这个字节是什么意思,为什么要改变它 编辑:澄清: 带有这些选项的editbin应该设置 PE头特征字段(16位字)中的图像\u文件\u可移动\u从\u交换运行\u和图像\u文件\u网络\u从\u交换运行\u。这是我谈论的第一个字节。这些标志都没有存储在第二

使用选项/swaprun:CD和/swaprun:NET为dll调用editbin会更改dll的PE头字,设置位$0400和$0800(因此实际上它只更改高位字节)

这就是它应该做的

但它也改变了另一个字节(参见十六进制比较)

谁能给我解释一下这个字节是什么意思,为什么要改变它

编辑:澄清: 带有这些选项的editbin应该设置 PE头特征字段(16位字)中的图像\u文件\u可移动\u从\u交换运行\u和图像\u文件\u网络\u从\u交换运行\u。这是我谈论的第一个字节。这些标志都没有存储在第二个字节中,那么为什么工具的更改超过了必要的范围,这意味着什么


图像文件头.Characteristics |=图像文件可从交换中移除运行|图像文件从交换中运行|

所以0x2122->0x2d22(=2122 | 0x0c00)


IMAGE_OPTIONAL_HEADER.CheckSum从0x000a3c31更改为0x000a4831

@dummzeuch使用任何pe查看器,所有内容都将易于查看这就是我刚才所做的。我必须承认我甚至不知道(可选)PE头有一个校验和字段。谢谢