Hello there guys, today I'm here to discuss some interesting points and show you how the hacks are usually made. So, shall we start?
Chapter I - The Beggining
1.0 - How this cheating thing started? And when?
Actually, the root of AQW hacking can be trace the the alpha days(circa 2008) of the game. While Artix Entartainment was still testing a lot of functions, there were many loopholes on the engine that made some of the following things possible:
>Wearing member items/entering on member maps without being a member;
>Killing monsters instantly;
>"Generating" Gold and XP out of thin air.
While these exploits were easy to do, they involved sending packets to the server by using the "WPE Pro" utility, and this proved to be kinda hard for most non-savvy computer users. It wasn't until the advent of the first aqw trainers that it all really started.
1.1 - the first trainers
The first "pure" AQW trainer was made by LolSalad and it was simply a game loader and a simple packet sender/grabber. As it was open-source, various different coders improved upon the original idea and soon there were various trainers with varying degrees of functionality. Some of the most known "packet trainers" as they are known by some are AQWacker(by Archmage2009), Hell Quest(by Isair) and AQWolf(made by DatapawWolf - more on this guy later!)
Unique(at the time) to the packet trainers was the hability to load and save packet sequences that became known as "autoers" - they are basically an ancient version of today's bots. One could do almost anything with it - varying to simple map bypasses, to automatically buying items and attack bots, and also on some newfound exploits - like the easter gold autoer - wich could transform any player into a millionaire in a few hours.
But with evolution comes some bugfixes on the way... In Early-mid 2010, AE announced they were implementing something called "the ban hammer", wich could detect if players were using autoers and ban them. This was enough to start a shitstorm among cheaters. While we never gotany confirmations if the ban hammer really worked, most people ceased using autoers out of fear. Being aware of this, AE just sat on their lazy asses instead trying to fix the game engine.[/INDENT]
With the packet trainers almost completely out of the game, Flash-based trainers rose to the top.
1.2 - The Flash trainers
The first Flash trainer was AQWSerious made by CrisNMP, and it contained a set of featuresthat no other trainer had at the time, like loading shops and quests without using packets, loading custom equipment into your character, changing its' walk speed ect.,mainly what became known some time later as 'client sided hacks'.
Shortly after the release of AQWSerious, Beyond Awesomeness released 'The New Trainer' - and ambitious project that succesfully fused the client sided hacks of AQWSerious with the usefulness of packet trainers. The apogee of Flash-based trainers was on mid-late 2010, with trainers such as Xelworlds(made by Xeleron), AQWNow(made by Xyo - the owner of EliteQuestWorlds), Cross Hell(made by Isair - cretor of Hellquest), and AQWUnlimited, an effort of varios well-known programmers. But in early 2011, something else took the AQW cheating scene by surprise...
1.3 - Flash-based bots(AKA 'Datapawwolf Era')
In 2011, Xyo released a new app called 'AQW Evolution', wich was probably the first AQW bot. It was very simple, included only a auto-attack bot, but it was enough to kickstart what is now known as 'the great bot rush' between creators. Many attempted, and most failed. But one particular guy - that went by the screen name 'Datapawwolf' - achieved huge sucess. Being already known in the scene for releaseing AQWolf some years earlier, On a rainy saturday morning Datapaw posted BotQuestWorlds 0.1 on the internet. The first version was somewhat buggy and only contained 2 bots(wich I don't remember - though I'm almost sure they were Doomwood rep and Mana Energy for Nulgath).[/INDENT]
BQW skyrocketed the ease and user friendliness that the old cheats often lacked to insane levels and this led to a boom in cheating popularity once again and resulted in a new wave of trainers - one of them called 'Dark Mystic'.
Dark Mystic included the common Flash-trainer features, but had a unique twist: the utility called 'Bot Manager', wich allowed your average joe to make his own bots with near 100% level of cutomization and a great performance. But sadly, almost eveything comes to and end someday. In March 2012, Datapawwolf announced he was going to retire from the AQW scene for good, and released the unfinished source of BQW 1.9. But a few days later, his forum mysteriously disappeared. It was later discovered that AE had threatened to sue him. Mystical carried on for a few more months, but he soon announced that all of his coding activities would be on hold for an undefined period of time - he also released the Dark Mystic 3.3 source wich led to various cheap imitators anhd wannabes slapping their name on it and re-releasing it.
Yeah, that pretty much summed up all of the AQW cheating history - but enough with the lecture, let's see some of the technical stuff now...
Chapter II- how does it work?
Well, it varies greatly - let's start with Packet trainers:
2.0 - Packet trainers
These are usually coded in Delphi(but C# is also common), and they use the basic priniciples of something called 'API Hooking'. It's done by using libraries built-in to the system(in this case, it uses the Winsock lib to send packets), thus resulting in limited control over what you are trying to do.
2.1 - Flash trainers and bots
These are coded directly in Flash(the same as AQW) , and they have the unique hability to acess any function the game has. You can basically re-make the game, but at the cost of it being all client-sided.
2.2 - Source exmples - Flash
Well, I'll include some examples of my own, and some by other coders - with credits and explanation.
2.2.0 - "Speed Hack"
Not really a speed hack per se, but it does change the players walk speed.
Code:
function speedHack(e:Event)
{
Game.world.WALKSPEED = number;//int can be any value you want. The higher, the faster you go. Fairly straightforward, isn't it?
}
2.2.1 - Skill modifiers
I'll include a different on in each line.
Code:
function skillMod(e:Event)
{
Game.world.actions.active[number].cd = number;//[number] goes from 0(auto atack) to 5(potions), in this case, cd is the cooldown time.
Game.world.actions.active[number].range = number;// pretty easy, the higher the value, the higher the skill range will be.
Game.world.actions.active[number].mp = number;//yeah, you can modify the mp value too!
}
Of course there are more, but these are the useful ones.
2.2.2 - Moving to different areas of the map:
Title says it all.
Code:
function goTo(e:Event)
{
Game.world.moveToCell("Cell", "Pad");//this is the common way, it's great but gives the impression of "telporting".
Game.world.myAvatar.pMC.walkTo(x, y);// x is the horizontal position, y is the vertical one. This one must be used
//if you want to disguise your bot as human.
}
That's all for now, but I will update this in the futurel. Stay tuned!