新手学习pe文件二进制dump

查看 14|回复 0
作者:52_pojie_52   
最近学习pe文件格式,感觉比较难记忆,用C++写几个小程序帮助理解,计划分成几个小程序:
[ol]
  • pe dump程序:将pe二进制字节、对应的ASCII码及地址导出到txt文件(本帖)
  • pe字段解析:取出pe文件各字段内容,分正常的pe和变形的pe格式2类(挖坑)
  • pe diff程序:按字段比较2个pe文件(挖坑)
  • 最后顺利的话,再把上面程序改成汇编(挖坑)
    [/ol]
    pe dump程序的代码如下:
    #include
    #include
    #include
    #include
    #include
    #include
    using namespace std;
    int main(int argc, char* argv[]) {
            /*--------------- read args --------------------*/
            if (2!=argc) {
                    cout=0x20) {
                                            outfile
    主要代码说明都在注释里了,主要思路就是:
    [ol]
  • 输入参数(文件名)
  • 打开pe文件
  • 读取文件内容到文件流
  • 打开要输出的文件
  • 第一行打印“Address”、00-0F、”ASCII“几个title
  • 后面按一行16个字节来打印:左侧一栏是address、中间是16个字节(转成了16进制大写),右侧是对应的ASCII码(0x00-0x1F的ASCII码是控制字符,所以都改成了'.')
    [/ol]

    文件, 程序

  • 您需要登录后才可以回帖 登录 | 立即注册