加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

验证 – Windows DLL是否由Microsoft签名?我能否发现他们是否被

发布时间:2020-12-14 02:08:33 所属栏目:Windows 来源:网络整理
导读:我正在为我的软件实现锁定和复制保护系统.我已经关闭了每一个允许有人打破锁定的洞(嗯,这有点过于乐观,我知道!)但最后一件事就是这样: 我听说破解者可以像我使用的API一样改变像Kernel32.dll这样的Windows DLL,返回一个由破解者指定的值.我需要阻止这一点.
我正在为我的软件实现锁定和复制保护系统.我已经关闭了每一个允许有人打破锁定的洞(嗯,这有点过于乐观,我知道!)但最后一件事就是这样:

我听说破解者可以像我使用的API一样改变像Kernel32.dll这样的Windows DLL,返回一个由破解者指定的值.我需要阻止这一点.

起初我以为我可以为我使用的每个DLL创建一个哈希值,并根据客户端DLL的计算哈希检查该哈希,以查看该文件是否已更改.这不起作用,因为对于不同版本的Windows有许多不同版本的DLL,并且Microsoft提供的每个修补程序和Service Pack都可以更改该文件.

然后我意识到我可以检查文件的签名,以确保它具有有效的Microsoft签名.现在有两个问题:

> Microsoft是否签署了Windows DLL?我怎样才能找到关于此签名的一些信息?
>是否提供了用于验证签名的公钥?如何使用此密钥验证文件?

任何演练都非常感谢.我的应用程序是使用Visual Basic.NET编写的.

多谢你们.

解决方法

MS会签署一些系统二进制文件,具体取决于Windows和二进制文件的版本.例如,如果您在Windows XP上使用 check kernel32.dll:

C:Windowssystem32>sigcheck kernel32.dll
Sigcheck v1.5
Copyright (C) 2004-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

C:Windowssystem32kernel32.dll:

Verified: Signed
Signing date: 02:07 14/04/2008
Publisher: Microsoft Corporation
Description: Windows NT BASE API Client DLL
Product: Microsoft? Windows? Operating System
Version: 5.1.2600.3119
File version: 5.1.2600.3119 (xpsp_sp2_grd.070416-1301)

您还可以使用sigcheck来查找特定文件夹中的所有未签名二进制文件等内容,例如:

sigcheck -u -e c:windowssystem32

我相信你的第二个问题的答案是“不”,虽然MS确实使用root certificates进行某些验证.它不会在其Windows系统二进制文件中发布公钥,因为密钥对可以并且确实会发生变化.

但从根本上说,如果你不信任操作系统,那么无论如何你都是如此.

面对它,您的应用程序将被破解.我的建议是只花1%的努力来减缓破解过程,99%的努力是创造值得破解的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读