我在看carberp中的dll加载程序,其中有一行我不明白。
for (DWORD i = 0; i < ((Relocation->SizeOfBlock - IMAGE_SIZEOF_BASE_RELOCATION) / 2 ); i++, RelInfo++ )您可以查看下面链接上的源代码。
我的意思是我理解for循环,但是什么是"sizeofblock- image_sizeof_base_relocation / 2“。
请帮帮忙。
发布于 2017-09-07 19:39:42
根据MSDN:(下到PE文件基础发布部分)
重新定位部分是块数组,每个块包含:
(IMAGE_BASE_RELOCATION,重定位二进制chunck)
为了计算特定块中的重定位量,您需要将SizeOfBlock从IMAGE_BASE_RELOCATION中取出来,减去IMAGE_BASE_RELOCATION的大小,然后除以每个重定位大小(这个大小(WORD)=2个字节):
(Relocation->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD)希望这对你有帮助
https://security.stackexchange.com/questions/144076
复制相似问题