因为pe病毒只有一个代码段不可写,而平常数据写入是在代码段,所以我们必须修改代码段使其具有可读可写可执行的属性。代码段属性值一般为60000020,修改为e0000020。
31位 可写
30位 可读
29位 可执行
6的二进制码为0110
e的二进制码味1110
数据段一般为:c0000040h
节的属性标志位含义
位 |
数据位在Windows.inc中的预定义值以及为1时的含义 |
5 |
(IMAGE_SCN_CNT_CODE或00000020h)节中包含代码 |
6 |
(IMAGE_SCN_CNT_INITIALIZED_DATA或00000040h)节中包含已初始化数据 |
7 |
(IMAGE_SCN_CNT_UNINITIALIZED_DATA或00000080h)节中包含未初始化数据 |
25 |
(IMAGE_SCN_MEM_DISCARDABLE或02000000h)节中的数据在进程开始以后将被丢弃,前面举例的包含重定位表的.reloc节就是一个例子 |
26 |
(IMAGE_SCN_MEM_NOT_CACHED或04000000h)节中的数据不会经过缓存 |
27 |
(IMAGE_SCN_MEM_NOT_PAGED或08000000h)节中的数据不会被交换到磁盘 |
28 |
(IMAGE_SCN_MEM_SHARED或10000000h)表示节中的数据将被不同的进程所共享,在第11章的钩子例子中的共享数据的节就设置了这个属性标志 |
29 |
(IMAGE_SCN_MEM_EXECUTE或20000000h)映射到内存后的页面包含可执行属性 |
30 |
(IMAGE_SCN_MEM_READ或40000000h)映射到内存后的页面包含可读属性 |
31 |
(IMAGE_SCN_MEM_WRITE或80000000h)映射到内存后的页面包含可写属性 |