如何更改PE签名?

逆向工程 恶意软件 二元分析 聚乙烯
2021-06-20 10:29:34

我正在寻找一种将可执行​​文件识别为 NullSoft 安装程序的方法。我试图证明恶意软件能够更改 PE 签名,因此我们不能相信某些工具告诉我们 PE 是 NullSoft 安装程序,只是因为它找到了 NullSoft 签名。

任何帮助将不胜感激,推荐工具等......

编辑

在阅读了 Stolas 的回答后,我决定编辑问题并添加更多信息。

我已经尝试在原始 NullSoft 安装程序上使用十六进制编辑器,我搜索了NullSoft产生以下结果的字符串

使用 UltrEedit 搜索字符串“Nullsoft”的结果。

该字符串在 a 中找到XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Nullsoft.NSIS.exehead" type="win32"/>
    <description>
        Nullsoft Install System v2.46
    </description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
        </dependentAssembly>
    </dependency>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
        </application>
    </compatibility>
</assembly>

这些似乎是我想在我的“恶意”应用程序中插入的内容。那么,如何将其添加到我的应用程序中?

我的应用程序只是一个用 Visual C++ 编写的“Hello world”。

我知道我必须以与原版相同的偏移量来写这个,但我不知道如何。

1个回答

为此,您首先需要了解如何将程序识别为特定类型的软件。

这可以是代码中的特定导入、字符串或二进制字符串。当您意识到工具如何使这些签名变得狡猾并将签名放入您的“恶意”应用程序时。如果需要,请使用您的“签名”工具进行检查并进行调整。