WarRock hack dedection

Posts 16–27 of 27 · Page 2 of 2
Quote Originally Posted by maxes View Post
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
Your naming of variable is weird. I don't know why you put a z in front of SJ. Usually people will do "sz" prefix to denote a "string terminated by zero" which is variable naming convention called Hungarian notation. "i" would be the proper prefix in this case for "integer". Which brings me to my main point:

Lose this whole zSJ/ zNF thing its not neccessary, all your basically saying is if(true) //execute the following. but since zSJ & zNF are bothe set to 1 and never change they are always true! Instead I would do it like this:

Code:
Project.cpp

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

void Phcs(); //Another bad naming eww... :{


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


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

 
		if(dwP1P+ZnZ*(float*) != 20000.0f)
		{*(float*)(dwP1P+ZnZ) = -20000.0f;}
	}
}
In my opinion that makes a ton more sense, but this is just an organization issue. we still have to figure out why your hack never worked. But coding it in a more readable format makes this easier.
Hmmmm... weird as far as I can tell, if your addies are correct this should work. Build the .dll and try to inject it with something like perx. Make sure to run it as adminastrator if you have Vista. And as far as I can tell this should do the trick. If you injected it right it will most likely say "hack detected"
i got 2 errors during build, im using Microsoft Visual c++ 6

C:\Program Files\Microsoft Visual Studio\MyProjects\bob\bob2.cpp(21) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\bob\bob2.cpp(20) : error C2059: syntax error : '!='

ill repost if i figure it out

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

void Phcs();


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


		if(GetAsyncKeyState(VK_CONTROL) &1)
		{ 
     		*(float*)(dwP1P+ZnZ) = 2000.0f; 
		}
	
 
		if(*(float*)(dwP1P+ZnZ) != 20000.0f)
		{*(float*)(dwP1P+ZnZ) = -20000.0f;}
	}
}
seems to ben fixed testing now i will be back in like 4 hours need to go watch a talent show

injected no results no detection. later is there a way maybe i can send you my project folder, and see if im just failing?

i uploaded my project, im leaving now
bob.zipattachment deleted · 3 downloads before removal
Of first of all simple DLL Injection is not dectected as lnog as your not hooking d3d or using ASM hacks. You dont need to rename the variable or function names because i dont think WR can check those. WR only checks your strings so make sure u encrypt those. I think your main problem is your injector.
Quote Originally Posted by zhaoyun333 View Post
Of first of all simple DLL Injection is not dectected as lnog as your not hooking d3d or using ASM hacks. You dont need to rename the variable or function names because i dont think WR can check those. WR only checks your strings so make sure u encrypt those. I think your main problem is your injector.
Why would it be the injectors fault?

If you want to test if it's the injectors fault, just create a message box once the DLL is injected. Something like:


Code:
if(reason == DLL_PROCESS_ATTACH)
{
        MessageBox(NULL,"Test","Test",MB_OK);
}
It will appear if the injection is successful.






I think.
Quote Originally Posted by Void View Post
Why would it be the injectors fault?

If you want to test if it's the injectors fault, just create a message box once the DLL is injected. Something like:
Process of elimination

Code:
if(reason == DLL_PROCESS_ATTACH)
{
        MessageBox(NULL,"Test","Test",MB_OK);
}
It will appear if the injection is successful.
Good point, but I think you have to pass it the module handle instead of NULL, but perhaps NULL works too; never tried it. ;l


@ maxes: I forgot to make the first 20000.0f negative btw (-20000.0f)

And I might have the casting messed up. Try putting it on the other side of the equal sign. =/
Quote Originally Posted by why06 View Post
Process of elimination



Good point, but I think you have to pass it the module handle instead of NULL, but perhaps NULL works too; never tried it. ;l


@ maxes: I forgot to make the first 20000.0f negative btw (-20000.0f)

And I might have the casting messed up. Try putting it on the other side of the equal sign. =/
The NULL parameter means that no window owns that message box. Setting the parameter to the window handle would mean that window becomes the parent and the message box is a child window.
i tryed putting the ! on both side's and yes i left the 20000 as 20000, but the superjump still dident work

i changed if(dwP1P+ZnZ*(float*) != 20000.0f)
{*(float*)(dwP1P+ZnZ) = -20000.0f;}

to

if(*(float*)(dwP1P+ZnZ) != -20000.0f)
{*(float*)(dwP1P+ZnZ) = -20000.0f;}
Quote Originally Posted by maxes View Post
i tryed putting the ! on both side's and yes i left the 20000 as 20000, but the superjump still dident work
I said the cast not the ! the casting is *(float*)

@David: Ok thanks... lol I should know this by now.

Do what David said to see if it injected correctly.
Code:
if((dwP1P+ZnZ) != *(float*)-20000.0f)
{(dwP1P+ZnZ) = *(float*) -20000.0f;}
like so...
Quote Originally Posted by why06 View Post
I said the cast not the ! the casting is *(float*)

@David: Ok thanks... lol I should know this by now.

Do what David said to see if it injected correctly.
ah yeah i took a look at a few source codes and saw that so i tryed that, it worked in the sence it compiled but the hack wasnt working ingame nor detected im going to try to use that message box just to see if theres a change

i tryed 2 different injectors, all the results are the same'

i think there's something missing in the tut, because why so i need to define serverpointer when its not used once! i may as well put the whole list i have.


why06 do you have a hour and Steam/Xfire/Msn and care to talk over that?
i change the project.cpp to
Code:
#include "stdafx.h" 
#include "addresses.h"



void Phcs();


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


		if(GetAsyncKeyState(VK_CONTROL) &1)
		{ 
     		*(float*)(dwP1P+ZnZ) = 2000.0f; 
		}
	
 
		if((dwP1P+ZnZ) != *(float*)-20000.0f)
		{(dwP1P+ZnZ) = *(float*) -20000.0f;}
	}
}
i get 2 errors
C:\Program Files\Microsoft Visual Studio\MyProjects\bob\bob2.cpp(22) : error C2440: 'type cast' : cannot convert from 'const float' to 'float *'
C:\Program Files\Microsoft Visual Studio\MyProjects\bob\bob2.cpp(23) : error C2440: 'type cast' : cannot convert from 'const float' to 'float *'


and im not sure where i can place the code that will give the message
Before you learn game hacking learn C++ properly. From what I see your doing is C&P from why06. Check your DLL and add a messagebox to see if it even works.
Posts 16–27 of 27 · Page 2 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us