首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在便携式代码中验证Microsoft的可移植可执行格式的数字签名?

在便携式代码中验证Microsoft的可移植可执行格式(Portable Executable, PE)的数字签名,可以通过以下步骤进行:

  1. 首先,需要使用编程语言来读取PE文件的头部信息,以获取数字签名的位置和相关信息。常用的编程语言有C/C++、C#、Python等,选择一种你熟悉的语言进行开发。
  2. 使用相应的API或库函数来解析PE文件的结构,获取数字签名的位置和大小。在Windows平台上,可以使用WinAPI的函数来实现,如ImageNtHeaderImageDirectoryEntryToData等。
  3. 通过读取PE文件中的数字签名数据,可以获取签名算法、证书信息等相关内容。数字签名通常位于PE文件的证书目录表(Certificate Table)中,可以使用相应的API或库函数来提取签名数据。
  4. 验证数字签名的有效性,可以使用相应的加密库或API来进行验证。常用的验证方法是使用公钥对签名进行解密,并与文件的哈希值进行比对。如果解密后的哈希值与文件的哈希值一致,则说明数字签名有效。
  5. 在验证数字签名时,还需要验证证书的有效性。可以使用证书链验证机制来验证证书的合法性和信任链。验证证书的有效性包括检查证书的颁发者、有效期、吊销状态等。
  6. 对于便携式代码,可以使用Microsoft提供的工具和库来进行数字签名的验证。例如,可以使用Windows SDK中的SignTool工具来验证数字签名,或者使用.NET Framework中的System.Security.Cryptography命名空间下的类来进行验证。

总结起来,验证Microsoft的可移植可执行格式的数字签名的步骤包括解析PE文件结构、提取数字签名数据、验证签名的有效性和证书的合法性。具体实现可以根据所选的编程语言和平台来选择相应的API、库函数或工具。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Digital-Signature-Hijack:一款针对数字签名劫持PowerShell脚本

Digital-Signature-Hijack Digital-Signature-Hijack是一款针对数字签名劫持攻击PowerShell脚本。...在现代Windows操作系统代码签名技术用于帮助用户识别来自不可信源可信二进制文件。二进制文件通过使用数字证书进行签名,数字证书包含有关发布者,嵌入私钥和公钥信息。...该脚本专为安全研究人员设计,开发人员通常会对其代码进行签名,以便向用户保证他们软件是可信,而且没有被恶意修改。这都通过使用数字签名来完成。因此,签名代码是一种验证文件真实性和完整性方法。...功能介绍 1、以微软身份对目标主机中所有的可执行文件进行数字签名; 2、以微软身份对目标主机中所有的PowerShell脚本文件进行数字签名; 3、验证所有移植可执行文件数字签名; 4、验证所有PowerShell...脚本文件数字签名 Digital-Signature-Hijack通过劫持注册表并添加必要值,以及利用Matt Graeber开发自定义SIP DLL文件来实现其功能。

90020

利用 Microsoft 签名验证新 Zloader 银行恶意软件活动

一个正在进行ZLoader恶意软件活动已被发现,该活动利用远程监控工具和一个与微软数字签名验证相关 9 年漏洞来窃取用户凭据和敏感信息。...“然后恶意软件利用微软数字签名验证方法将其有效载荷注入到签名系统 DLL ,以进一步逃避系统防御。”...这是通过利用跟踪为CVE-2013-3900已知问题(一种 WinVerifyTrust 签名验证漏洞)实现,该漏洞允许远程攻击者通过对文件进行足够细微更改而通过特制便携式可执行文件执行任意代码...尽管微软在 2013 年解决了这个错误,但该公司在 2014 年 7 月修改了其计划,不再“在受支持 Microsoft Windows 版本上将更严格验证行为作为默认功能强制执行”,并将其作为可选功能提供...可执行文件Windows Authenticode 签名验证

