WarRock EU - Code Snippets

05/15/2012 22:40 Cyno™#7066
Quote:
Originally Posted by _BuRn3R_ View Post
Anti Abnormal Gameplay:

Addys:
DWORD Abnormal1 = 0x124; /* Updated */
DWORD Abnormal3 = 0x360; /* Updated */
DWORD ServerKick1 = 0x104; /* Updated */
DWORD ServerKick3 = 0x340; /* Updated */
DWORD CRCPatch = 0x417FD3; /* Updated */
Code:
DWORD AntiAbnormal()
{
	DWORD dwServer = Ptr::Server;
	DWORD dwAbnormal1 = Ofs::Abnormal1;
	DWORD dwAbnormal3 = Ofs::Abnormal3;
	DWORD dwServKick1 = Ofs::ServerKick1;
	DWORD dwServKick3 = Ofs::ServerKick3;
	__asm
	{
		MOV EAX, dwServer
		ADD EAX, dwAbnormal1
		MOV EAX, 1
		ADD EAX, 1
		MOV EAX, 1
		ADD EAX, dwAbnormal3
		MOV EAX, 1
		ADD EAX, 1
		MOV EAX, 1
		ADD EAX, dwServKick1
		MOV EAX, 1
		ADD EAX, 1
		MOV EAX, 1
		ADD EAX, dwServKick3
		MOV EAX, 1
		ADD EAX, 1
		MOV EAX, 1
	}
	
	DWORD dwEhSvc;
	dwEhSvc = (DWORD)GetModuleHandleA("EhSvc.dll");
	while (!dwEhSvc);
	WriteMemory((VOID*)(Asm::CRCPatch),"x90\x90",2);
	
	return TRUE;
}
Credits:
BuRn3R [Code]
CyberRazzer[Abnormal1 & 3 Adress]
Ich glaube du solltest dir erst einmal Grundlegende kenntnisse über inline asm verschaffen...
Ich bin selbst nicht so gut in inline asm doch das das hier nicht funktioniert sieht ein blinder mit krückstock.
Ich erlaube mir mal deinen Code zu kommentieren
MOV EAX, dwServer ; Serverpointer ab ins EAX Register
ADD EAX, dwAbnormal1 ; Offset adden , bis hierhin alles ok
MOV EAX, 1 ; in das EAX register die 1 schreiben
ADD EAX, 1 ; das EAX register um 1 Inkrementieren ( = 2 )
MOV EAX, 1 ; in das EAX Register die 1 schreiben
ADD EAX, dwAbnormal3 ;zu der 1 die sich in EAX befindet Ofs 3 adden
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, 1; wieder +1 = 2
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, dwServKick1;adde ofs serverkick zur 1
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1; 1+1 = 2
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, dwServKick3;ofs 3 adden
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1;wieder +1
MOV EAX, 1;wieder die 1 ins eax register


Grundlegende Fehler:
mit MOV EAX , Addy
MOV EAX , Value schreibst du nicht die value in die Speicheraddresse
sondern beides nacheinander in das Register!
du solltest anstattdessen je nach type ( in dem fall 4 Byte ( DWORD ))
mov eax , serverptr
add eax , ofs
mov dword ptr ds:[eax] , Value verwenden.
Zudem bewirken diese Offsets nur , dass die MessageBoxen nicht erscheinen .
Der Disconnect bzw die andere Detection routine wird dennoch ausgeführt

Desweiteren ist der " CRC Check " , welchen du verwendest nicht mit der Abnormal GamePlayeMessage in verbindung zu setzen , da dieser die WarRock Files ( meiner erinnerung nach ) auf veränderungen durchsucht .

