WarRock hack dedection

Posts 1–15 of 27 · Page 1 of 2
WarRock hack dedection
Hello, im new to Mpgh and the same to making hacks using C++. Now i have experience working with UCE's. Now im looking into hacking warrock simply based appond alot of the hacks are addressed base.

Warrock uses Hackshield and from what i know they scan Strings, Process's and files located inside the games folder.

now i used a Tut "http://www.mpgh.net/forum/31-c-c/69698-how-make-warrock-hack-c.html" knowing that it would be detected(shame for those who thought otherwise)

Now my question is do i need to replace
#define ADR_PLAYERPTR 0x00CB2EB0
#define ADR_SERVERPTR 0x00BBC578
#define OFS_Z 0x0025C

and change the #define ADR_PLAYERPTR to ADR_ImNotOnTheHACKStringList or can i just change it to #define PlP (PlayerPointer). OR it does not matter because this has nothing to do with the detected or this method in whole is detected? sorry for my grammer here, its unacceptible


now, currently my StdAfx.cpp (thought to be my main) is

2 things i have a question about
DWORD dwID1 = 0;
am i right to think that if on the HackList?

void PlayerHacks(); i would think this is a detected string, but i can find where this is defind or its true affect


Code:
#include "stdafx.h"

void hDllMain(void)
{
 while(true){
  void PlayerHacks();
  Sleep(30);
 }
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
    DWORD dwID1 = 0;
    HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)hDllMain, NULL, NULL,&dwID1 );
    CloseHandle(hThread1);
	break;
	}
	return TRUE;
}

now my Project.cpp

void PlayerHacks(); //same as befor.
int SuperJump = 1; //am i able to just rename the term(replace it threw the source)

Code:
#include "stdafx.h" 
#include "addresses.h"

void PlayerHacks();


 int SuperJump = 1;
 int NoFall = 1;

void PlayerHacks()
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPTR;
  if(dwPlayerPtr != 0){


if(GetAsyncKeyState(VK_CONTROL) &1){ 
   if(SuperJump){ 
     *(float*)(dwPlayerPtr+OFS_Z) = 2000.0F; 
    }
  }
 if (NoFall) 
   {*(float*)(dwPlayerPtr+OFS_Z) = -35000.0F;} 

  }
}
now in the StdAfx.h i was asked to add
void PlayerHacks(void);
if somone could explain


now if you do take the time to help i would like to say ty.
my goal is not to become some EPIC Amazing L337 hacker, just somone who if knew how to find a addresses "#define OffSet_Stamina 0x002C" i could freeze the address and bypass hackshield(probly alot harder then im thinking)
I never seem to understand what people are asking...

void PlayerHacks(void);

Is just declaring a function and what parameters it takes. In this case it shouldn't return anything and no parameters are needed.

You can rename functions to whatever you want. You can even make your own. I suggest reading a couple of tutorials on C++, if not to learn the language, maybe just to understand a little of what you're trying to do here.
what i did is i changed all the functions to somthing a little random, like i changed Playerhack to phcs, now i injected the dll into warrock using Pixipixs injected. i was able to play, but it dident work. (0 errors on complie)

now my main question is,
What do i need to do, to make my Dll Undetected?


Also yes i dont know C++, but i understand what parts are saying and state'ing, im more using to editing memory using UCE or CWcheat(PSP)

Also following the tut it said to place the server pointer in the Addresses.h but nowhere is ADR_ServerPTR am i missing something
I believe he thinks creating game exploits is similar to editing various string and function names to create an undetected cheat engine, thus someone should give him a run-down of how he is incorrect, I would but i am severely deprived of sleep at the moment (about 28 hours?)
Quote Originally Posted by zeco View Post
I believe he thinks creating game exploits is similar to editing various string and function names to create an undetected cheat engine, thus someone should give him a run-down of how he is incorrect, I would but i am severely deprived of sleep at the moment (about 28 hours?)
well how does it work? doesn't hackshield scan for strings and functions?
Quote Originally Posted by zeco View Post
I believe he thinks creating game exploits is similar to editing various string and function names to create an undetected cheat engine, thus someone should give him a run-down of how he is incorrect, I would but i am severely deprived of sleep at the moment (about 28 hours?)
wait are you saying that they patch the method of changing the value?

