CPu*_*nkh -1 c++ windows winapi portable-executable
我试图读取PE头,并想看看exe是否启用了ASLR.
我目前在做:
if (PE.FileHeader->OptionalHeader.DllCharacteristics == IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE)
std::cout << "ASLR is enabled :)" << std::endl;
else
std::cout << "ASLR is disabled >:(" << std::endl;
Run Code Online (Sandbox Code Playgroud)
但是,我总是得到"ASLR被禁用> :(",即使我知道ASLR已启用.
我知道这与我的运算符有关,但我如何测试并查看PE头是否具有某个WORD字符?
DllCharacteristics是一个位掩码,它可以包含多个标志启用.您的检查必须使用按位运算&符而不是==运算符:
if (PE.FileHeader->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE)
std::cout << "ASLR is enabled :)" << std::endl;
else
std::cout << "ASLR is disabled >:(" << std::endl;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |