Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Cabal Online > Cabal Guides & Templates
You last visited: Today at 11:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



How to bypass blocked funktions (cabal eu)

Discussion on How to bypass blocked funktions (cabal eu) within the Cabal Guides & Templates forum part of the Cabal Online category.

Reply
 
Old   #1
 
dieblume123's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 365
Received Thanks: 67
How to bypass blocked funktions (cabal eu)

Hey there!

The simple fact that you are willing to read this tutorial shows that youre at least interested in making your own hacks/bypasses.
I will walk you guys through the general idea behind the PostMessage bypass and its sourcecode.

Here is a list of tools that you will probably need (so look for a copy of these programs):
-Microsoft Visual C++ (any version will do, I myself use 6.0)
-Microsoft Visual Basic (just to save the hassle and to be able to setup a GUI real fast)
-OllyDbg with some plugins (IDA pro is more powerful, but also harder to use)
-A brain and the will to try things over and over again untill u get the hang of it

You have downloaded these tools, your IQ isnt lower than 70 and you have the will to learn and to try until you succeed!
So lets get started!

So, what does GameGuard do? Why can't I use certain functions?

To keep it simple: GameGuard basically intercepts some (almost every single one) of the functions that allows users to create macro tools/bots.
If youre familiar with "hacking" you have most likely heard of "hooking" functions (and a many times used technique, Microsoft's Detours).
This is often done when simple adjustments have to be made to a program of which the user has lost the sourcecode (or simply doesnt have the sourcecode) from.
You overwrite the first 5 Op-codes of the function you want to intercept with a call to your own function.
This prevents the original function from being executed and executes your function instead!
You can then check the params that were send to the original function, execute some other pieces of code if you like and then return to the function so you dont completely ruin the dataflow.
(As I have mentioned before, a good way to do this is by "detouring" a function.)
Im unsure if GameGuard uses detours, though it appears to me that the hooking method they use is very similar to what I described.

So basically the first 5 bytes of the original function are not as they are supposed to be, and therefor you are dependant on what GameGuard allows you to do with this function.
In the case of PostMessage calling PostMessage will not cause the function to be executed as you intended it to be.


Well, Ive got a clue now how GG blocks these functions.. How to bypass it?

Bypassing a function thats hooked by GG isn't that hard.
Basically you let YOUR function handle the op-codes that were originally at the 1st 5 bytes of the program, then you will let the program jump to the function's offset + 5 bytes.
That way you JUMP OVER the bytes GG has overwritten to redirect the function to a GG function.
If you do that without executing the original op-codes you will most likely make the game crash because the registers will be all messed up.

Off to some code (Here is where Visual c++ jumps in):
Quote:
#include <windows.h>

HINSTANCE hInst;
DWORD DLLFunc;
HWND hCABAL;
HWND hWnd;


__declspec(naked) BOOL WINAPI __stdcall myPostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
__asm
{
mov edi, edi
push ebp
mov ebp, esp
jmp [DLLFunc]
}
}
I will explain this code line by line.
The first few lines are there to declare some variables and to import some standard windowsfunctions.
Quote:
__declspec(naked) BOOL WINAPI __stdcall
This function needs to be able to manage its own stack, and doesnt nessecarily return a value.
Quote:
myPostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
The functionname and the parameters you will pass through it, these parameters must be identical to the ones of the function youre bypassing.
If you are unsure what parameters to pass to it look the original function up on MSDN.
Quote:
__asm
{
mov edi, edi
push ebp
mov ebp, esp
jmp [DLLFunc]
}
Now it's getting tricky, this piece of code is written in assembly, thats just a small step above the "machine language", the 0's and 1's.
jmp [DLLFunc] means that the program should jump to a certain offset, that offset is equal to the functionroot + 5 bytes.

We declare it in DLLMain:
Quote:
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReason*/)
{
switch (dwReason)
{

case DLL_PROCESS_ATTACH:
{
if (DLLFunc == NULL) {
hInst = LoadLibrary("user32.dll");
DLLFunc = (DWORD)GetProcAddress(hInst, "PostMessageA") + 5;
}
if (hCABAL == NULL) {
hFlyff = ::FindWindow(NULL, "CABAL");
}
}
break;

case DLL_THREAD_ATTACH:
{
if (DLLFunc == NULL) {
hInst = LoadLibrary("user32.dll");
DLLFunc = (DWORD)GetProcAddress(hInst, "PostMessageA") + 5;
}
if (hCABAL == NULL) {
hFlyff = ::FindWindow(NULL, "CABAL");
}
}
break;
case DLL_THREAD_DETACH:
{
if (hInst != NULL) {
// Un-Load DLL
::FreeLibrary(hInst);
hInst = NULL;
}
}
break;
case DLL_PROCESS_DETACH:
{
if (hInst != NULL) {
// Un-Load DLL
::FreeLibrary(hInst);
hInst = NULL;
}
}
break;
}
return TRUE;
}
Now this isnt too hard to understand, this piece of code calculates the offset of the PostMessage-function and adds 5 bytes to that offset so the offset DLLFunc helds will be the 1st byte past the 5 bytes that GG has overwritten upon initialisation of the DLL.
Using both DLL_PROCESS_ATTACH and DLL_PROCESS_DETACH allows you to either inject the dll, or to load the dll from within your own application.
Which way you choose depends on your own preferences.


