应用程序如何被其他应用、操作系统及安全软件识别?
应用程序身份识别机制解析
安全软件与操作系统的应用识别手段
卡巴斯基这类安全软件,以及Windows、Linux等操作系统,识别应用时会结合多种方法,不会只靠单一维度:
- 数字签名校验:这是最核心的验证方式之一。正规发布的应用会由开发者用专属私钥给程序文件(比如Windows的EXE、MSI,Linux的软件包)做数字签名,系统或安全软件通过对应的公钥验证签名的合法性,既能确认发布者身份,也能确保文件没被篡改。像OneDrive、Telegram这类官方应用都有对应的官方签名,安全软件会把这些签名加入受限名单来实现拦截。
- 文件哈希匹配:计算程序文件的MD5、SHA-256等哈希值,和预先收集的受限应用哈希库比对。哪怕你改了文件名,只要文件内容没变,哈希值就不会变,照样会被识别出来。
- 特征码扫描:安全软件会提取程序里的独特代码片段(特征码),比如特定的函数逻辑、内置资源字符串,通过匹配这些特征来识别目标应用,这种方式能覆盖一些没有数字签名的软件。
- 路径与文件名辅助判断:这种方式优先级较低,部分场景会结合应用的默认安装路径(比如
C:\Program Files\Microsoft OneDrive\OneDrive.exe)和常见文件名来辅助识别,但很容易被绕过,比如修改文件名就能避开。
关于复制或修改签名的疑问
- 复制官方签名基本不可能:数字签名依赖非对称加密技术,开发者的私钥是严格保密的,没有私钥就无法生成和官方完全一致的合法签名。哪怕你拿到应用的源代码,没有发布者的私钥,也没法给编译后的程序签上官方的签名。
- 修改签名伪装成其他应用不可行:你可以给自己编译的程序签上自己的签名,但没法伪装成其他合法应用的签名。另外,如果修改了已有签名的文件内容,原签名会直接失效,系统和安全软件会检测到签名损坏,反而可能触发更严格的拦截。
内容的提问来源于stack exchange,提问作者AlirezaGH
相关产品推荐
相关产品推荐

