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

如何验证已签名的DLL已经由我签名?

要验证已签名的DLL是否由您签名,您可以使用Windows操作系统自带的工具“Authenticode签名工具”。以下是详细步骤:

  1. 打开命令提示符(CMD)。sigcheck -i <DLL文件路径>将<DLL文件路径>替换为您要检查的DLL文件的路径。 3. 查看输出结果中的“Signature”一栏。如果DLL文件已签名,您将看到“Signed”字样。 4. 若DLL文件已签名,您可以查看“Signing Certificate”一栏,以确认签名者的身份。
  2. 输入以下命令并回车:

如果您需要使用编程方式验证DLL签名,您可以使用Windows API函数WinVerifyTrust。以下是一个简单的示例代码:

代码语言:csharp
复制
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;

public class Authenticode
{
    [DllImport("Wintrust.dll", ExactSpelling = true, SetLastError = false, CharSet = CharSet.Unicode)]
    static extern bool WinVerifyTrust(IntPtr hwnd, Guid pgActionID, WinTrustData pWVTData);

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    struct WinTrustData
    {
        public uint StructSize;
        public IntPtr PolicyCallbackData;
        public IntPtr SIPClientData;
        public uint UIChoice;
        public uint RevocationChecks;
        public uint UnionChoice;
        public IntPtr FileOrCatalogOrBlobOrSgnrOrCert;
        public IntPtr StateAction;
        public IntPtr StateData;
        public string URLReference;
        public uint ProviderFlags;
        public uint UIContext;
        public string SignatureSettings;
    }

    const int WINTRUST_ACTION_GENERIC_VERIFY_V2 = 102;

    static bool Verify(string fileName)
    {
        WinTrustData wtd = new WinTrustData();
        wtd.StructSize = (uint)Marshal.SizeOf(typeof(WinTrustData));
        wtd.UnionChoice = 1;
        wtd.FileOrCatalogOrBlobOrSgnrOrCert = Marshal.StringToHGlobalUni(fileName);
        wtd.UIChoice = 2;

        bool result = WinVerifyTrust(IntPtr.Zero, new Guid("{00AAC56B-CD44-11d0-8CC2-00C04FC295EE}"), wtd);

        Marshal.FreeHGlobal(wtd.FileOrCatalogOrBlobOrSgnrOrCert);

        return result;
    }

    static void Main(string[] args)
    {
        string dllPath = @"C:\path\to\your\dll.dll";
        bool isVerified = Verify(dllPath);

        if (isVerified)
        {
            Console.WriteLine("DLL is signed and verified.");
        }
        else
        {
            Console.WriteLine("DLL is not signed or verification failed.");
        }
    }
}

这个示例代码使用WinAPI函数WinVerifyTrust来验证指定DLL文件的签名。如果验证成功,则返回true,否则返回false

请注意,这个示例代码仅供参考,实际应用中可能需要根据具体需求进行修改和调整。

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

相关·内容

系统讲解 - PHP 接口签名验证

概览 工作中,我们时刻都会和接口打交道,有的是调取他人接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。...在设计签名验证时候,一定要满足以下几点: 可变性:每次签名必须是不一样。 时效性:每次请求时效性,过期作废。 唯一性:每次签名是唯一。 完整性:能够对传入数据进行验证,防止篡改。...在 PHP7.2 版本中已经被弃用了,在新版本中使用 openssl_encrypt 和 openssl_decrypt 两个方法。...小结 本文讲了设计签名验证需要满足一些条件:可变性、时效性、唯一性、完整性。...分享了可以编写接口文档在线系统。 分享了开发过程中使用接口调试工具。 扩展中分析了 HTTP 和 RPC 区别,动态令牌介绍等。 还提出了一个问题,关于如何安全进行密钥管理?

2K50

系统讲解 - PHP 接口签名验证