MFG Cyno
05/16/2012 00:30 CyberVeezy :)#7067
Quote:
Originally Posted by Cyno™ View Post
Ich glaube du solltest dir erst einmal Grundlegende kenntnisse über inline asm verschaffen...
Ich bin selbst nicht so gut in inline asm doch das das hier nicht funktioniert sieht ein blinder mit krückstock.
Ich erlaube mir mal deinen Code zu kommentieren
MOV EAX, dwServer ; Serverpointer ab ins EAX Register
ADD EAX, dwAbnormal1 ; Offset adden , bis hierhin alles ok
MOV EAX, 1 ; in das EAX register die 1 schreiben
ADD EAX, 1 ; das EAX register um 1 Inkrementieren ( = 2 )
MOV EAX, 1 ; in das EAX Register die 1 schreiben
ADD EAX, dwAbnormal3 ;zu der 1 die sich in EAX befindet Ofs 3 adden
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, 1; wieder +1 = 2
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, dwServKick1;adde ofs serverkick zur 1
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1; 1+1 = 2
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, dwServKick3;ofs 3 adden
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1;wieder +1
MOV EAX, 1;wieder die 1 ins eax register


Grundlegende Fehler:
mit MOV EAX , Addy
MOV EAX , Value schreibst du nicht die value in die Speicheraddresse
sondern beides nacheinander in das Register!
du solltest anstattdessen je nach type ( in dem fall 4 Byte ( DWORD ))
mov eax , serverptr
add eax , ofs
mov dword ptr ds:[eax] , Value verwenden.
Zudem bewirken diese Offsets nur , dass die MessageBoxen nicht erscheinen .
Der Disconnect bzw die andere Detection routine wird dennoch ausgeführt

Desweiteren ist der " CRC Check " , welchen du verwendest nicht mit der Abnormal GamePlayeMessage in verbindung zu setzen , da dieser die WarRock Files ( meiner erinnerung nach ) auf veränderungen durchsucht .

MFG Cyno
Gebe dir zu 100% recht, da die CRC auf Veränderungen überprüft also sollte man lieber erst die CRC von der (WarRock.exe) Bypassen bzw. blocken wobei blocken nicht gehen sollte und danach erst den Rest machen. :)
Tipp zum bypassen vom CRC
2 NOP's (x90/x90)
05/16/2012 00:43 xThaHackx#7068
Can someone give me a tutorial about a no menu hack the source code i need the functions 5th slot and no recoil and no spread and superjump
05/16/2012 06:58 Cyno™#7069
Quote:
Originally Posted by CyberVeezy :) View Post
Gebe dir zu 100% recht, da die CRC auf Veränderungen überprüft also sollte man lieber erst die CRC von der (WarRock.exe) Bypassen bzw. blocken wobei blocken nicht gehen sollte und danach erst den Rest machen. :)
Tipp zum bypassen vom CRC
2 NOP's (x90/x90)
Naja ich würde ehrlich gesagt an dem CRC Check garnichts machen vorallem nicht ohne asm bypass

Antispam:
Funktion Nop

void DoNothing2times()
{
_asm NOP
_asm NOP
}
Workt perfekt :)
05/16/2012 12:21 +Yazzn#7070
Code:
View = *(D3DXMATRIX*)(*(DWORD*)0xA02314 + 0x31E38);
Projection = *(D3DXMATRIX*)(*(DWORD*)0xA02314 + 0x31E78);
05/16/2012 13:33 animus7#7071
Zero Delay

Code:
if(CH_Zero_Delay)
        {
            const BYTE zero_delay_on[3] = { 0x90, 0x90, 0x90 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Zero_Delay), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Zero_Delay), &zero_delay_on, 3);
                VirtualProtect((void*)(Address_Zero_Delay), 3, dwProtect, NULL);
            }
        }
        if(!CH_Zero_Delay)
        {
            const BYTE zero_delay_off[3] = { 0xF6, 0xC6, 0x04 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Zero_Delay), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Zero_Delay), &zero_delay_off, 3);
                VirtualProtect((void*)(Address_Zero_Delay), 3, dwProtect, NULL);
            }
        }
Invisible

Code:
if(CH_Invisible)
        {
            const BYTE invisible_on[2] = { 0x1C, 0x8B };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Invisible), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Invisible), &invisible_on, 2);
                VirtualProtect((void*)(Address_Invisible), 2, dwProtect, NULL);
            }
        }
        if(!CH_Invisible)
        {
            const BYTE invisible_off[2] = { 0x2C, 0x8B };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Invisible), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Invisible), &invisible_off, 2);
                VirtualProtect((void*)(Address_Invisible), 2, dwProtect, NULL);
            }
        }
