如何检查是否已启用安全cookie编译DLL或可执行文件?

时间:2015-07-13 14:06:25

标签: c# security

我试图找出一种方法来检查特定的DLL / EXE文件是否启用了安全性cookie。我可能会说我没有源代码,而且我不是那个编译它的人。我只有编译过的DLL和可执行文件。

我知道有一种方法可以通过反汇编文件并在调用函数之前检查cookie是否被推送到堆栈来实现它,并且还在从函数返回之前检查该cookie是否已经进行了验证。但是,这种方法非常不方便而且很混乱。

有没有人知道检查它的替代方法?

注意:代码是用C#/ .NET编写的,而我运行的是Windows 7 64位。

1 个答案:

答案 0 :(得分:2)

您可以保证您的C#代码不是用ComboBox编写的,因为C#不支持/GS,这是C ++编译器的一个特性,C#编译器没有该选项。

如果在C#中使用fixed语句,则有责任检查缓冲区溢出。托管代码不会让你有缓冲区溢出。

所以我猜你可以说所有“安全”代码的行为与启用/GS的行为类似,“unsafe”代码块中使用的所有指针的行为都与未启用的行为相同。

查找程序是否使用编译器标志/unsafe进行编译是一个不同的主题,我建议为此提出一个新问题。