So back to the assembly part:
Quote:
__asm
{
mov edi, edi
push ebp
mov ebp, esp
jmp [DLLFunc]
}
I have already explained the jmp [DLLFunc] part.
Now here's how to understand what the other 3 instructions mean.
Open up OllyDbg.
Open user32.dll (located in the systemfolder of your windowsfolder)
Press Ctrl+N.
A list of function names will show up, scroll down till you find PostMessageA and double click it.
You will be taken to the functionroot.
Look at the first 3 lines: "OMG THATS THE EXACT SAME PIECE OF ASM AS THE ABOVE!"
True
So with the above piece of assembly code we manually execute the overwritten bytes.
If you have some knowledge on assembly you will see that
Quote:
mov edi, edi
push ebp
mov ebp, esp
is 5 Bytes long!

So we have successfully written a bypass for the PostMessageA-function now!
Gratz! Youve done it!

Now only 1 more thing remains..
In order to make other programs able to use our functions we must export it.
There is an easy way to do this using Visual C++.
Add a .def file to the project.
The syntaxis to export a function is as follows:
Quote:
LIBRARY "<name of dll here>"
EXPORTS
<Name of Function here>
In our case that's:
Quote:
LIBRARY "BypassedPostMessage"
EXPORTS
myPostMessageA
Compiling this code will result in a dll which you can then use with scripting/programming tools like AutoIT and visual basic.


Yay! We have a Bypass now! How to use it??!!
Simple!
We import the function with visual basic!

Here is a small example:
Quote:
Private Declare Function myPostMessageA Lib "BypassedPostmessage.dll" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command1_Click()
Dim hWndCMD As Long
hWndCMD = FindWindow(vbNullString, "CABAL")
myPostMessageA hWndCMD, WM_KEYDOWN, vbKeyE, 0
End Sub
The first 2 Declarations are there to import the bypass we have just written and to import "FindWindowA", an API that allows us to get the windowhandle of the game.

The other code sends the "E"-key to the game when you hit the commandbutton.
Easy isn't it?
With a simple combination of Timers, sending vbKey"x" where "x" is any key on the keyboard you can make autofeeders, autotalkers, auto...
Just use your imagination!




So here are all the steps you have to take again, one by one:
-Find a function that you want to use, but that is blocked by gameguard.
-Open the dll that the original function is in with OllyDbg and look it up in the functionname list.
-Go to the function and copy the first 5 bytes of instructions.
-Paste these instructions in a piece of inline ASM.
-Make sure that GetProcAddress() returns the offset of the function you want to bypass.
-Rewrite the original function and make sure you pass the right parameters to it.
-Export the function
-Exploit the new function using Visual Basic, AutoIT, C++, delphi, whatever language you feel comfortable with.


I hope this tutorial shows enough so you guys can use it to bypass other functions.
Good luck hacking!

Credits: JoostP

test objekt added
(i dont know why it wont work like it should but it type it,s text into chat ^^
people who know what they do should understand the source without an explanation)
Attached Files
File Type: rar test Source.rar (11.3 KB, 139 views)
dieblume123 is offline  
Thanks
5 Users
Old 06/05/2010, 14:44   #2
 
soundwave3's Avatar
 
elite*gold: 0
Join Date: Dec 2006
Posts: 417
Received Thanks: 75
Hope for something it will be useful. Nice tutorial mate
soundwave3 is offline  
Old 06/05/2010, 15:54   #3
 
BlackFUMarket's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 33
Received Thanks: 1
Nice tut
BlackFUMarket is offline  
Old 06/05/2010, 17:15   #4
 
elite*gold: 0
Join Date: Jul 2009
Posts: 167
Received Thanks: 27
Make a little video please.
alonsosanchez is offline  
Old 06/06/2010, 01:00   #5
 
Yamachi's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 149
Received Thanks: 138
Quote:
Originally Posted by alonsosanchez View Post
Make a little video please.
GTFO. If you need a video to explain how to do something, you shouldn't even be reading this thread.
Yamachi is offline  
Thanks
4 Users
Old 06/07/2010, 00:37   #6
 