if (CH_Invisi==1)
{
long t=273648428;
unsigned long Protection;
VirtualProtect((void*)INVIS, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)INVIS, &t , sizeof(t));
VirtualProtect((void*)INVIS, sizeof(t), Protection, 0);
}

if (!INVIS)
{
long t=471604252;
unsigned long Protection;
VirtualProtect((void*)INVIS, sizeof(t), PAGE_READWRITE, &Protection);
memcpy((void*)INVIS, &t , sizeof(t));
VirtualProtect((void*)INVIS, sizeof(t), Protection, 0);;
}
UnlAmmo

Code:
if(CH_Unlimited_Ammo) //-- Hack Patched - Work Granades and RPG --//
        {
            const BYTE unlimited_ammo_1_on[3] = { 0x90, 0x90, 0x90 };
            const BYTE unlimited_ammo_2_on[3] = { 0x90, 0x90, 0x90 };
            const BYTE unlimited_ammo_3_on[3] = { 0x90, 0x90, 0x90 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Unlimited_Ammo_1), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_1), &unlimited_ammo_1_on, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_1), 3, dwProtect, NULL);

                VirtualProtect((void*)(Address_Unlimited_Ammo_2), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_2), &unlimited_ammo_2_on, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_2), 3, dwProtect, NULL);

                VirtualProtect((void*)(Address_Unlimited_Ammo_3), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_3), &unlimited_ammo_3_on, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_3), 3, dwProtect, NULL);
            }
        }
        if(!CH_Unlimited_Ammo)
        {
            const BYTE unlimited_ammo_1_off[3] = { 0x89, 0x7E, 0x24 };
            const BYTE unlimited_ammo_2_off[3] = { 0x89, 0x46, 0x20 };
            const BYTE unlimited_ammo_3_off[3] = { 0x89, 0x46, 0x24 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Unlimited_Ammo_1), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_1), &unlimited_ammo_1_off, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_1), 3, dwProtect, NULL);

                VirtualProtect((void*)(Address_Unlimited_Ammo_2), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_2), &unlimited_ammo_2_off, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_2), 3, dwProtect, NULL);

                VirtualProtect((void*)(Address_Unlimited_Ammo_3), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Unlimited_Ammo_3), &unlimited_ammo_3_off, 3);
                VirtualProtect((void*)(Address_Unlimited_Ammo_3), 3, dwProtect, NULL);
            }
        }
Radar GPS Enemy

Code:
 if(CH_Radar_GPS_Enemy)
        {
            const BYTE radar_gps_enemy_on[6] = { 0x0F, 0x84, 0xB1, 0x00, 0x00, 0x00 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Radar_GPS_Enemy), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Radar_GPS_Enemy), &radar_gps_enemy_on, 6);
                VirtualProtect((void*)(Address_Radar_GPS_Enemy), 6, dwProtect, NULL);
            }
        }
        if(!CH_Radar_GPS_Enemy)
        {
            const BYTE radar_gps_enemy_off[6] = { 0x0F, 0x85, 0xB1, 0x00, 0x00, 0x00 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Radar_GPS_Enemy), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Radar_GPS_Enemy), &radar_gps_enemy_off, 6);
                VirtualProtect((void*)(Address_Radar_GPS_Enemy), 6, dwProtect, NULL);
            }
        }
Map GPS

Code:
if(CH_Map_GPS)
        {
            const BYTE map_gps_on[2] = { 0x90, 0x90 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Map_GPS), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Map_GPS), &map_gps_on, 2);
                VirtualProtect((void*)(Address_Map_GPS), 2, dwProtect, NULL);
            }
        }
        if(!CH_Map_GPS)
        {
            const BYTE map_gps_off[2] = { 0x75, 0x1E };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Map_GPS), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Map_GPS), &map_gps_off, 2);
                VirtualProtect((void*)(Address_Map_GPS), 2, dwProtect, NULL);
            }
        }
Map FFA Gps

