my code is wrong?? C++

09/30/2010 09:03 gosicks#1
I Play game Point Blank, its game disabled altab function, i create some DLL for hack that...and i can do it for several times 3-4 menit, after that Hackshield detected ass hack function ... pliz help me to modify this code....i am not really know about CC++

Code:
//----------------------------------------------------------------------------------------//

#include <windows.h>
#include "main.h"
#include "addys.h"

LPTSTR i3exec = "PointBlank.i3exec";

HANDLE Handle_Of_Thread_1, Handle_Of_Thread_2 = 0;
int Data_Of_Thread_1 = 1;
int Data_Of_Thread_2 = 2;
bool pertamax=true;

DWORD OldProtection;
void MEMwrite(void *adr, void *ptr, int size)
{
	VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
	memcpy(adr,ptr,size);
	VirtualProtect(adr,size,OldProtection, &OldProtection);
}

void PATCH(void) 
{
	
	if (pertamax) {
		DWORD adrNoDC1, adrNoDC2, adrAmmo, adrWall = 0;
		// cari base address i3exec
		DWORD dwI3EXEC = (DWORD)GetModuleHandleA(i3exec);
		
		// base + ofs_nodc1
		adrNoDC1 = dwI3EXEC + (DWORD)OFS_NODC1;
		// patch nodc1
		MEMwrite((void *)(adrNoDC1),(void*)(PBYTE)"\x00", 1);
		// base + ofs_nodc2
		adrNoDC2 = dwI3EXEC + (DWORD)OFS_NODC2;
		// patch nodc2
		MEMwrite((void *)(adrNoDC2),(void*)(PBYTE)"\x00", 1);

		// base + ofs_ammo
		adrAmmo = dwI3EXEC + (DWORD)OFS_AMMO;
		// patch ammo
		// hilangkan // untuk aktifin unlimited ammo
		// karena kadang patch ini work, kadang nggak
		//MEMwrite((void *)(adrAmmo),(void*)(PBYTE)"\xC3", 1);

		// base + ofs_wall
		adrWall = dwI3EXEC + (DWORD)OFS_WALL;
		// patch wall
		// hilangkan // untuk aktifin tembus tembok
		// karena kadang patch ini work, kadang nggak
		//MEMwrite((void *)(adrWall),(void*)(PBYTE)"\xC3", 1);

		
		MessageBeep(0);
		pertamax=false;
		// we're done
		//CloseHandle(Handle_Of_Thread_2);
	}
}

DWORD WINAPI theLoop(LPVOID param)
{
	while (1) {
		DWORD dwI3EXEC = (DWORD)GetModuleHandleA(i3exec);
		if (dwI3EXEC!=0) 
		{
			PATCH();
		}
		//setelah proses patch berhasil, kita bisa close thread theLoop, biar hemat resource
		if (GetAsyncKeyState(VK_INSERT)&1) {
			CloseHandle(Handle_Of_Thread_2);
			MessageBeep(1);
			return(0);
		}
		Sleep(50);
	}
	return (0);
}

// disable AHNS_DETECT_BLA_BLA in pointblank.exe
// parah nih PB, goyangin mouse dikit pada saat hs loading
// dapat ini dari BC.log "HShield Error AHNHS_ACTAPC_DETECT_AUTOMOUSE"
DWORD WINAPI theLoopEXE(LPVOID param)
{
	while (1) {
		DWORD adrBlaBlaBla = 0;
		// cari base address pb.exe
		DWORD dwEXE = (DWORD)GetModuleHandleA("PointBlank.exe");
		static int pb;
		if (dwEXE>0) 
		{
			adrBlaBlaBla = dwEXE + (DWORD)OFS_DETECT_BLA_BLA;
			// patch with RET, stupid mouse, macro, etc etc detection
			MEMwrite((void *)(adrBlaBlaBla),(void*)(PBYTE)"\xC3", 1);
			CloseHandle(Handle_Of_Thread_1);
			return (0);
		}
		Sleep(50);
	}
	return (0);
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
	// ngurangin beban kerja dll
	DisableThreadLibraryCalls(hDll);
	if (dwReason == DLL_PROCESS_ATTACH) {	
		Handle_Of_Thread_1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)theLoopEXE,	&Data_Of_Thread_1, 0, NULL);
		Handle_Of_Thread_2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)theLoop,		&Data_Of_Thread_2, 0, NULL);
		if ( Handle_Of_Thread_1 == NULL) ExitProcess(Data_Of_Thread_1);
		if ( Handle_Of_Thread_2 == NULL) ExitProcess(Data_Of_Thread_2);
	}
	return TRUE;
}
10/02/2010 15:13 DreeeaMz™#2
I Think thats Right???