python PeFile 打印节的字节数

问题描述

我想打印特定标题范围内的字节。我在 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 (将#修改为@)