我可以通过仅分析exe文件来检测在delphi应用程序中使用过的Wheather madexcept吗?
是否可以通过在我的应用程序中添加几行代码并通知最终的exe文件用户(如果未使用madshi madexcept)来实现一种简单的方法?
最佳答案
如果将madexcept
与Delphi应用程序一起使用,则应在该可执行文件中有一个资源条目:MAD->EXCEPT
。
要测试外部应用程序:
var
h: HMODULE;
h := LoadLibraryEx('c:\foo\bar.exe', 0, LOAD_LIBRARY_AS_DATAFILE);
if h <> 0 then
begin
if FindResource(h, 'EXCEPT', 'MAD') <> 0 then
ShowMessage('madexcept Found!');
FreeLibrary(h);
end;
要在自己的应用程序中进行测试:
if FindResource(HInstance, 'EXCEPT', 'MAD') <> 0 then
ShowMessage('madexcept Found!');
请注意,这不会告诉您
madexcept
使用什么选项。例如,可能有一个异常过滤器设置为过滤访问冲突异常,或者可能不检查冻结线程的设置等等。