Delphi应用程序和TSAWARE标头标志 [英] Delphi applications and the TSAWARE header flag

查看:134
本文介绍了Delphi应用程序和TSAWARE标头标志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此问题是否也适用于在终端服务器上运行的Delphi应用程序?

Could this problem also apply to Delphi applications running on Terminal Servers?

作为MSDN文章" Office 2007或在RD会话主机服务器上运行的Office 2003应用程序可能会在Windows Server 2008 R2中意外关闭"

As the MSDN article "An Office 2007 or Office 2003 application that is running on an RD Session Host server may close unexpectedly in Windows Server 2008 R2" explains

由于Tsappcmd.dll组件而出现此问题.这 组件对以下项的导入地址表"(IAT)进行了更改 不支持终端服务器的应用程序,以防止 病毒或恶意软件恶意地钩住了应用程序.因为 为此,应用程序可能会遇到临时内存损坏 由于模块的加载顺序. Office 2007和 Office 2003不包含TSAWARE标头标志.该标志通知 该应用程序支持终端服务器的服务器.

This issue occurs because of the Tsappcmd.dll component. This component makes changes to the Import Address Table (IAT) for applications that are not Terminal Server aware in order to prevent viruses or malware from maliciously hooking the application. Because of this, the application may experience temporary memory corruption because of the order in which the modules are loaded. Office 2007 and Office 2003 do not contain the TSAWARE header flag. This flag notifies the server that the application is Terminal Server aware.

用户环境(Windows Server 2008 R2 Service Pack 1)中的某些Delphi 2009应用程序经常挂起或崩溃.我正在寻找可能的原因,因为这些挂起/崩溃无法复制.

Some Delphi 2009 applications in a user environment (Windows Server 2008 R2 Service Pack 1) frequently hang or crash. I am looking for possible reasons, as these hangs / crashes can not be reproduced.

MSDN文章似乎首先适用于Office产品,这是正确的还是-注意,这是基本问题-Tsappcmd.dll是否也修改了非Office程序,因此可能出现以下错误: Delphi应用程序? (当然,如果缺少的TSAWARE标志无害,我宁愿保持Delphi应用程序不变.

The MSDN article seems to apply to Office products first, is this correct or - attention, here is the basic question - does Tsappcmd.dll also modify non-Office programs so the error can occur with Delphi apps? (Of course I would prefer to leave the Delphi applications untouched if the missing TSAWARE flag is not harmful).

推荐答案

是的,Tsappcmd.dll将影响PE头中没有TSAWARE标志的所有程序.但是,这并不自动意味着所有这些应用程序都受到此特定bug的影响.但是,您可以通过设置TSAWARE标志(请参阅TOndrej提供给我的博客的链接)或设置知识库文章中提到的注册表项来轻松地进行测试.

Yes Tsappcmd.dll will affect any and all programs that do not have the TSAWARE flag in the PE header. This does NOT automatically mean however that all those apps are affected by this particular bug. But you can easily test this by setting the TSAWARE flag (see the link that TOndrej provided to my blog) or by setting the registry key that is mentioned in the KB article.

PS:关于防止病毒入侵的解释似乎是虚假的解释,这种机制是出于应用兼容的原因而引入的...

PS: the explanation that it's a protection against viruses seems like a bogus explanation, this mechanism was introduced for app compat reasons...

这篇关于Delphi应用程序和TSAWARE标头标志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