Q-Protect Anti hack source code

Joined
Jun 19, 2009
Messages
1,538
Reaction score
538
Hi,

I thought I release the source code now as I promised it ones :ott1:
I'm not working on this project anymore so no reason to keep it for myself.
Well I hope you all can use it well or even improve it if you like too :ott1:
If you are going to use this source don't forget to give me some credits :wink:

Source code from my Flyff Source

Functions :

How I execute them
Code:
#ifdef __QUGET_NON_PROTECT_DLL_VERSION
HANDLE_QUGET_ANTI_PACKET = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)QUGET_ANTI_PACKET, 0, 0, 0 );
HANDLE_QUGET_ANTI_SPEED = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)QUGET_ANTI_SPEED, 0, 0, 0 );
HANDLE_QUGET_ANTI_WINM = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)QUGET_ANTI_WINM, 0, 0, 0 );
#endif


This source can be used for most games :ott1:
Lol its not really big its simple and messy in my view.

Don't forget to like this post for the release :P:
 
Last edited:
Then improve it? Source is there:p
You don't get the goal for releasing a source code?

That implies that there's something of substance to begin with. That's not to say that your code isn't useful -- it has the makings of a packet editor already -- just that if it cannot protect itself from reversing, it won't protect a game client.
 
It helps some people :ott1: that was my goal. Or it makes people wanting to do more into anti-hacking.
I didn't really like it so i gave up on it a long time ago. And I promised to release the source ones so I did.

@people complaining.
Read
"Well I hope you all can use it well or even improve it if you like too "
Lol its not really big its simple and messy in my view.
 
Uhhhh...

#1 - Threading in an antihack isn't usually good unless done properly(which requires time checking by the main thread). A hacker can simply suspend your checking threads and your antihack is bypassed. You should have it check in a function that is essential to the game's processing, such as render.

#2 - Why are you using ASM and VirtualProtect at all? You can simply do something like:

Code:
DWORD dwAddr = GetProcAddress(hModule, "QueryPerformanceCounter");
if(*((BYTE*)dwAddr) == 0xE9)
...

#3 - This only checks for jmps at the address of the functions. A hacker can also jmp inside the function, or even hook the vtable and bypass any .text section checking completely. Do some research and you can easily find much better methods of detour detection.

#4 - At least check for hooks on ExitProcess/GetProcAddress/GetModuleHandle. Those are also easy ways to bypass this "antihack".
 
Erm Mootie your way is invalid.
DWORD dwAddr = GetProcAddress(hModule, "QueryPerformanceCounter");
Will get you the function address when the dll has the export.
Kernal32.dll exports QueryPerformanceCounter right?:P

if(*((BYTE*)dwAddr) == 0xE9)
It is not possible to do it like this :P

I found another way to block functions. The new way just replaces the function if it can find the function addres :P But using the same method you be able to bypass the antihack :S (only if you know the function addres) Most Flyff server has their neuzes unpacked so it would be easy to find the addres.
 
Back