Code:
if(CH_Map_FFA_GPS)
        {
            const BYTE map_ffa_gps_on[2] = { 0x74, 0x12 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Map_FFA_GPS), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Map_FFA_GPS), &map_ffa_gps_on, 2);
                VirtualProtect((void*)(Address_Map_FFA_GPS), 2, dwProtect, NULL);
            }
        }
        if(!CH_Map_FFA_GPS)
        {
            const BYTE map_ffa_gps_off[2] = { 0x75, 0x12 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Map_FFA_GPS), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Map_FFA_GPS), &map_ffa_gps_off, 2);
                VirtualProtect((void*)(Address_Map_FFA_GPS), 2, dwProtect, NULL);
            }
        }
ESP Names

Code:
 if(CH_ESP_Names)
        {
            const BYTE esp_names_on[2] = { 0x76, 0x22 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_ESP_Names), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_ESP_Names), esp_names_on, 2);
                VirtualProtect((void*)(Address_ESP_Names), 2, dwProtect, NULL);
            }
        }
        if(!CH_ESP_Names)
        {
            const BYTE esp_names_off[2] = { 0x75, 0x22 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_ESP_Names), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_ESP_Names), &esp_names_off, 2);
                VirtualProtect((void*)(Address_ESP_Names), 2, dwProtect, NULL);
            }
        }
Headshot

Code:
{
            const BYTE headshot_off[2] = { 0x85, 0xC0 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Headshot), 2, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Headshot), &headshot_off, 2);
                VirtualProtect((void*)(Address_Headshot), 2, dwProtect, NULL);
            }
        }

Escalator

Code:
if(CH_Escalator)
        {
            if((GetAsyncKeyState(VK_LCONTROL)) && (GetAsyncKeyState(VK_SPACE)))
            {
                const BYTE escalator_on_1[3] = { 0x90, 0x90, 0x90 };
                const BYTE escalator_on_2[3] = { 0x90, 0x90, 0x90 };
                {
                    DWORD dwProtect;
                    
                    VirtualProtect((void*)(Address_Escalator_1), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                    memcpy((void*)(Address_Escalator_1), &escalator_on_1, 3);
                    VirtualProtect((void*)(Address_Escalator_1), 3, dwProtect, NULL);

                    VirtualProtect((void*)(Address_Escalator_2), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                    memcpy((void*)(Address_Escalator_2), &escalator_on_2, 3);
                    VirtualProtect((void*)(Address_Escalator_2), 3, dwProtect, NULL);
                }  
            }      
 if(!CH_Escalator)
        {
            const BYTE escalator_off_1[3] = { 0x89, 0x5D, 0x34 };
            const BYTE escalator_off_2[3] = { 0x89, 0x45, 0x34 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Escalator_1), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Escalator_1), &escalator_off_1, 3);
                VirtualProtect((void*)(Address_Escalator_1), 3, dwProtect, NULL);

                VirtualProtect((void*)(Address_Escalator_2), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Escalator_2), &escalator_off_2, 3);
                VirtualProtect((void*)(Address_Escalator_2), 3, dwProtect, NULL);
            }
        }
SVP

Code:
if(CH_SVP)
        {
            const BYTE svp_on[4] = { 0x90, 0x90, 0x90, 0x90 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_SVP), 4, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_SVP), &svp_on, 4);
                VirtualProtect((void*)(Address_SVP), 4, dwProtect, NULL);
            }
        }
        if(!CH_SVP)
        {
            const BYTE svp_off[4] = { 0x8B, 0x54, 0x24, 0x04 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_SVP), 4, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_SVP), &svp_off, 4);
                VirtualProtect((void*)(Address_SVP), 4, dwProtect, NULL);
            }
        }