概览 工作中,我们时刻都会和接口打交道,有的是调取他人接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。...在设计签名验证时候,一定要满足以下几点: 可变性:每次签名必须是不一样。 时效性:每次请求时效性,过期作废。 唯一性:每次签名是唯一。 完整性:能够对传入数据进行验证,防止篡改。...在 PHP7.2 版本中已经被弃用了,在新版本中使用 openssl_encrypt 和 openssl_decrypt 两个方法。...小结 本文讲了设计签名验证需要满足一些条件:可变性、时效性、唯一性、完整性。...分享了可以编写接口文档在线系统。 分享了开发过程中使用接口调试工具。 扩展中分析了 HTTP 和 RPC 区别,动态令牌介绍等。 还提出了一个问题,关于如何安全进行密钥管理?

1.9K31
  • 【微信小程序】后端支付签名验证失败原因之签名类型冲突

    支付签名验证失败原因之签名类型冲突 一系列前置条件我就不再多说了, 有需要可以加我QQ 7641436 首先,我一开始拿到是微信工具包, 进行一系列操作, 然后返回给前端,前端去做校验时候出现了...支付签名验证失败错, 后来经过很长~~~一段时间摸索,确认自己参数真的没有问题; 然而问题出在了 加密形式上!...如果不是在沙箱模式的话,微信支付sdk会默认是HMAC-SHA256类型加密,但是在调用二次生成签名时候,又是默认调用MD5加密 这就造成了,签名不一样,爆出支付签名验证失败 修改方法:...加密方式要进行检查,不要全部相信微信支付工具包! 如有任何问题,留言吧,人人为我,我为人人!

    1.4K20

    电子签名制作和使用方法_如何使用电子签名

    电子签名制作和使用 一、在Word文档中插入手写签名生成电子签名 1、准备好签名图片。...2、用Word打开需要签名文件,点菜单中“插入>插图>图片”来选择已经写好签名图片,插入后可以调整图片大小。 3、点击菜单“格式>颜色>黑白”。...相关链接 一、在Word文档中插入手写签名生成电子签名 1、准备好签名图片。 2、用Word打开需要签名文件,点菜单中“插入>插图>图片”来选择已经写好签名图片,插入后可以调整图片大小。...相关链接 https://www.zhihu.com/question/25366312 这个链接中有使用mac、word、PDF、Photoshop等方法制作电子签名方法。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.6K30

    PHP如何通过编程在服务端验证以太坊签名

    利用开源项目(如ethereumjs-util)来签署任意数据消息是相当容易。然而,不容易是告诉服务器有人已经成功地验证了某帐号所有权。 当然这也不是绝对正确,你也可以很容易做到这一点。...在服务器上,我们使用提交公钥来验证提交签名是由具有相应私钥信息的人创建。这里要明确指出,我们不知道你私钥,但椭圆曲线加密允许我们通过简单地使用公钥来验证签名是否是使用它创建。...这意味着要实际验证签名,检查返回地址是否等于相应私钥应该已经签署哈希那个地址。 我们希望在服务器上有相同功能。...在花了大量时间来了解我正在做事情之后,我终于成功地实现了我想要达到目标——我已经成功地验证了以太坊客户端中创建签名是来自我一个特定私钥。...当我第一次爬进这个rabbit hole时候,我会继续实施我所想到功能。 注意事项。2018年又我写了第二篇文章,详细介绍了我如何验证PHP先前签署消息有效性。

    2.1K20

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

    一个正在进行ZLoader恶意软件活动已被发现,该活动利用远程监控工具和一个与微软数字签名验证相关 9 年漏洞来窃取用户凭据和敏感信息。...“然后恶意软件利用微软数字签名验证方法将其有效载荷注入到签名系统 DLL 中,以进一步逃避系统防御。”...核心是银行木马,ZLoader已经采用许多攻击者窃取cookie,密码和其他私人信息,从受害者机器,更不用提了充当用于分配框架获得恶名孔蒂勒索,根据咨询发布由美国网络安全和基础设施安全局 (CISA...这里突出是 appContast.dll 不仅由 Microsoft 使用有效签名进行签名,而且该文件最初是一个应用程序解析器模块(“AppResolver.dll”),已被调整并注入恶意脚本以加载最后阶段恶意软件...可执行文件Windows Authenticode 签名验证

    70720

    如何使用ADB命令查看apk签名

    在使用第三方sdk时经常要求绑定签名,这里提供两种查看签名方式,如果只是想查看一下手机上应用签名,那么可以安装一个app直接输入包名即可查看该应用签名,提供一个微信签名查看apk,下载连接http...查看apk签名 方法一: 首先用解压软件解压出META-INF目录下CERT.RSA文件 keytool -printcert -file D:\Desktop\CERT.RSA 命令执行如图所示:...方法二: 查看keystore签名 命令:keytool -list -keystore D:\Desktop\app_key 命令执行如图: ?...adb shell dumpsys package:列出所有的安装应用信息 dumpsys package com.android.XXX:查看某个包具体信息 -------------------...包名] [需打成jar包class文件] 例如:jar cvf xxx.jar com //最后com表示需打成jar包class所在文件目录, //不写com直接在后面列出aa.class bb.class

    8.1K20

    【每日随笔】电子签名 ( 下载 “e 签保“ 应用 | 使用 手机号 + 短信验证码 登录 | 发起签署 | 签名 | 获取签名 PDF 文件及出证信息 )

    文章目录 一、下载 "e 签保" 应用 二、使用 手机号 + 短信验证码 登录 三、发起签署 四、签名 五、获取签名 PDF 文件及出证信息 一、下载 “e 签保” 应用 ---- 由于疫情原因 ,...、使用 手机号 + 短信验证码 登录 ---- 进入后 , 选择 " 短信登录 " , 输入 手机号 + 验证码 , 登录应用 ; 三、发起签署 ---- 进入后 , 点击 " 发起签署 " 按钮..." 合同管理 " , 然后选择 " 待我操作 " 选项 , 选择要 签署文件 , 点击进入 ; 选择 " 签名 " 选项 , 即可开始签名 , 签上名字 , 这里随便签一个 , 作为示例...; 签名可以在整个文档上 , 任意拖动 ; 点击 " 提交按钮 " 后 , 签名就完成了 ; 五、获取签名 PDF 文件及出证信息 ---- 双方签名完成后 , 可以在 “e签保” 官网 ,...已完成合同 中 , 查看签名完成合同 , 此时可以下载签名完成 PDF 文件 , 出证 需要 20 块钱 , 主要是证明该文件法律效力相关凭证 , 估计是 公钥 私钥 加密 , 还有文件完整性验证相关信息

    1K20

    .Net,Dll扫盲篇,如何在VS中调试已经编译好dll

    什么是DllDLL 是一个包含可由多个程序同时使用代码和数据库。 例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关常见函数。...因此,每个程序都可以使用该Dll中包含功能来实现“打开”对话框。这有助于促进代码重用和内存有效使用。 通过使用 DLL,程序可以实现模块化,由相对独立组件组成。...因为模块是彼此独立,所以程序加载速度更快,而且模块只在相应功能被请求时才加载,而更新的话,就只需替换掉当前DLL就行了. 如何制作Dll?...在以.net开发为例,在当前编译环境下,只需要对当前想要制作成dll项目右键重新生成下,然后在该项目对应文件夹下面找到debug文件夹,里面就会有一个与当前项目名称一样后缀为dll文件。...Dll怎么用? 首先先在项目中引用该dll,然后在用到dll地方using一下,即可调用其中类与方法。因为是dll,所以你F12进去一般都是这样: ?

    4K20

    【iOS开发】带有 Extension Target App,如何签名打包

    添加完了之后,你项目看起来是这个样子: Xcode ScreenShot 那么就会有两个 Target,这个时候,怎么进行 CodeSign,折磨了我一段时间,分享出来。...1.把你两个 TARGET Bundle Identifier 写成【开头一样】。...在 Member Center 申请发布到 AppStore Provisioning Profile 时候,只要申请一份就可以了,�即给和你 App 同名那个申请。...(假如你App名字是 wechat,主 Target Bundle ID 写成 com.xky.wechat, Extension Target Bundle ID 写成 com.xky.wechat.ex..., 那么你 Provisioning Profile 只要和 com.xky.wechat 捆绑; "com.xky.wechat.ex" 除了要写在相应 Target 上,不需要再有与其相匹配

    2.3K10

    滥用具备RWX-S权限且有签名dll进行无感知shellcode注入

    本文核心是讲解怎么利用具备 RWX-S 权限且自身有签名DLL进行一种比较隐蔽shellcode注入, 并讲解具体代码实现以及在写代码实现过程中遇到坑。...找到一个有签名并且具备 RWX-S 权限dll。(不具备RWX-S权限也可以,可以patch系统内签名dll,但是这样会破坏签名,不够隐蔽) 2....内存里虽然已经没有了 KbdEditDllPremium.dll 模块,但是却依然不影响我们session交互,因为此时恶意代码运行在 explorer.exe 申请堆空间上。...最后扩展一句:如果无法找到一个已经签名RWX-S权限dll,我们甚至可以修改系统dll添加S权限,然后保存到临时目录,注入完成之后删除掉。...为了避免安全风险,代码以及有RWX-S权限签名DLL就不发源文件了

    88520

    以太坊: ETH 发送交易 sendRawTransaction 方法数据签名验证过程

    以太坊公链 做 DApp 开发,虽然对其各 API 调用都已经很了解了,但是源码部分一直还没深入去看过。...本文主要简谈 sendRawTransaction 是如何保证我们交易安全。...而 sendRawTransaction 用到就是 secp256k1 RLP 序列化 RLP (递归长度前缀)提供了一种适用于任意二进制数据数组编码,RLP已经成为以太坊中对对象进行序列化主要编码方式...签名后,数据将会被发送到 ETH 节点。 2. 数据验证 对应到以太坊 sendRawTransaction RPC 接口。...再通过公钥,签名,消息哈希值计算出一个叫 r 值,这个 r 是签名一部分,校验签名就是拿计算出来 r 和签名中携带 r 经行对比,如果一致就校验通过 if C.secp256k1_ext_ecdsa_recover

    2.1K20

    安全研究 | 使用ScareCrow框架实现EDR绕过

    尽管这是一个系统DLL,但由于它加载到我们进程(由我们控制)中,因此我们可以更改内存权限,而无需提升权限。...代码样例 在加载器创建过程中,ScareCrow会使用到一个代码库,这个库会做两件事情: 代码对加载器进行签名:使用代码签名证书签名文件通常受到较少审查,这样就更容易执行而不会受到质疑,因为使用受信任名称签名文件通常比其他文件更不可疑...大多数反恶意软件产品没有时间去验证这些证书。ScareCrow通过使用Go版本工具limelighter来创建一个pfx12文件来创建这些证书。...这个包可以使用用户指定输入域名来为该域创建代码签名证书。如果需要,还可以通过有效命令行选项来使用自己代码签名证书。...github.com/fatih/color go get github.com/yeka/zip go get github.com/josephspurrier/goversioninfo 确保下列组件已经在你操作系统上安装好了

    96820

    如何使用SigFlip篡改身份认证码签名PE文件

    关于SigFlip SigFlip是一款能够篡改经过身份认证码签名PE文件(exe、dll、sys等)工具,而且整个过程不会影响或破坏已有的身份认证码签名。...换句话来说,就是我们可以使用SigFlip向PE文件中嵌入数据(比如Shellcode),并且再不会破坏文件签名、完整性检查或PE文件功能情况下,修改PE文件校验和或哈希。...SigInject将保存针对PE文件修改操作,并保证其签名和证书有效性不变。...SigFlip:在不破坏签名或证书有效性情况下,修改PE文件哈希: SigFlip "" "" SigInject:向PE文件[WIN_CERTIFICATE]证书表中注入加密Shellcode,打印加密密钥可以跟基础C/C#加载器结合使用以保证签名和证书完整性: SigInject

    1K40

    JAVA版微信小程序用户数据签名验证和加解密

    签名验证和加解密 数据签名校验 为了确保 开放接口 返回用户数据安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据完整性。...签名校验算法涉及用户session_key,通过 wx.login 登录流程获取用户session_key,并自行维护与应用自身登录态对应关系。...服务器利用用户对应 session_key 使用相同算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据完整性。...微信官方提供了多种编程语言示例代码(点击下载),但就是没提供JAVA版本,可能的确PHP是最好语言,腾讯提供demo好多都是PHP版本。...,并且获取解密后明文

    2.1K20

    JAVA版微信小程序用户数据签名验证和加解密

    签名验证和加解密 数据签名校验 为了确保 开放接口 返回用户数据安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据完整性。...签名校验算法涉及用户session_key,通过 wx.login 登录流程获取用户session_key,并自行维护与应用自身登录态对应关系。...服务器利用用户对应 session_key 使用相同算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据完整性。...微信官方提供了多种编程语言示例代码(点击下载),但就是没提供JAVA版本,可能的确PHP是最好语言,腾讯提供demo好多都是PHP版本。...,并且获取解密后明文

    1.7K60

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

    我们知道验证哈希是允许你查找目录文件,你也可以双击一个目录文件查看其条目,我还写了catalogtools PowerShell模块解析目录文件。...数字签名二进制格式 现在你已经知道了一个PE文件被签名方法(验证和目录),知道一些签名二进制格式是非常有用,无论是验证签名还是目录签名,这两个签名都是存储为PKCS #7签名数据,这种数据是ASN...嵌入到PE中验证签名检索 验证签名签名数据是被植入到PE文件末尾,操作系统也需要更多信息以便于可以得到精确便宜,我们可以见一下kernel32.dll在我最喜欢PE编辑工具情况吧。...数字签名应用到无签名PE中 现在你已经对数字签名二进制格式和存储位置有了基本概念,你可以开始将现有签名应用到未签名代码中。...应用被植入验证签名 将一个被植入验证签名从一个签名文件应用到无签名文件中是非常简单,因为这个过程很明显是可以自动化,接下来我将介绍如何使用hex editor 和CFF Explorer工具来进行操作

    2.6K20

    签名证书:带CA与不带CA区别及如何选择

    2.2 可信度和管理 带CA签名证书可以为多个证书提供统一签名和管理环境,使得在较大组织或系统中,证书管理和验证更为集中和统一。...不带CA签名证书通常适用于简单、小规模环境,或者测试和开发阶段,它们缺乏集中管理和验证能力。...2.3 扩展性和应用场景 带CA签名证书具有较好扩展性,适用于需要多个证书,并且需要统一管理和验证场景。 不带CA签名证书适用于单一、简单应用场景,如个人网站或测试环境。...三、如何选择 选择带CA还是不带CA签名证书,主要取决于我们具体需求和应用场景。...规模和复杂度:如果环境有多个服务器和服务,或者希望能够集中管理和验证证书,那么创建自己CA,并使用带CA签名证书可能是一个更好选择。

    2.2K40

    ssl证书与代码签名区别 网络系统安全防护加密验证方式

    因此通常针对网站或软件都会有专门证书或数据签名等方式来提升安全防护,那么有哪些方式可以实现防护呢,ssl证书与代码签名都是其中之一,但是两类分别是不同防护类型,ssl证书与代码签名区别是什么呢,主要是保护类型区别...而代码签名则针对是代码加密,也有软件是采用是代码签名。...网络系统安全防护加密验证方式 加密形式是采用签署代码或者是验证加密方式,网站和软件运行类型不同,所以采用加密形式也有区别,这也是ssl证书与代码签名区别。...SSL证书相对而言在成本更低一些,执行代码签名形式可防护在线安全,比如APK,数字签名,脚本插件等,都可以实行代码签名签名也具有唯一性,不用担心会被其他签名形式所验证修改。...以上就是关于ssl证书与代码签名区别的相关介绍,安装了证书或代码签名之后,进行操作就需要进行验证,这样方式可以避免软件或代码被随意篡改。

    59040
    领券