English 中文(简体)
如何探测烟火点是否是成像或自动化?
原标题:How to detect if mouse click is legit or automated?
  • 时间:2011-02-23 13:52:31
  •  标签:
  • c++
  • vb.net

如何知道 mo点是否模拟? 当 mo点用方案或实际使用装置发送时

... I m programming a system detection for a game to avoid bots, autoclicks,etc that only accept legit mouse clicks

问题回答

This depends a bit on the kind of application you are writing, but if you can, I would watch the cursor movement, not the clicks. Human mouse movement has non-uniform speeds, reaction times, imprecisions (clicks on different coordinates of your buttons, etc...).

而且,你可以任意要求进行难以描述的交流,以此来保护一种对付机器人。 例如: 如果文字取决于各纽州始终处于同样地位,我会确信,在试图保持直观的同时,方言应每时以稍有不同的立场散布。

否则: 没有办法可以发现,如果改用是真实的,还是真正模拟的。 Windows HID/MacOS/HCH驱动力层从中删除了Mice、RigPens、TrBalls、打字板、触摸屏......和当然是文字-冰......之间的区别。

Although the blog post itself is about a different issue, I refer you to Raymond Chen s excellent Old New Thing. In this specific blog post he talks about the validity of message parameters going into an application, but also makes the point that:

没有任何观点讨论信息发送者正在玩弄trick和lying给你的可能性,因为(1) 贵方案应当只与 r相提并回应伪信,如真的 men,因为(2) 没有任何办法告诉你,你会重新 lie。 为了发现胎面,你必须能够读到发送电文的节目主持人的头脑。

基本的论点是,无论点击的产生方式如何,你都应对点火点作回应。

您可以检查模拟活动旗帜LLLMHF_INJECTED和LMHF_LOWER_IL_INJECTED 或利用投入网,监测模拟投入数据,如果正式数据显示投入已注入。

https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-msllhookstruct https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexa

http://en.wikipedia.org/wiki/Mouse_keys”rel=“nofollow” 模拟的变体投入或成章? 模拟变体投入的用意是使它们看上去完全像真正的变式投入。 <>如果模拟工作正在进行,那么你的工作是不可能的。 Sorry, that s the blessing & curse ofchemical for You. 这里有一些更不完美的想法:

  1. Use GetKeyboardState and verify that the button states are correct. If the message faker is using PostMessage, they will likely not be setting keyboard state and this would indicate fakery.
  2. If you are targeting known applications that are doing the input simulation, detect them and complain. This is not perfect at all for many reasons.
  3. Fuzzy logic, as many other people have suggested.

You need to be creative and figure out the difference between a simulated event and a real one to you, as there is no generalized answer.

无法做到这一点(可靠地(仅靠软件)

I ve used WIN32API calls to read pixels/manipulate the mouse/send keystrokes to automate large portions of video games and other repetitive tasks. You could write a lot of code to analyze the input, but equally smart developers are just going to modify their code to match.

当我首先试图将一颗烟火点自动化时,我就这样一遍。 Send a mouse Point。 大部分时间都是如此。 你们也许有跟踪潮湿运动和会火上 entire的整整整批 mo事件的代码,这只是实实实实事——我们对此视而不见,但丝毫没有阻止开发者也实施 mo变运动。

群众活动比主要压力更为复杂,但基本上是相同的。 如果你写成密码,监测主要压力之间的时间,确定我把你申请的2个钥匙分到EXACTLY 250ms之间的间隔,你可以决定I m为一把机器人。 但是,所有Ill的确正在修改我的代码,以在250ms+中随机分配到25至25米。

它是一种无休止的散乱和 mo游戏。 最好的解决办法是使非属地性质、如此简单的自动化形式适用。

问题在细节上微不足道。

Events can be sent directly to controls without moving the mouse so find out where the mouse is when you get the click event and see if it s on the control. Keyboard input requires control focus, so check that too.

在发生摩擦的情况下,如果发生摩擦,你就能够说到底发生了什么。 如果说明,也许你可以监测上级小组控制情况的改变行为,并利用这些事件和运动确定这种控制是否真实。 自动点击可能从任何地方出现,并造成不大的内over,重点事件。

只有在发送实际机械点击证据的摩擦本身上有一些专家硬件和软件才有可能。 不可能通过软件。

虽然在我的另一项答复中,我提到,你最好只是对点击作出回复,但根据“programmatic”点击的生成方式,有可能发挥作用。

I am assuming a Windows platform, due to the "vb.net" tag:

有了WinAPI,你就可以向任何窗口发出信息,以便模拟WM_LBUTTONDOWN活动。 在这份电文中,你将包含在纽斯塔文发布时使用的X和Y地点,或者在接收节目expects时。 当你处理电文时,可使用GetCursorPos,要求获得实际治疗者的地位。 确切地说,目前的立场是close to,在电文中,将其当作点击处理,否则就忽视了它。

然而,铭记电文的性质,它可能需要一些时间来处理该事件,而且该词在很短的时间内可以走很长的路。

只有当“浮标”产生于简单的Send/PostMessage时,这一解决办法才会奏效。 如果正在引发点击的申请书也模拟了烟雾的移动,那么你或许应当看到其他的答复:

我确信,有办法精确地确定 mo点是否是自动的。 我指的是,你可以写上你自己的美籍司机,他们坐在本地的花.驾驶员与职业顾问办公室之间,只用“再”点击你。 然而,即便如此,也可通过安装在编程上发送USB包装箱以接收计算机的USB装置(如一台智能电话)的行李打碎。

你们为实现这一目标做了哪些努力,要求你们区分真正的 mo点和ake点?

通过将过去的十项模拟活动记录在你的方案中,创造统计学习解决方案。 当用户点击控制时,根据最后十项行动确定这种可能性,这种行动确实点击。

利用真实的点击和多种自动化情景对你们的解决办法进行培训。

这显然不是一个保障工作的解决办法,而且比其他任何东西都更是幸运。

由于投入性宏观方案产生legit<>legit>/strong>,对你们的游戏使用和键盘输入信息,比你想象的要困难得多。 我认为,如果输入信息实际上是由有形硬件投入(如模拟或键盘)引发的,那么就没有办法加以核实,除非监督厅向您提供输入到更方便的水平。

由于这是一场游戏,你可以看到其他游戏如何处理这种情况。 一些共同方法是:

  1. http://www.ohchr.org。 (人类不能像方案那样迅速点击)

  2. At random points or when it doubts, use CAPTCHA to verify. (Read this: http://www.threadmeters.com/v-1Vvd/CAPTCHA_The_Obvious_AntiBot_Solution/ )

  3. 外使用监测工具,以检查机器运行的所有过程,发现已知用于计算目的的方案。 确实如此。 阀门 Blizzard s WoW也与Warden 相同。

我自己的建议是“。 利用你的游戏系统。 由于每个游戏都有自己的规则和游戏风格,因此很难发现参与者是否正在欺骗。 这种做法赢得了一种普遍的解决办法,但可以sil笑,但如果它为你们的游戏而努力,为什么不?

你可以采取两种办法解决这一问题。

  1. Make a new Button with a Text proving that the user isn t AFK and if the user doesn t press the button, kick him or her out. Generate the button in random locations.
  2. If the user isn t moving for a while, (for example, 10 mins) kick him or her out.




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?