OPK
Code:
if(CH_OPK)
        {
            const BYTE opk_on_1[6] = { 0x89, 0xA1, 0x8C, 0x01, 0x00, 0x00 };
            const BYTE opk_on_2[6] = { 0x89, 0xA1, 0x90, 0x01, 0x00, 0x00 };
            const BYTE opk_on_3[6] = { 0x89, 0xA1, 0x94, 0x01, 0x00, 0x00 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_OPK_1), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_1), &opk_on_1, 6);
                VirtualProtect((void*)(Address_OPK_1), 6, dwProtect, NULL);

                VirtualProtect((void*)(Address_OPK_2), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_2), &opk_on_2, 6);
                VirtualProtect((void*)(Address_OPK_2), 6, dwProtect, NULL);

                VirtualProtect((void*)(Address_OPK_3), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_3), &opk_on_3, 6);
                VirtualProtect((void*)(Address_OPK_3), 6, dwProtect, NULL);
            }
        }
        if(!CH_OPK)
        {
            const BYTE opk_off_1[6] = { 0x89, 0x91, 0x8C, 0x01, 0x00, 0x00 };
            const BYTE opk_off_2[6] = { 0x89, 0x81, 0x90, 0x01, 0x00, 0x00 };
            const BYTE opk_off_3[6] = { 0x89, 0x91, 0x94, 0x01, 0x00, 0x00 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_OPK_1), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_1), &opk_off_1, 6);
                VirtualProtect((void*)(Address_OPK_1), 6, dwProtect, NULL);

                VirtualProtect((void*)(Address_OPK_2), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_2), &opk_off_2, 6);
                VirtualProtect((void*)(Address_OPK_2), 6, dwProtect, NULL);

                VirtualProtect((void*)(Address_OPK_3), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_OPK_3), &opk_off_3, 6);
                VirtualProtect((void*)(Address_OPK_3), 6, dwProtect, NULL);
            }
        }
05/16/2012 15:29 __BuRn3R#7072
Quote:
Originally Posted by Cyno™ View Post
Ich glaube du solltest dir erst einmal Grundlegende kenntnisse über inline asm verschaffen...
Ich bin selbst nicht so gut in inline asm doch das das hier nicht funktioniert sieht ein blinder mit krückstock.
Ich erlaube mir mal deinen Code zu kommentieren
MOV EAX, dwServer ; Serverpointer ab ins EAX Register
ADD EAX, dwAbnormal1 ; Offset adden , bis hierhin alles ok
MOV EAX, 1 ; in das EAX register die 1 schreiben
ADD EAX, 1 ; das EAX register um 1 Inkrementieren ( = 2 )
MOV EAX, 1 ; in das EAX Register die 1 schreiben
ADD EAX, dwAbnormal3 ;zu der 1 die sich in EAX befindet Ofs 3 adden
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, 1; wieder +1 = 2
MOV EAX, 1; wieder die 1 ins eax register
ADD EAX, dwServKick1;adde ofs serverkick zur 1
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1; 1+1 = 2
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, dwServKick3;ofs 3 adden
MOV EAX, 1;wieder die 1 ins eax register
ADD EAX, 1;wieder +1
MOV EAX, 1;wieder die 1 ins eax register


Grundlegende Fehler:
mit MOV EAX , Addy
MOV EAX , Value schreibst du nicht die value in die Speicheraddresse
sondern beides nacheinander in das Register!
du solltest anstattdessen je nach type ( in dem fall 4 Byte ( DWORD ))
mov eax , serverptr
add eax , ofs
mov dword ptr ds:[eax] , Value verwenden.
Zudem bewirken diese Offsets nur , dass die MessageBoxen nicht erscheinen .
Der Disconnect bzw die andere Detection routine wird dennoch ausgeführt

Desweiteren ist der " CRC Check " , welchen du verwendest nicht mit der Abnormal GamePlayeMessage in verbindung zu setzen , da dieser die WarRock Files ( meiner erinnerung nach ) auf veränderungen durchsucht .

MFG Cyno
Damit kommst du zu spät.. xD Fehler hab ich schon fixed^^
05/16/2012 15:46 +Yazzn#7073
Code:
	//SVP
	memcpy((void *)0x407F8E, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407F97, (const void*)"\x90\x90\x90", 3);

	//OPK
	memcpy((void *)0x407F8E, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407F97, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407FA3, (const void*)"\x90\x90", 2);
