Hacking a native application is much harder than hacking in Java. If you look at the trends in hacking/botting with other mmos that are written for native environments (aka a c++/c client), there are two general ways of mimicking user input.
1. Memory editing
2. Packet injection
The first one involves editing the current run time environment (actual values in memory) so the program behaves thinking that it has different input. Funnily enough, not only are the current values a program is using loaded in memory, but the actual machine instructions as well. This means that you can dynamically edit functionality of the program at runtime. For example, maybe you replace the store instruction of the portion of code that alters HP to a no-op, thus your HP is never changed. A good program to play around with this is
cheat engine. The problem with this is that most mmos have something along the lines of
nProtect gameguard that watches for memory edits.
The second one involves manually altering network traffic to make the game send faulty instructions the to the server. For example, when you click a rock, the actual click is not sent the server, just the command "action=mine, object id=0x451". By spoofing these commands, you could effectively play the game without ever loading the actual game (This would be REALLY hard to implement in practice, but it is possible). Almost every MappleStory hack involve packet injection if you are looking for real examples of this, in fact some of the very first runescape botting clients used packet injection. This is no longer done because Jagex implemented encryption on their packets and it was simply easier to exploit Java vulnerabilities instead of working to decrypt the packets.
People keep saying that Arbi and Cloud have a way to handle this, but no matter how much prep they do, once the actual native client is released, it will still take them months to crack because they won't know about any exploits until they get their hands on a actual binary.