问题描述
我想打印特定标题范围内的字节。我在 python 中使用 Pefile 来获取位置,据我所知,这样做应该很简单,但我收到的地址是虚拟地址,这意味着我已将二进制文件加载到内存中。
import pefile
pe = pefile.PE("/home/luser/mybinary.exe")
for entry in pe.OPTIONAL_HEADER.data_dirECTORY:
print(entry.name + "\n|\n|---- Size : " + str(entry.Size) + "\n|\n|---- VirutalAddress : " + hex(entry.VirtualAddress) +'\n')
相关部分:
IMAGE_DIRECTORY_ENTRY_EXCEPTION
|
|---- Size : 660
|
|---- VirutalAddress : 0x6000
我不确定它是否相关,但此部分填充了 64 位二进制文件以保存异常表。
如果相关,这里有一些测试代码
#include <stdexcept>
#include <iostream>
#include <string>
bool myfunction(const std::string& str) {
if (str == "true")
return true;
else if (str == "false")
return false;
else
throw std::invalid_argument("Expected true or false");
}
int main(int argc,const char** argv) {
try {
const bool check = myfunction("not true");
}
catch (std::invalid_argument& error) {
std::cerr << error.what() << '\n';
}
return 0;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)