71120
  • 如何验证可执行文件是可靠 | Windows 应急响应

    ,这是部分恶意软件/代码分析师工作 这篇文章目的是在应急响应过程,面对中等数量可执行文件等待验证,如何快速将可疑文件挑选出来 我选择方法是先验证签名,签名通过后再验证发布者或者叫签名者 (Publisher...针对文件签名 针对文件签名就聚焦到单个文件了,也就是上面提到方案验证对象 简单来说就是将可执行文件进行 Hash 运算(可采用不同 Hash 算法)后,生成一个值,之后通过私钥对该值进行签名,最后将签名相关内容存储到可执行文件一个段...,这部分不属于可执行部分,只能用来存储 payload ,需要额外加载器才能运行,除非文件本身实现加载器功能 因此,经过 先验证签名,后验证发布者 方式验证通过程序不一定与官方程序一模一样,不一定是完全无害...签名验证程序,大不了再搞一下逆向,看看能不能发现蛛丝马迹 关于 Windows 二进制格式,官方还是有详细资料 https://learn.microsoft.com/zh-cn/windows/...the-attribute-certificate-table-image-only 这里面找到 属性证书表(Attribute Certificate Table) 这部分引用了一个 docx 文件 —— Windows 验证移植可执行签名格式

    26210

    看完秒懂,“数字签名”入侵那点事儿!

    下面亚信安全网络监测实验室将为大家解读“数字签名”如何应用于未签名PE文件,以及关于代码签名机制、数字签名二进制格式背景知识。 什么是软件“数字签名” 首先呢,要了解下什么是PE文件!...PE文件全称是Portable Executable,意为移植可执行文件,常见EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上程序文件(可能是间接被执行...当你看到“数字签名”标签存在于一个文件属性时,它实际上是表示该PE文件是被验证签名过,这也意味着该文件本身会存在一个由证书和签名组成哈希文件二进制数据,该验证签名存储格式被记录在PE验证签名规范文档...数字签名二进制格式 现在你已经知道了一个PE文件被签名方法(验证和目录),知道一些签名二进制格式是非常有用,无论是验证签名还是目录签名,这两个签名都是存储为PKCS #7签名数据,这种数据是ASN...数字签名应用到无签名PE 现在你已经对数字签名二进制格式和存储位置有了基本概念,你可以开始将现有签名应用到未签名代码

    2.7K20

    二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解

    (参考文献见后) 一.PE文件数字签名 1.概念普及 (1) PE文件 PE文件全称是Portable Executable,意为移植可执行文件,常见EXE、DLL、OCX、SYS、COM都是...后续文章会详细分析PE文件格式。 (2) 为什么要对PE文件进行数字签名呢? 防篡改:通过对数字签名验证,保证文件未被非法篡改。 降低误报:安全软件通过验证文件是否有正规厂商数字签名来降低误报。...(3) PE文件数字签名验证过程 签名: 软件发布者使用散列算法(MD5或SHA)计算PE文件散列值。 软件发布者使用私钥对散列值进行签名得到签名数据。...椭圆加密算法,属于DSA一个变种,基于椭圆曲线上离散对数问题 其应用领域包括: PE文件数字签名 HTTPS数字签名 电子邮件数字签名 Office文档数字签名 代码数字签名 2.Github网站证书验证过程.../pe-format [6] 哈希 HASH·数字签名 - Phant [7] 恶意文件分析系统数字签名验证 - 绿盟科技 [8] [翻译]Windows PE文件数字签名格式 - 看雪银雁冰大神

    1.7K10

    什么是代码签名证书?

    代码签名证书帮助您获得同样信任。代码签名证书是由Digicert、Sectigo等受信任证书颁发机构颁发数字签名证书,其中包含完全识别谁开发了用户下载或安装软件所有信息。...代码签名证书是一种专用证书,帮助软件开发人员将数字签名添加到他们开发并通过Internet分发软件。例如,代码签名证书允许您将公司信息与在数学上集成到其配对私钥公钥绑定。...扩展验证代码签名证书EV(扩展验证代码签名证书提供标准代码签名证书所有优点以及严格审查过程,以确保您是您所说那样。它还为存储在USB设备私钥提供加密令牌,用作双重身份验证。...像Sectigo这样证书颁发机构不会验证组织,而是将您验证为个人软件开发人员。此外,与任何其他常规代码签名证书一样,它使用PKI(公钥基础设施)对脚本和可执行文件进行签名。代码签名工作原理?...代码签名证书使用在出版商和软件开发人员中非常普遍。它通过在发布之前对不同应用程序、宏、插件、可执行文件和其他文件使用数字签名对其进行签名,从而帮助提供唯一身份。

    76000

    使用代码签名证书对EXE文件进行签名?

    如果您想知道如何培养用户对您应用程序或可执行文件信任,对应用程序或可执行文件 (exe) 进行数字签名是确保这一点最佳方法。...当可执行文件或应用程序经过代码签名时,数字代码签名将添加到文件,其中包括有关发布者和用于签署文件证书信息。此数字签名是使用代码签名证书私钥创建,该私钥存储在证书持有者安全设备上。...USB 令牌:如果您必须使用扩展验证 (EV) 代码签名证书进行代码签名,请务必确保在继续代码签名之前将由颁发证书颁发机构 (CA) 发送给您 USB 令牌插入到您设备过程。...确保您 EXE 已正确签名并且您客户在安装它时不会遇到任何签名问题最佳方法是使用 SignTool 验证命令验证数字签名。...通过使用 SignTool 验证数字签名并测试软件安装,您可以确保您 EXE 已正确签名,并且您客户在安装时不会遇到任何签名问题。代码签名EXE!

    1.5K50

    .NET5.0 单文件发布打包操作深度剖析

    工具接口标准委员会 援引委员会规范文件说明:可执行文件和链接格式最初由 UNIX 系统开发和发布实验室(USL)作为应用程序二进制接口(API)一部分。...工具接口标准委员会 (TIS) 选择将不断发展 ELF 标准作为便携式对象文件。该标准适用于各种操作系统 32 位英特尔架构环境格式。...这些文件分别称为移植可执行(PE)和公用对象文件格式(COFF)文件。...打包器实现在 runtime Microsoft.NET.HostModel 库。 认识了 ELF 和 PE 文件结构之后,我们就可以对打包器代码进行阅读理解。...Microsoft.NET.HostModel 你可以从 github 上下载 .NET 5.0 代码, 转到目录: runtime/src/installer/managed/Microsoft.NET.HostModel

    1.1K10

    拥抱.NET Core,如何开发跨平台应用并部署至Ubuntu运行

    现在只能选择.NET Framework 4.5或以上才可以看到3个类型项目。 键入一些代码 ? 运行 ?...优点 易移植 发布内容较小 缺点 需要安装.NET Core运行时 Self-contained application(自宿主应用) 当当当,这种方式很酷,也是我最喜欢一种发布方式。...可以理解为提供了绿色版.NET Core运行时,然后提供了一个对应平台可执行程序来进行加载调用。...-f, --framework [FID] 指定运行框架,:netcoreapp1.0,net45,net451等,具体由“project.json”“framework”节点指定。...运行便携式应用 首先得安装.NET Core运行环境 参考资料:https://www.microsoft.com/net/core#ubuntu 安装完成之后,输入“dotnet --info”来测试是否安装成功

    1.7K10

    便携式激励vs形式化vsUVM验证方法在IP块整个生命周期中比较分析

    验证环境和测试移植性是使用验证方法重要因素。图1(下图)显示了IP块整个生命周期各个阶段,从模块设计到后硅工艺,以及广泛使用方法和随着我们过渡到不同阶段重用程度。...该环境由顶层UVM测试控制,该测试一方面调用虚拟序列来控制UVC操作,另一方面又利用PLI或DPI格式与基于便携式激励生成格式交互系统调用。...E: 重用程度和移植到其他验证环境程度 当我们要进行垂直复用时,基于UVM和PS解决方案UVM组件重用性相同。...E: 重用程度和移植到其他验证环境程度 这些断言是移植,在仿真时我们也可以将假设转换为断言。但是,当我们更改仿真平台时,就无法重用。...另外,PS部分所述,我们能够使用模块级重用测试来查找与Sync信号相关集成错误,这用断言来解决可能需要更多精力。

    1.1K11

    代码签名(Code Signing)

    当谈到软件开发和安全性时,Code Signing(代码签名)是一个至关重要概念。在这篇文章,我们将探讨什么是代码签名,为什么它重要,以及两个代码签名工具对比。 什么是代码签名?...代码签名是一种数字签名技术,用于验证软件或代码真实性和完整性。它通过使用加密技术,为软件文件附加一个数字签名,证明该文件是由特定开发者创建并未被篡改过。...对软件进行签名:开发者使用专门工具, Microsoft SignTool 或 Apple codesign 工具,对软件进行数字签名。...分发已签名软件:带有数字签名软件可以被分发到用户设备上。 为什么代码签名重要? 代码签名重要性体现在以下几个方面: 完整性验证代码签名可以确保软件在分发过程未被篡改。...安全性增强:通过数字签名,可以防止恶意软件插入合法软件包,确保用户下载软件是安全可靠。 操作系统信任:大多数操作系统和应用商店要求开发者对软件进行代码签名才能发布。

    35710

    MANIFEST.MF文件(PDB文件)

    但是只有少数程序员了解 JAR 文件格式 强大功能。在本文中,作者探讨了JAR 格式许多功能和优势,包括打包、可执行 JAR 文件、安全性和索引。 JAR 文件是什么?...一个 JAR 文件可以用于: 用于发布和使用类库 作为应用程序和扩展构建单元 作为组件、applet 或者插件程序部署单位 用于打包与组件相关联辅助资源 JAR 文件格式提供了许多优势和功能,其中很多是传统压缩格式...一个 JAR 文件可以包含有关它所包含文件数据,厂商和版本信息。 可移植性。处理 JAR 文件机制是 Java 平台核心 API 标准部分。...可执行 JAR 有助于方便发布和执行 Java 应用程序。 创建可执行 JAR 创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录。...jarsigner 工具 jarsigner 工具使用 keystore 生成或者验证 JAR 文件数字签名

    74120

    Java(JDK)安装包介绍,常见命令,下载方法,安装方法,新版本没有jre问题,为什么要配置环境变量

    javax.security.auth.spi 此包提供用于实现插入验证模块接口。...org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发人员通过利用统一 API 使用一些来自各种基础安全机制( Kerberos)安全服务,验证、数据完整性和和数据机密性。...org.omg.CORBA.portable 提供可移植性层,即可以使一个供应商生成代码运行在另一个供应商 ORB 上 ORB API 集合。...org.omg.PortableServer 提供一些类和接口,用来生成跨多个供应商 ORB 移植应用程序服务器端。...org.omg.PortableServer.portable 提供一些类和接口,用来生成跨多个供应商 ORB 移植应用程序服务器端。

    1.5K20

    BlackHat议题解析:Windows程序数字签名校验“漏洞”

    正是通过这样一整套相对完善机制,最终比较靠谱保证了接收数据有效性。而本文所指Windows程序数字签名,其实就是指所有者要保护数据是一些Windows下可执行程序这样一种情况。...这里直接给出这个“漏洞”信息:对于一个Windows可执行程序,签发数字签名时候需要计算数据摘要并不会是程序文件全部数据,而是要排除一些特定区域数据。...至于原因,当然是为了合理地组织pe程序数字签名,符合pe文件格式标准了。...而实际上,要让上述在尾部添加数据文件显示数字签名有效,即Windows系统对数字签名正确识别,只需要更新Security.Size这个字段一致,且满足添加数据长度为8整数倍即可: ?...所以本文结论就是:程序数字签名只能用于验证程序代码和数据是否被篡改,而无法用于验证程序文件本身是否被篡改。 * 本文原创作者:维一零,本文属FreeBuf原创奖励计划,未经许可禁止转载

    1.6K70

    浅谈便携式激励(PSS)和UVM

    译者按:本文算是一篇简单易懂PSS用例科普。 Accellera便携式测试和激励标准提供了强大验证功能,这些功能并不能代替UVM,而是可以增加现有的验证流程。...要追其原因,我们需要研究一下 PSS与验证工具交互方式,为了了解Accellera便携式测试和激励(PSS)标准与UVM不同作用,让我们考虑从1.0a版本标准文件获得关于PSS打算完成简短说明...简单cb1_random_sequence移植激励标准等效项是一个action,它是PSS语言构造所表示行为。...PSS模型exec块内容完全相同,只是将预先随机化值插入到生成代码。...您还可以从相同PSS模型生成C代码,因此当您验证工作从UVM仿真环境转移到仿真或FPGA原型基于处理器环境时,您可以重用测试意图。

    1.9K20

    PE文件和COFF文件格式分析--概述

    (转载请指明出处)         如果有一定英语基础朋友,可以查看微软原稿(http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx...PE全称是Portable Executable,用中文就是“移植可执行”。从这个名字可以看出PE文件格式是一种文件格式标准,该标准并不局限于Windows某个平台,因为它是“移植。...“可执行性”是说这个文件是承载着可以被CPU执行指令,而不是像TXT这样只是承载着数据。        ...这里obj文件就是COFF格式。         之前介绍,我们编写PE文件很可能是由COFF文件链接而成,那么PE和COFF之间有什么关系呢?...PE文件包含COFF格式头,这个头信息非常重要,我会在之后介绍。 ? 以上是经典PE文件格式 ? 以上是经典COFF文件格式        之后我们会讨论更详细信息。

    1.3K20

    一、源代码-面向CLR编译器-托管模块-(元数据&IL代码)

    托管模块简介         标准32位Microsoft Windows移植执行体(PE32)文件         标准64位Microsoft Windows移植执行体(PE32+)文件...注:如果文件头使用PE32格式,文件能在Windows32位版本和64位版本上运行,如果文件头是PE32+格式,那么该文件只能在Windows64位版本上运行....stdio智能提示通过解析元数据方式,来告诉我们一个类型有哪些属性、方法、字段、事件,来提高我们开发效率. 3、CLR代码验证过程确保代码只执行类型安全操作. 4、元数据允许将对象字段序列化到内存...模块,并在运行时操纵非托管数据(native 内存),这些模块不需要CLR即可执行,通过命令行开关,C++编译器就更能生成包含托管代码模块,当然用户必须安装CLR才能执行这种代码,在前面提到所有的Microsoft...编译器,Misrosoft C++编译器是独一无二,只有它才允许开发人员同时写托管代码和非托管代码,并生成到同一个模块,它也是惟一一个允许开发人员在源代码定义托管非托管数据类型Microsoft

    1.2K100

    python处理xps文件_如何在Windows 10系统处理XPS文件

    也许这种类型文件不像PDF那样受欢迎,但了解XPS及其工作方式可能会有所帮助。 在本文中,我们将向您展示如何在Windows 10处理XPS文件。 如何查看XPS文件窗口10 微软正在。...它可以执行一些基本操作,读取XPS文件,缩放,打印,搜索等。 XPS允许您决定谁可以编辑您XPS文档,以及有人可以使用这些权限时间。...阅读有关Windows Rights Management Services更多信息。 它还允许您对文档进行数字签名。要签署文档,您必须首先获得数字证书。...证书用于验证作者身份,验证服务或加密文件。 不会自动提供个人使用证书,因此您必须联系当局申请。如果要创建自己签名,请单击“请求签名”和“ 签名者”名称以及“签名”字段“ 意图”。...如何在Windows 10创建XPS文件 我们假设您使用某些版本Microsoft Office来阅读和编辑文档。要创建XPS文件,您需要将.doc文件打印为XPS并将其保存在计算机上。

    4.1K10
    领券