I hate not keeping my promises, and I made a promise about making a technical megathread before. So I'm keeping my promise no matter what. Please don't misunderstand this post as me coming back, I'm just keeping a promise I made in a topic before.
First here are the source codes for all My projects:
[Open Source] Hell Quest v0.9:
-You need Delphi 2009 to open the .dproj file.
-You also need to install Alpha Skins Lite component.
Cross Hell v0.2:
-You need Flash CS4 to open the .fla file.
AJAX Based AQW Loader:
-Bypasses the same-domain security of AJAX requests with a simple php proxy system.
-You need to upload this to a php cross-domain access allowed server or it'll give you an error.
ISAIR'S TECHNICAL MEGATHREAD
Among all the empty talk going in around this forum, most of them are caused by lack of knowledge and lack of technical knowledge that is.
First is first, lets get started with key loggers:
Problem: Private information being stolen.
So what is truly a key logger? Verbally taken it is just an application that logs your key strokes but the key loggers that we know as a term obtains private information like passwords and send them to a person or a group of people via various methods, but what all those methods have in common that they have to use network communication at some point to send the data, so they can be detected by constantly watching packets sent from a certain application. Please beware that data can easily be encrypted so the most guaranteed way for newbies is to look at where the packets are sent to instead of what is being sent.
Also key logging is not the only way to steal information. Via reading another application's memory or parsing information from packets sent from another application, information can be stolen pretty easily.
Solution: Monitor packets that are being sent from the suspicious application, anti-viruses are reliable too. Please keep in mind that no method is 100% accurate because human kind is not flawless which means no anti-virus is perfect and you may not see 1 packet when monitoring sent packets because you were probably distracted by something.
How do people make a trainer for AQW?
Problem: You have no idea how to make a trainer.
Trainers are not so different from other kinds of application if you are looking at the method to make them. Obviously you need to know a programming language and must be fond of it. People prefer languages that you can easily use components and access their public functions and variables for making a trainer for AQW because to make hacking AQW easier people prefer loading it as a part of their trainer via flash component, or a browser component which loads the main page of AQW. Now the thing is that you don't have to load the game in your trainer but if you do, it makes things a breeze. As AQW is a flash game, if you make a trainer that doesn't load AQW in itself you have to go over lots of things: AQW can be in any browser so you have to monitor sent packets from all known browsers, alternatively you can just monitor all the packets sent from your computer but that'll slow things down.
I won't go on and explain every itzies and bitzies of making a fully working AQW trainer from scratch as it'll take very, very long. So you should go ahead and learn a decent programming language and learn some methods required to make an AQW trainer like API hooking(you need to hook winsock send function to learn which socket is being used by an instance of the AQW client at the moment to send any packet you want to the AQW server). Learning API hooking in general will help you a lot in the future and there are some various methods for doing it, some people prefer detours (damn microsoft, you'll understand what I say later and if you keep in mind that I use unix systems for programming) or you can use hot-patching method.
Solution: Go learn a programming language, don't be lazy. Alexander didn't conquer half of the world in a day.
My trainer doesn't open! What am I gonna do??
Problem: You downloaded a trainer and it doesn't seem to open for an unknown reason.
Now this problem is a bit tricky. There may be several reasons and they can vary from "easy to fix" to "will take time" but nothing that can't be fixed. All applications that run on user-level of an OS(Operating System) use APIs provided by DLLs. The reason why most applications won't run is probably because they can't find the exact APIs that they were compiled to use which means the run-time library required to run that specific application is either out of date on your computer or it doesn't exist at all. I'll solve this problem on 2 ends, developer and user.
a)Developer: You should include all the DLLs that are used by your application in the downloaded file along with your trainer.
b)User: Ask the programmer, if he/she has no clue then try these:
Microsoft Visual C++ 2008 Redistributable Package
.NET Framework 3.5
Latest Flash Player
I made a trainer but I don't know how to load .SPT files to obtain a list of packets?
Problem: You don't know how to write a function that loads SPT files.
-A programming language (duh!).
-Arrays or linked lists.
If you know everything listed above than you can do anything you want with SPTs after reading the next paragraph.
I'll write a random SPT byte by byte and then extract the packets in it step by step and I think this'll make you understand things pretty well if your IQ is average or above.
03 00 00 00 06 00 00 00 50 61 63 6B 65 74 01 00 00 00 61
06 00 00 00 50 61 63 6B 65 74 01 00 00 00 62 06 00 00 00
50 61 63 6B 65 74 01 00 00 00 63
Now lets seperate those bytes and let me tell you what everything means:
03 00 00 00 || 06 00 00 00 || 50 61 63 6B 65 74 || 01 00 00 00 || 61
|| 06 00 00 00 || 50 61 63 6B 65 74 || 01 00 00 00 || 62 || 06 00 00 00 ||
50 61 63 6B 65 74 || 01 00 00 00 || 63
First of all let me remind you two basics:
-An integer's size is 4 bytes, same as a dword.
-An ASCII char has a size of 1 byte.
Well then, let's get back to SPT reading shall we?
The first block of 4 bytes, which is an integer, tells us the amount of packets that are in the SPT file. So you should set your 'for loop' or 'while loop' according to that, or alternatively you can read until you reach the end of the file.
After the first 4 bytes things will go on like this:
[Length of packet's name][Packet's name][Length of packet][packet] ...
So if you were to read the bytes above it would be like this:
Length of the name of the first packet (read 4 bytes): 06 00 00 00 = 6
Name of the first packet (read 6 bytes): 50 61 63 6B 65 74 = Packet
Length of the first packet (read 4 bytes): 01 00 00 00 = 1
First packet (read 1 byte): 61 = a
Now try and read the rest to see if you understood.
What is the packet structure of AQW?
Problem: You want to know what packets mean in AQW.
Now I doubt anyone would want to know it. But it may help some people so I'll explain the packet structure that AQW uses in depth. Lets take every text in between % characters in a packet as a separate variable.
The first two variables will always be the same for every packet, though meaning that they are the same in every packet doesn't mean that AE won't change them:
The third variable is always the packet type for example it can be: moveToCell, gar, afk, hi, ...
The fourth variable is the room number, for some packets like afk and hi this needs to be 1, in other packets like moveToCell you need the number of the current room (some people know this as character id in trainers instead of room number).
The fifth variable and all the variables after it are other information depending on the packet type. Think of them as arguments for a function, as it is how they treated when the packet arrives to the AQW server. For example if the packet type is moveToCell the fifth variable and variables after it include x,y coordinates and character speed.