首页
社区
课程
招聘
[旧帖] [求助][原创]《加密与解密》第16章中的一个小问题 0.00雪花
发表于: 2011-11-10 15:57 1489

[旧帖] [求助][原创]《加密与解密》第16章中的一个小问题 0.00雪花

2011-11-10 15:57
1489
第16章第444页,
m_nImageSize = AlignSize(nImageSize,nSectionAlign);修正映像大小没有对齐的情况

这个函数原型
UINT AlignSize(UINT nSize, UINT nAlign)
{
        return ((nSize + nAlign - 1) / nAlign * nAlign);
}

这个修正对齐到底是什么意思,我理解不了。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果是return (nSize / nAlign * nAlign);
0 < nSize < nAlign
那return 0咯~
2011-11-10 16:06
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不好意思,还是没懂。

返回也不应该是0啊,返回的应该是申请内存的大小。

我不知道这个修正是什么概念,为什么这个函数这么算。
2011-11-11 10:51
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是啊,假设的情况下不应该return 0,而是return nAlign才对啊~ (总不能把1.2M以下的小孩不当人吧。。)
人家想的办法就是return ((nSize + nAlign - 1) / nAlign * nAlign);

至于修正的意义,大概就是从PE的磁盘体变身成内存体需要体积空间需求的计算吧。

菜鸟言论,概不负责。
2011-11-11 11:31
0
游客
登录 | 注册 方可回帖
返回
//