Code:
void nfd () //NFD
{
DWORD dwPlayerPtr = *(DWORD*)Playerpointer;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+NFD_Player_OffSet) = -20000;
}
}
is not longer working? so i need to find a new way to change the value?
Ok, When you edit a cheat engine to make it undetectable, you change strings and stuff that the anti-cheat looks for. However with a game 'hack', like war-rock for example, they change the addresses where they keep certain values. So every-time the patch the game, the location where we used to be able to find our ammo, is now different, and we have to find it again.

Sorry for horrible explanation. I'm a zombie.
Quote Originally Posted by zeco View Post
Ok, When you edit a cheat engine to make it undetectable, you change strings and stuff that the anti-cheat looks for. However with a game 'hack', like war-rock for example, they change the addresses where they keep certain values. So every-time the patch the game, the location where we used to be able to find our ammo, is now different, and we have to find it again.

Sorry for horrible explanation. I'm a zombie.
no that make perfect sence. befor i ask alot of questions have you/do you parctice hacking warrock at all?

but with that said. it sounds like if i had a hack from 3 years ago (lets say Stam hack) all the hack was is a super simple Addresses freeze code. all i would need is to change is the Address? and it would be undetected?
because i found the source of a major hack and i looked at it and all i need is the addresses and i have them
Quote Originally Posted by maxes View Post
no that make perfect sence. befor i ask alot of questions have you/do you parctice hacking warrock at all?

but with that said. it sounds like if i had a hack from 3 years ago (lets say Stam hack) all the hack was is a super simple Addresses freeze code. all i would need is to change is the Address? and it would be undetected?
because i found the source of a major hack and i looked at it and all i need is the addresses and i have them
I don't really hack warrock in practice, i just know a lot about it because it's quite hacked. But yeah that sounds about right. From what i've heard you just need to change the addresses for war-rock. BUt don't take my word for it =)
well i took this source http://www.mpgh.net/forum/31-c-c/808...rock-hack.html and added the address from a post on the forum, i had to remove the antivotekick part gave me a error, injected it into warrock, didn't work and nothing was detected care to see if im a moron or just the example i tryed is a fail?
Quote Originally Posted by zeco View Post
Sorry for horrible explanation. I'm a zombie.
No. Your a robot.

Sorry I wasn't able to get to you sooner, but I've been kind of busy lately. Just finished my 3rd hour Exam a couple minutes... whew... one down.

Anyway lets see what you got here:

1. You want to create a Warrock hack
2. You want it to be undetected

Well the general format for most of the Warrock hacks I see floating around are like what you originally posted:

Code:
#include <windows.h>


void PlayerHacks();


 int SuperJump = 1;
 int NoFall = 1;


void hDllMain(void)
{
 while(true){
  void PlayerHacks();
  Sleep(30);
 }
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
    DWORD dwID1 = 0;
    HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)hDllMain, NULL, NULL,&dwID1 );
    CloseHandle(hThread1);
	break;
	}
	return TRUE;
}


void PlayerHacks()
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPTR;
  if(dwPlayerPtr != 0){


if(GetAsyncKeyState(VK_CONTROL) &1){ 
   if(SuperJump){ 
     *(float*)(dwPlayerPtr+OFS_Z) = 2000.0F; 
    }
  }
 if (NoFall) 
   {*(float*)(dwPlayerPtr+OFS_Z) = -35000.0F;} 

  }
}
I decided to go ahead and include both together so I can see it all.

Ok what you need from what I can see is to make some #define's. YOu need to #define OFS_Z and ADR_PLAYERPTR.

But Im guessing you injected this and it was detected? Now was it detected of simply did not work. Those are two different problems.
Quote Originally Posted by why06 View Post
No. Your a robot.

Sorry I wasn't able to get to you sooner, but I've been kind of busy lately. Just finished my 3rd hour Exam a couple minutes... whew... one down.

Anyway lets see what you got here:

1. You want to create a Warrock hack
2. You want it to be undetected

Well the general format for most of the Warrock hacks I see floating around are like what you originally posted:


I decided to go ahead and include both together so I can see it all.

Ok what you need from what I can see is to make some #define's. YOu need to #define OFS_Z and ADR_PLAYERPTR.

But Im guessing you injected this and it was detected? Now was it detected of simply did not work. Those are two different problems.
well you could be right, i got no message saying it was detected, but dident work. lets work with 1 problem, lets get it to work, and if its detected maybe a little help towards learning not to make it undetected.

i injected and it was not detected or working, this is my source greatly based on pwnzaz77 tut,