dieblume123's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 365
Received Thanks: 67
ah and before i forgett this work with every GG protected game <<< and diddnt got patched since 2 years
dieblume123 is offline  
Thanks
1 User
Old 06/10/2010, 19:15   #7
 
TrueYami's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 1,256
Received Thanks: 314
AWESOME.
TrueYami is offline  
Old 06/10/2010, 20:47   #8


 
.Law.'s Avatar
 
elite*gold: 30
Join Date: Apr 2008
Posts: 2,955
Received Thanks: 1,771
I'm sure I saw this guide before, I'm pretty sure you copy-pasted it too, ohwell, hf not being able to explain it to others
.Law. is offline  
Old 06/11/2010, 20:31   #9
 
Yamachi's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 149
Received Thanks: 138
Ofcourse he copy-pasted it. His English used in his other posts doesn't match that used in the original post. People feel the need to steal **** all the time without giving credit where it's due. You should know that by now, Punk.
Yamachi is offline  
Old 06/13/2010, 09:54   #10

 
Pupix's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,157
Received Thanks: 269
JoostP from wrote this.
Same tutorial is on Flyff section too.

#credits added
Pupix is offline  
Old 06/21/2010, 14:53   #11
 
elite*gold: 0
Join Date: Feb 2010
Posts: 2
Received Thanks: 0
nice it's realy works? if i do this, i will use hacks on EU?
mariop11 is offline  
Old 07/01/2010, 02:53   #12
 
elite*gold: 0
Join Date: Oct 2009
Posts: 10
Received Thanks: 1
wow you are very intelligent!!!! I'm italian and i can't understand very well the guide, but i try the same!!! XD
Thank you very much.
davendith is offline  
Old 07/02/2010, 11:19   #13
 
elite*gold: 0
Join Date: Jan 2009
Posts: 18
Received Thanks: 0
it works?
sebisim is offline  
Old 07/02/2010, 23:42   #14

 
Pupix's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,157
Received Thanks: 269
Quote:
Originally Posted by davendith View Post
wow you are very intelligent!!!! I'm italian and i can't understand very well the guide, but i try the same!!! XD
Thank you very much.
You don't need to be so intelligent to copy-paste something that someone else wrote. ROFL
Pupix is offline  
Old 07/10/2010, 14:04   #15
 
elite*gold: 0
Join Date: May 2008
Posts: 6
Received Thanks: 5
Quote:
Originally Posted by Pupix View Post
You don't need to be so intelligent to copy-paste something that someone else wrote. ROFL
BUSTED.... But it Nice Guide Actualy..
Zeday is offline  
Reply


Similar Threads Similar Threads
WAt cabal are ip blocked??
09/04/2009 - Cabal Online - 2 Replies
hi guys , i am lookin to start a new char in cabal (for the first time) i was hopin u could help me select a server by answerin a few quereis 1. im from india , is my ip blocked for cabal eu and na?? 2. is tabalog prevalant in Cabal sea , played deakron sea and had a hard time coz of laguage problems 3. which is the best server population wise and pvp wise, i enjoy pk servers
Blocked Accounts in Cabal PH - Is there any cheat solution about this?
07/22/2008 - Cabal Hacks, Bots, Cheats, Exploits & Macros - 10 Replies
Hi my account has been blocked due to reasons, it was reported using 3rd party program.. I just want to know if you guys programmers, can hack through their system, to disable the blocked account notice in log in part and play your blocked account....? Hope you guys can do this, sad to say, i didnt graduate of 4 years about programming, if i did, i will do one hack...... power to all programmers out there. youve got the power, in all programming hacks and etc... looking forward for...
Blocked from NA Cabal
05/30/2008 - Cabal Online - 8 Replies
i recently just been blocked from NA cabal >_> it says taht " You have been blocked from the game, You cannot play with this account" seomthing like that... im wondering if this is permanent or few months... anyone know ?
THE BEST GUIDE FOR PROXY TO BYPASS YOUR BLOCKED IP ^^
04/14/2008 - Dekaron Private Server - 23 Replies
This is a guide if you get the "Cannot Connect to Server" in the 20x Taiwan server. Step One Download and install Proxycap. Step Two Go to this site: Anonymous proxy test,socks5 list,anonymous proxy,Free proxy for game,- IP free of china and find a Taiwan proxy server that looks good =)
1.35 bypass for srobot 1.07 BLOCKED
04/10/2006 - Silkroad Online - 3 Replies
the latest patch blocked Srobot 1.07 using the sro_client. exe.. :? a new challenge !! check it up guys !!good luck.. ;) ;)



All times are GMT +1. The time now is 11:26.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.