C++ 如何为控制台应用程序获取数字签名?

C++ 如何为控制台应用程序获取数字签名?,c++,certificate,digital-signature,code-signing,C++,Certificate,Digital Signature,Code Signing,我制作了一个简单的控制台应用程序,可以在系统提示中播放马里奥主题曲。我正在运行Windows 7,当程序运行时,它会发出警告“未验证发布者”。这种情况在Windows8上也会发生,它说“Windows智能屏幕阻止了无法识别的应用程序启动”。如何获取数字签名并将其链接到控制台应用程序,以停止此错误 源代码: #include <Windows.h> int main() { Beep (330,100);Sleep(100); Beep (330,100);Sleep

我制作了一个简单的控制台应用程序,可以在系统提示中播放马里奥主题曲。我正在运行Windows 7,当程序运行时,它会发出警告“未验证发布者”。这种情况在Windows8上也会发生,它说“Windows智能屏幕阻止了无法识别的应用程序启动”。如何获取数字签名并将其链接到控制台应用程序,以停止此错误

源代码:

#include <Windows.h>

int main()
{
    Beep (330,100);Sleep(100);
    Beep (330,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (330,100);Sleep(300);
    Beep (392,100);Sleep(700);
    Beep (196,100);Sleep(700);
    Beep (262,300);Sleep(300);
    Beep (196,300);Sleep(300);
    Beep (164,300);Sleep(300);
    Beep (220,300);Sleep(100);
    Beep (246,100);Sleep(300);
    Beep (233,200);
    Beep (220,100);Sleep(300);
    Beep (196,100);Sleep(150);
    Beep (330,100);Sleep(150);
    Beep (392,100);Sleep(150);
    Beep (440,100);Sleep(300);
    Beep (349,100);Sleep(100);
    Beep (392,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(100);
    Beep (247,100);Sleep(500);
    Beep (262,300);Sleep(300);
    Beep (196,300);Sleep(300);
    Beep (164,300);Sleep(300);
    Beep (220,300);Sleep(100);
    Beep (246,100);Sleep(300);
    Beep (233,200);
    Beep (220,100);Sleep(300);
    Beep (196,100);Sleep(150);
    Beep (330,100);Sleep(150);
    Beep (392,100);Sleep(150);
    Beep (440,100);Sleep(300);
    Beep (349,100);Sleep(100);
    Beep (392,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(100);
    Beep (247,100);Sleep(900);
    Beep (392,100);Sleep(100);
    Beep (370,100);Sleep(100);
    Beep (349,100);Sleep(100);
    Beep (311,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (207,100);Sleep(100);
    Beep (220,100);Sleep(100);
    Beep (262,100);Sleep(300);
    Beep (220,100);Sleep(100);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(500);
    Beep (392,100);Sleep(100);
    Beep (370,100);Sleep(100);
    Beep (349,100);Sleep(100);
    Beep (311,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (523,100);Sleep(300);
    Beep (523,100);Sleep(100);
    Beep (523,100);Sleep(1100);
    Beep (392,100);Sleep(100);
    Beep (370,100);Sleep(100);
    Beep (349,100);Sleep(100);
    Beep (311,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (207,100);Sleep(100);
    Beep (220,100);Sleep(100);
    Beep (262,100);Sleep(300);
    Beep (220,100);Sleep(100);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(500);
    Beep (311,300);Sleep(300);
    Beep (296,300);Sleep(300);
    Beep (262,300);Sleep(1300);
    Beep (262,100);Sleep(100);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(300);
    Beep (330,200);Sleep(50);
    Beep (262,200);Sleep(50);
    Beep (220,200);Sleep(50);
    Beep (196,100);Sleep(700);
    Beep (262,100);Sleep(100);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(100);
    Beep (330,100);Sleep(700);
    Beep (440,100);Sleep(300);
    Beep (392,100);Sleep(500);
    Beep (262,100);Sleep(100);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (294,100);Sleep(300);
    Beep (330,200);Sleep(50);
    Beep (262,200);Sleep(50);
    Beep (220,200);Sleep(50);
    Beep (196,100);Sleep(700);

    // Intro
    Beep (330,100);Sleep(100);
    Beep (330,100);Sleep(300);
    Beep (330,100);Sleep(300);
    Beep (262,100);Sleep(100);
    Beep (330,100);Sleep(300);
    Beep (392,100);Sleep(700);
    Beep (196,100);Sleep(700);
    Beep (196,100);Sleep(125);
    Beep (262,100);Sleep(125);
    Beep (330,100);Sleep(125);
    Beep (392,100);Sleep(125);
    Beep (523,100);Sleep(125);
    Beep (660,100);Sleep(125);
    Beep (784,100);Sleep(575);
    Beep (660,100);Sleep(575);
    Beep (207,100);Sleep(125);
    Beep (262,100);Sleep(125);
    Beep (311,100);Sleep(125);
    Beep (415,100);Sleep(125);
    Beep (523,100);Sleep(125);
    Beep (622,100);Sleep(125);
    Beep (830,100);Sleep(575);
    Beep (622,100);Sleep(575);
    Beep (233,100);Sleep(125);
    Beep (294,100);Sleep(125);
    Beep (349,100);Sleep(125);
    Beep (466,100);Sleep(125);
    Beep (587,100);Sleep(125);
    Beep (698,100);Sleep(125);
    Beep (932,100);Sleep(575);
    Beep (932,100);Sleep(125);
    Beep (932,100);Sleep(125);
    Beep (932,100);Sleep(125);
    Beep (1046,675);

    system("pause");
    return 0;
}
#包括
int main()
{
嘟嘟声(330100);睡眠(100);
嘟嘟声(330100);睡眠(300);
嘟嘟声(330100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(330100);睡眠(300);
嘟嘟声(392100);睡眠(700);
蜂鸣音(196100);睡眠(700);
哔哔声(262300);睡眠(300);
哔哔声(196300);睡眠(300);
哔哔声(164300);睡眠(300);
嘟嘟声(220300);睡眠(100);
嘟嘟声(246100);睡眠(300);
哔哔声(233200);
嘟嘟声(220100);睡眠(300);
蜂鸣器(196100);睡眠(150);
嘟嘟声(330100);睡眠(150);
嘟嘟声(392100);睡眠(150);
嘟嘟声(440100);睡眠(300);
嘟嘟声(349100);睡眠(100);
嘟嘟声(392100);睡眠(300);
嘟嘟声(330100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(100);
哔哔声(247100);睡眠(500);
哔哔声(262300);睡眠(300);
哔哔声(196300);睡眠(300);
哔哔声(164300);睡眠(300);
嘟嘟声(220300);睡眠(100);
嘟嘟声(246100);睡眠(300);
哔哔声(233200);
嘟嘟声(220100);睡眠(300);
蜂鸣器(196100);睡眠(150);
嘟嘟声(330100);睡眠(150);
嘟嘟声(392100);睡眠(150);
嘟嘟声(440100);睡眠(300);
嘟嘟声(349100);睡眠(100);
嘟嘟声(392100);睡眠(300);
嘟嘟声(330100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(100);
哔哔声(247100);睡眠(900);
嘟嘟声(392100);睡眠(100);
嘟嘟声(370100);睡眠(100);
嘟嘟声(349100);睡眠(100);
嘟嘟声(311100);睡眠(300);
嘟嘟声(330100);睡眠(300);
嘟嘟声(207100);睡眠(100);
嘟嘟声(220100);睡眠(100);
哔哔声(262100);睡眠(300);
嘟嘟声(220100);睡眠(100);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(500);
嘟嘟声(392100);睡眠(100);
嘟嘟声(370100);睡眠(100);
嘟嘟声(349100);睡眠(100);
嘟嘟声(311100);睡眠(300);
嘟嘟声(330100);睡眠(300);
嘟嘟声(523100);睡眠(300);
嘟嘟声(523100);睡眠(100);
嘟嘟声(523100);睡眠(1100);
嘟嘟声(392100);睡眠(100);
嘟嘟声(370100);睡眠(100);
嘟嘟声(349100);睡眠(100);
嘟嘟声(311100);睡眠(300);
嘟嘟声(330100);睡眠(300);
嘟嘟声(207100);睡眠(100);
嘟嘟声(220100);睡眠(100);
哔哔声(262100);睡眠(300);
嘟嘟声(220100);睡眠(100);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(500);
嘟嘟声(311300);睡眠(300);
嘟嘟声(296300);睡眠(300);
哔哔声(262300);睡眠(1300);
哔哔声(262100);睡眠(100);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(300);
嘟嘟声(330200);睡眠(50);
哔哔声(262200);睡眠(50);
嘟嘟声(220200);睡眠(50);
蜂鸣音(196100);睡眠(700);
哔哔声(262100);睡眠(100);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(100);
嘟嘟声(330100);睡眠(700);
嘟嘟声(440100);睡眠(300);
嘟嘟声(392100);睡眠(500);
哔哔声(262100);睡眠(100);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(294100);睡眠(300);
嘟嘟声(330200);睡眠(50);
哔哔声(262200);睡眠(50);
嘟嘟声(220200);睡眠(50);
蜂鸣音(196100);睡眠(700);
//介绍
嘟嘟声(330100);睡眠(100);
嘟嘟声(330100);睡眠(300);
嘟嘟声(330100);睡眠(300);
哔哔声(262100);睡眠(100);
嘟嘟声(330100);睡眠(300);
嘟嘟声(392100);睡眠(700);
蜂鸣音(196100);睡眠(700);
蜂鸣音(196100);睡眠(125);
哔哔声(262100);睡眠(125);
嘟嘟声(330100);睡眠(125);
嘟嘟声(392100);睡眠(125);
嘟嘟声(523100);睡眠声(125);
嘟嘟声(660100);睡眠(125);
嘟嘟声(784100);睡眠声(575);
嘟嘟声(660100);睡眠(575);
嘟嘟声(207100);睡眠(125);
哔哔声(262100);睡眠(125);
嘟嘟声(311100);睡眠(125);
哔哔声(415100);睡眠(125);
嘟嘟声(523100);睡眠声(125);
嘟嘟声(622100);睡眠(125);
嘟嘟声(830100);睡眠声(575);
嘟嘟声(622100);睡眠声(575);
哔哔声(233100);睡眠(125);
嘟嘟声(294100);睡眠(125);
哔哔声(349100);睡眠(125);
嘟嘟声(466100);睡眠(125);
嘟嘟声(587100);睡眠(125);
嘟嘟声(698100);睡眠(125);
嘟嘟声(932100);睡眠声(575);
哔哔声(932100);睡眠(125);
哔哔声(932100);睡眠(125);
哔哔声(932100);睡眠(125);
哔哔声(1046675);
系统(“暂停”);
返回0;
}
如果需要测试应用程序,可在以下位置找到:


病毒扫描(适用于所有电脑疑病患者):

您需要使用codesign证书对应用程序进行签名。看一看(来自Hanselman),它解释了如何做。这并不完全适用于控制台应用程序,但原则是相同的(使用codesign签名并添加时间戳)

在大多数情况下,您需要购买codesign证书,但是有CA(即,如果您是开源开发人员),您可以免费获得它。其中之一是Cetrum CA(我目前正在使用)。看一看。获得证书的过程是一种折磨,但证书本身是可以的。(它不适用于所有浏览器-使用FF,需要在每个页面上进行单点登录,邮件使用波兰语。)

可以免费获得时间戳(即从Hanselmans博客中的链接或您可以找到免费的RFC 3161兼容时间戳授权列表)