Code:
Maindll.cpp
#include "stdafx.h"

void hDllMain(void)
{
 while(true){
  void Phcs(); // Phcs is default PlayerHacks
  Sleep(30);
 }
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
    DWORD dwI01 = 0; //dwID1 was default
    HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)hDllMain, NULL, NULL,&dwI01 );
    CloseHandle(hThread1);
	break;
	}
	return TRUE;
}


_____________________________________________________

Project.cpp

#include "stdafx.h" 
#include "addresses.h" //zSJ, and ADR are define in Addresses.h

void Phcs(); //PlayerHacks


 int zSJ = 1; // could this be my problem? 
 int zNF = 1; // i believe this befind a varible answer ie"if zNF the answer is 1"

void Phcs()
{
DWORD dwP1P = *(DWORD*)ADR_P1P;
  if(dwP1P != 0){


if(GetAsyncKeyState(VK_CONTROL) &1){ 
   if(zSJ){ 
     *(float*)(dwP1P+ZnZ) = 2000.0f; 
    }
  }
if (zNF) 
{*(float*)(dwP1P+ZnZ) = -20000.0f;}

  }
}  



__________________

Addresses.h
#define ADR_P1P 0x00CD1E88 // PlayerPointer
#define ADR_S1P 0x00BDAFF8 //ServerPointer
#define ZnZ 0x0025C //OffSet_Z
#define NfD 0x00000320 //Test offset for noFall


________________

StdAfx.h

#if !defined(AFX_STDAFX_H__D87C5CF2_666F_48A8_861E_627C4CCCC503__INCLUDED_)
#define AFX_STDAFX_H__D87C5CF2_666F_48A8_861E_627C4CCCC503__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif //

#define WIN32_LEAN_AND_MEAN		

#include <windows.h>
void Phcs(void); //PlayerHacks

#endif //
also dont say sorry, the fact you posted makes up for that alot more then you think

ok when i look at the code i do see int "Znf and zSJ" = 1 now i know for zSJ = 1 when i push control stated by "if(GetAsyncKeyState(VK_CONTROL) &1){ " but the next line is "if(zSJ){" is almost saying if both is 1. and threw the source zSJ/zNF isnt define to a addresses or function or anything i can tell. its almost like i have to add #define zSJ as something that is equal to 1,

also if you are good at coding or atleast way past my level and have time do you have a way i can talk to you "xfire,steam,msn" for basic help if you have time.

i tryéd 2 different injecter's and both said injected but no affectéd in game no kick or superjump
Not sure if someone answered your question already, but defines are not what is detected(as those get replaced when you compile).

if you use the following code:
Code:
#define LOL 707
int a=LOL;
and would compile it, its the same as writing
Code:
int a=707;
Defines are just a shortcut you can use if you need to use the same stuff over and over(for example PI, #define PI 3.141592654f )

edit:
What most anticheats basicly do is place hooks on common 'hacker' functions(e.g. WriteProcessMemory).
They probably check if the window handle is the same as the game's window handle and if it is flag you as cheater.
Quote Originally Posted by Hell_Demon View Post
Not sure if someone answered your question already, but defines are not what is detected(as those get replaced when you compile).

if you use the following code:
Code:
#define LOL 707
int a=LOL;
and would compile it, its the same as writing
Code:
int a=707;
Defines are just a shortcut you can use if you need to use the same stuff over and over(for example PI, #define PI 3.141592654f )

edit:
What most anticheats basicly do is place hooks on common 'hacker' functions(e.g. WriteProcessMemory).
They probably check if the window handle is the same as the game's window handle and if it is flag you as cheater.
well noone gave me a pointplank answer, im looking/goal is to make 1 simple hack for warrock that is not detected because once i can do that i can learn to add onto that 1 hack. so if you hjave information working source(for somthingsimple, somthing to big will not make me learn) of maybe making the hack undetected is way out of my skill level
so for zJS
Code:
 if(GetAsyncKeyState(VK_CONTROL) &1){ 
   if(zSJ){ 
     *(float*)(dwP1P+ZnZ) = 2000.0f;
its saying is Control is pressed(= 1) change P1P^Znz to 2000, but how does the code if(GetAsyncKeyState(VK_CONTROL) &1){ change zSJ or is zSJ always 1, so its saying if control is pressed, its 1 then zSJ is 1 so now your z is now 2000
Posts 1–15 of 27 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us