首页 > 其他分享 >二进制文件和符号文件(PDB)如何校验是否匹配

二进制文件和符号文件(PDB)如何校验是否匹配

时间:2024-03-11 23:24:40浏览次数:22  
标签:文件 exe 匹配 二进制 校验 chkmatch PDB

 1. 静态检查

windbg 调试工具包中有一个工具symchk.exe, 选项很多, 下面一个简单的用法可以检查一个 test.exe能不能找到与它匹配的PDB:

 

 这是成功的情形. 下面来个失败的作为对比:

 

2. 如果已经在windbg内部, 可以通过下面的命令检查

 

 最后一行说 MATCH, 肯定没问题.

 

3. 在windbg中(在VS中不行), 如果你100%确信源代码没有任何改动, 只不过被重新编译了一下.
可以通过 .symopt +40 来关闭对GUID的强行检查. 从而load一个不匹配的PDB.

4. 除了1中提到的工具, 还有一个叫chkmatch 的工具, 在
http://www.debuginfo.com/download/chkmatch.zip
可以下载, 该工具不仅可以检查是否匹配, 还可以把不匹配的强制改为匹配, 也就是说EXE/DLL和PDB中的GUID相同, 这样在VS中就可以使用了, 当然, 高度危险, 后果自负.

通过 ChkMatch.exe (DebugInfo.com - ChkMatch tool) 工具来确认二进制文件和pdb是否匹配。

命令行:ChkMatch.exe -c ExeFile DebugInfoFile

ExeFile 表示 二进制文件

DebugInfoFile 表示 符号文件

例如:

ChkMatch.exe -c chrome.dll chrome.dll.pdb

 上面的Matched表示匹配。 

 

 上面的Unmatched表示不匹配,并携带原因。

 

同时都会打印出

二进制文件的时间戳、格式、签名和年龄等信息

pdb的格式类型、签名和年龄等信息

chkmatch.exe的详细资料参考: https://www.debuginfo.com/tools/chkmatch.html

 

  参考资料:

https://www.cnblogs.com/budapeng/p/3795140.html

https://blog.csdn.net/zsc_976529378/article/details/136529769

标签:文件,exe,匹配,二进制,校验,chkmatch,PDB
From: https://www.cnblogs.com/1yzq/p/18067338

相关文章

  • matlab读取hdf5文件
    使用matlab2021b读取hdf5文件info=h5info('00030043.hdf5');data_df=h5read('00030043.hdf5','/df');data_angle=h5read('00030043.hdf5','/line_level');b=reshape(data_df,500,[])grayImage=mat2gray(b');imsho......
  • tsv文件在大数据技术栈里的应用场景
    是的,\t是指制表符(tab),它通常用作字段分隔符在TSV(Tab-SeparatedValues)格式的文件中。TSV是一种简单的文本格式,它使用制表符来分隔每一列中的值,而每一行则代表一个数据记录。TSV文件例:ID\tName\tAge\tCity1\tJohnDoe\t28\tNewYork2\tJaneSmith\t32\tLosAngeles上面的例......
  • 文件上传功能模块——对象存储
    对象存储功能在文件上传业务中,我们通常把这个功能将他拆分成对象存储微服务。这样前端发起请求,网关就会把请求路由到对应的对象存储微服务,这样就不需要再保险业务开发上传功能。业务流程前端的请求通过网关路由到对象存储微服务中,对象存储将提供的文件上传到阿里云中,并返回文件......
  • c# 上传压缩包 解压,遍历文件夹和文件
    <body><formid="form1"runat="server"><div><asp:FileUploadID="FileUpload1"runat="server"/><asp:buttonID="Button1"runat="server"text="上传&q......
  • Linux查看文件内容常用命令
    前言在Linux系统中,查看文件内容是进行系统管理和日常操作的基本技能之一。通过一些简单而有效的命令,您可以快速浏览文件的内容,检查配置文件、日志文件等。本文将介绍几个常用的Linux命令,帮助您轻松地查看文件内容。查看文件类型1、file命令:filefile_name查看文本内容查看......
  • Nestjs系列 文件上传(一)
    Express中的文件上传Nest的文件上传是基于Express中间件multer实现的,所以需要先了解下multer包的使用。npminit-y#创建一个package.jsonnpminstallexpressmultercors#安装依赖包cors是处理跨域用的。创建index.js文件,并写入内容constexpress=re......
  • Visual Studio Code 配置文件关联
    在编写Linux的.service文件的时候,我发现.service文件的本质是INI文件。然而VSCode却并没有使用INI格式进行语法高亮。于是我通过如下设置使VSCode在遇到.service文件时自动使用INI格式的语法高亮:打开设置,搜索:files.associations,并添加一个项目:ItemValue......
  • vscode+cmake开发,头文件显示找不到(转载)
    原文地址:https://blog.csdn.net/lizy_fish/article/details/106376080 vsc在cmake开发当中会遇到,编辑器的插件判断头文件包含路径有问题。但是实际上通过cmake编译是正常的。特别是qt+vscode开发的时候,这个问题会导致编辑器的智能提示完全没有或者有误(比如包含这个文件的容......
  • django中的上传文件
    用django写接口的时候,不可避免的会涉及到上传文件环境python版本django版本djangorestframework版本drf-spectacular版本3.10.43.23.14.00.27.1编写模型fromdjango.dbimportmodelsclassTimeMixin(models.Model):"""时间混入类,为模型添加创......
  • 2024新版Axure RP大数据可视化大屏模板68套及通用组件+PSD文件
    AxureRP数据可视化大屏模板及通用组件库2024新版重新制作了这套新的数据可视化大屏模板及通用组件库V2版。新版本相比于V1版内容更加丰富和全面,但依然秉承“敏捷易用”的制作理念,这套作品也同样延续着我们对细节的完美追求,整个设计制作过程我们同样投入了大量的精力。作品制作前......