首页
社区
课程
招聘
[求助]关于pe结构
发表于: 2010-9-9 01:11 3978

[求助]关于pe结构

2010-9-9 01:11
3978
为什么我用pe结构查看器读出来的 file alignment 和 section aligment 都是1000
但是我自己写代码读出来的却是4096?

ps:我照着加密与解密16章的代码, 简单的把文件按section对齐读入数组, 在创建新的exe存入。运行提示不是有效的win32程序。

这是读对齐大小的代码
        HANDLE hFile = CreateFile( strFileName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
        ReadFile( hFile, &dosHeader, sizeof(dosHeader), &dwSize, NULL );
        SetFilePointer( hFile, dosHeader.e_lfanew, NULL, FILE_BEGIN );
        ReadFile( hFile, &ntHeader, sizeof(ntHeader), &dwSize, NULL );

        nFileAlign = ntHeader.OptionalHeader.FileAlignment;
        nSectionAlign = ntHeader.OptionalHeader.SectionAlignment;

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
!!!!

file alignment 和 section aligment 的1000是十六进制的
你读的是4字节  整数型 当然是 4096 了

4096(10)=1000(16)
2010-9-9 01:23
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
cxcxs  太感谢了。
2010-9-9 02:02
0
游客
登录 | 注册 方可回帖
返回
//