我正在使用 Delphi 7 IDE。Delphi 编译器是否优化代码,就像 C++ 编译器在以下链接中所做的那样?
http://msdn.microsoft.com/en-us/library/aa366877(VS.85).aspx
WCHAR szPassword[MAX_PATH];
// Retrieve the password
if (GetPasswordFromUser(szPassword, MAX_PATH))
UsePassword(szPassword);
// Clear the password from memory
SecureZeroMemory(szPassword, sizeof(szPassword));
如果ZeroMemory
在此示例中调用而不是SecureZeroMemory
,编译器可以优化调用,因为szPassword
缓冲区在超出范围之前不会被读取。密码将保留在应用程序堆栈中,在那里它可以在故障转储中捕获或被恶意应用程序探测。