05/16/2012 16:49 BlackxLegend™#7074
Quote:
Originally Posted by Yazzn (: View Post
Code:
	//SVP
	memcpy((void *)0x407F8E, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407F97, (const void*)"\x90\x90\x90", 3);

	//OPK
	memcpy((void *)0x407F8E, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407F97, (const void*)"\x90\x90\x90", 3);
	memcpy((void *)0x407FA3, (const void*)"\x90\x90", 2);
Off:
//SVP
x33\x51\x10//1
x33\x51\x08//2

//OPK
\x33\x51\x10//1
\x33\x51\x08//2
\x33\x11//3
05/16/2012 18:42 kkBioX#7075
Eine möglichkeit eine Adresse zu patchen nach X minuten wieder zu restoren und dann wieder zu patchen? aka MemPatch aber halt mit Bytes?

z.B

cMemPatch <float> TestA (ADR_TEST,(PBYTE*)"\xC3,1));
05/16/2012 22:56 Raz9r#7076
Quote:
Originally Posted by kkBioX View Post
...
Nicht gerade schwer zu machen. Hier, mal eben aus dem Kopf getippt. Sollte soweit funktionieren.

Code:
template<typename _Ty>
class PatchBytes
{
private:
  _Ty *const address;
  unsigned char *old_bytes;
  unsigned char *new_bytes;
  unsigned long size;

public:
  PatchBytes(_Ty *const _address, const char *_bytes_sz) 
    : address(_address)
  {
    size = strlen(_bytes_sz);
    unsigned long len = size;

    old_bytes = new unsigned char[len];
    new_bytes = new unsigned char[len];

    while(len-- > 0)
    {
      old_bytes[len] = *reinterpret_cast<unsigned char *>(address);
      new_bytes[len] = _bytes_sz[len];
    }
  }

  PatchBytes()
  {
    delete[] old_bytes;
    delete[] new_bytes;
  }

  void save()
  {
    unsigned long len = size;

    while(len-- > 0)
      old_bytes[len] = *reinterpret_cast<unsigned char *>(address);
  }

  void restore()
  {
    unsigned long len = size;

    while(len-- > 0)
      *reinterpret_cast<unsigned char *>(address) = old_bytes[len];
  }

  void patch()
  {
    unsigned long len = size;

    while(len-- > 0)
      *reinterpret_cast<unsigned char *>(address) = new_bytes[len];
  }
};
e/ Usage:

PatchBytes<float> test(ADR_TEST, "\x31\x22");
// save old bytes (call restore first!)
test.save();
// restore old bytes
test.restore();
// set new bytes
test.patch();
05/17/2012 10:10 nicki240#7077
Hey jemand idee ?

Quote:
Notice: Undefined index: act in C:\xampp\htdocs\vbulletin\guid\settings.php on line 4
So wird $act defininiert auch in den anderen php skripten...:
PHP Code:
$act $_GET['act']; 
So eigentlich np , aber aber die get variable act wird auch auf allen anderen Seiten nicht definiert ...

Sie wird aber bei jeder änderung benötig : z.B.

PHP Code:
if($act=="ChangeGUID" && ($changes $total)){
    
$newguid $_POST['GUID'];
    
$newguid2 $_POST['GUID2'];
    
$changesupdate $changes+1;
    if(!empty(
$_POST['GUID'])) {
        if(
strlen($newguid) != 32) {
            exit(
"GUID is too short");
            }
        
$a "wr vip";
        }
    if(!empty(
$_POST['GUID2'])) {
        if(
strlen($newguid2) != 32) {
            exit(
"GUID is too short");
            }
        
$b"public";    
        }
    if(
$changes==0){
        
$timestamp time();
        
$hourstime $timestamp + ($hours 60 60); //86400 = 24 hours
    
}
    if(isset(
$a)) {    
        
mysql_query("UPDATE GUIDTech SET GUID='$newguid', changes='$changesupdate', firstchangetime='$timestamp', hourstime='$hourstime' WHERE user='$username'");
        }
    if(isset(
$b)) {
        
mysql_query("UPDATE GUIDTech SET GUID2='$newguid2', changes='$changesupdate', firstchangetime='$timestamp', hourstime='$hourstime' WHERE user='$username'");
        }

    
//mysql_query("UPDATE GUIDTech SET GUID3='$newguid3' WHERE user='$username'");
    
header("Location: settings.php");
    }
else { 
$act ""; } 
oder :
PHP Code:
if($act==""){
if(
$changes == $total){ 
    
$x $hourstime time();
    if(
$x <= 0) {
        
$changes 0;
        }
    } 
oder aus der admin.php :

PHP Code:
if($act=="guid"){ //Lock Act
$name=$_GET['name'];
$result=mysql_query("SELECT * FROM GUIDTech WHERE user='$name'");
while(
$rows=mysql_fetch_array($result)){ // Start looping table row
$GUID=$rows['GUID'];
$GUID2=$rows['GUID2'];
$GUID3=$rows['GUID3'];
}
?> 
Kann mir jemand helfen wie act defininiert werden könnte ?

Wer mehr Infos brauch melden :P
05/17/2012 18:17 Cyno™#7078
Quote:
Originally Posted by nicki240 View Post
Hey jemand idee ?



So wird $act defininiert auch in den anderen php skripten...:
PHP Code:
$act $_GET['act']; 
So eigentlich np , aber aber die get variable act wird auch auf allen anderen Seiten nicht definiert ...

Sie wird aber bei jeder änderung benötig : z.B.

PHP Code:
if($act=="ChangeGUID" && ($changes $total)){
    
$newguid $_POST['GUID'];
    
$newguid2 $_POST['GUID2'];
    
$changesupdate $changes+1;
    if(!empty(
$_POST['GUID'])) {
        if(
strlen($newguid) != 32) {
            exit(
"GUID is too short");
            }
        
$a "wr vip";
        }
    if(!empty(
$_POST['GUID2'])) {
        if(
strlen($newguid2) != 32) {
            exit(
"GUID is too short");
            }
        
$b"public";    
        }
    if(
$changes==0){
        
$timestamp time();
        
$hourstime $timestamp + ($hours 60 60); //86400 = 24 hours
    
}
    if(isset(
$a)) {    
        
mysql_query("UPDATE GUIDTech SET GUID='$newguid', changes='$changesupdate', firstchangetime='$timestamp', hourstime='$hourstime' WHERE user='$username'");
        }
    if(isset(
$b)) {
        
mysql_query("UPDATE GUIDTech SET GUID2='$newguid2', changes='$changesupdate', firstchangetime='$timestamp', hourstime='$hourstime' WHERE user='$username'");
        }

    
//mysql_query("UPDATE GUIDTech SET GUID3='$newguid3' WHERE user='$username'");
    
header("Location: settings.php");
    }
else { 
$act ""; } 
oder :
PHP Code:
if($act==""){
if(
$changes == $total){ 
    
$x $hourstime time();
    if(
$x <= 0) {
        
$changes 0;
        }
    } 
oder aus der admin.php :

PHP Code:
if($act=="guid"){ //Lock Act
$name=$_GET['name'];
$result=mysql_query("SELECT * FROM GUIDTech WHERE user='$name'");
while(
$rows=mysql_fetch_array($result)){ // Start looping table row
$GUID=$rows['GUID'];
$GUID2=$rows['GUID2'];
$GUID3=$rows['GUID3'];
}
?> 
Kann mir jemand helfen wie act defininiert werden könnte ?

Wer mehr Infos brauch melden :P
DU solltest vllt nicht in der WarRock Section nach hilfe für eine PHP source fragen . nur so als nettgemeinter tip
05/17/2012 18:38 nicki240#7079
Quote:
Originally Posted by Cyno™ View Post
DU solltest vllt nicht in der WarRock Section nach hilfe für eine PHP source fragen . nur so als nettgemeinter tip
Ich weiß nur leider nicht wohin sonst ...:confused:

Weil das guidtech ist ja für warrock :P
05/17/2012 19:24 xxfabbelxx#7080
Quote:
Originally Posted by nicki240 View Post
Ich weiß nur leider nicht wohin sonst ...:confused:

Weil das guidtech ist ja für warrock :P
[Only registered and activated users can see links. Click Here To Register...]

lg