Delphi Anti Cheat(启用任何禁用按钮)

Bia*_*nca 6 delphi disabled-control

在我的应用程序中,有一些按钮因为某种原因而被禁用.但TNTEnforcer可以轻松启用这些按钮.

有没有简单的方法来防止这种情况?

尝试打包一些打包器/混淆器,但仍然可以启用.

什么是TNTEnforcer

Dav*_*nan 7

VCL控件由Win32控件支持,这些控件本质上是不安全的.您无法限制对其属性和状态的访问.外部程序可以轻松修改状态,按下按钮等.

您可能想要运行一个以高频率重置UI状态的计时器.这可能会使饼干更难一点.但是仍然不是特别难,你的程序和代码会花多少钱?

所以,在我看来,你不应该试图阻止外部程序干扰UI状态.相反,您可以向OnClick处理程序和UI后面的其他代码添加检查和防御.这也是完全可裂缝的,但它确实至少需要来自饼干的更多效果.

你可以写:

button.Enabled := False;
button.OnClick := nil;
Run Code Online (Sandbox Code Playgroud)

禁用按钮时.当你重新启用它时,你可以写:

button.Enabled := True;
button.OnClick := MyOnClickHandler;
Run Code Online (Sandbox Code Playgroud)

这是一种相当粗略的方式.最好是将检查链向下推入OnClick处理程序本身,或者甚至更好地进一步深入到业务逻辑中.这样,无论代码如何到达业务逻辑,如果它需要被阻止,它将是.

  • 你也应该稍微调整一下你的心态.按名称阻止一个可执行文件永远不会有用.用户可以重命名可执行文件.我认为你对防范黑客攻击可能达到的目标抱有不切实际的信念.你的心态应该是你的程序将被破解. (3认同)
  • 这根本不是我说的.如果你的`OnClick`处理程序什么都不做,那么按钮是否启用并不重要.您是否试图阻止用户单击按钮,或者阻止程序执行按钮后面的操作?我无法相信你非常关心纽扣.当然,你只关心按下按钮时会发生什么. (2认同)