|
You last visited: Today at 06:37
Advertisement
WarRock EU - Code Snippets
Discussion on WarRock EU - Code Snippets within the WarRock forum part of the Shooter category.
|
View Poll Results: Wie findet ihr diesen Thread
|
|
Klasse!
|
  
|
78 |
60.94% |
Geht so
|
  
|
17 |
13.28% |
|
Sinnlos, braucht keiner
|
  
|
33 |
25.78% |
05/15/2012, 22:40
|
#7066
|
elite*gold: 158
Join Date: Sep 2011
Posts: 878
Received Thanks: 2,493
|
Quote:
Originally Posted by _BuRn3R_
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
|
#7067
|
elite*gold: 1
Join Date: Oct 2011
Posts: 1,117
Received Thanks: 1,520
|
Quote:
Originally Posted by Cyno™
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
|
#7068
|
elite*gold: 0
Join Date: Jul 2011
Posts: 5
Received Thanks: 1
|
Can someone make me a tutorial to make a no menu hack:(
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
|
#7069
|
elite*gold: 158
Join Date: Sep 2011
Posts: 878
Received Thanks: 2,493
|
Quote:
Originally Posted by CyberVeezy :)
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
|
#7070
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Code:
View = *(D3DXMATRIX*)(*(DWORD*)0xA02314 + 0x31E38);
Projection = *(D3DXMATRIX*)(*(DWORD*)0xA02314 + 0x31E78);
|
|
|
05/16/2012, 13:33
|
#7071
|
elite*gold: 0
Join Date: May 2011
Posts: 219
Received Thanks: 103
|
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
|
#7072
|
elite*gold: 31
Join Date: Oct 2011
Posts: 2,276
Received Thanks: 2,029
|
Quote:
Originally Posted by Cyno™
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
|
#7073
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
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
|
#7074
|
elite*gold: 0
Join Date: Mar 2012
Posts: 72
Received Thanks: 141
|
Quote:
Originally Posted by Yazzn (:
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
|
#7075
|
elite*gold: 0
Join Date: Nov 2011
Posts: 116
Received Thanks: 12
|
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
|
#7076
|
elite*gold: 297
Join Date: Dec 2010
Posts: 1,129
Received Thanks: 1,687
|
Quote:
Originally Posted by kkBioX
...
|
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
|
#7077
|
elite*gold: 0
Join Date: Jan 2011
Posts: 89
Received Thanks: 4
|
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
|
#7078
|
elite*gold: 158
Join Date: Sep 2011
Posts: 878
Received Thanks: 2,493
|
Quote:
Originally Posted by nicki240
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
|
#7079
|
elite*gold: 0
Join Date: Jan 2011
Posts: 89
Received Thanks: 4
|
Quote:
Originally Posted by Cyno™
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 ...
Weil das guidtech ist ja für warrock :P
|
|
|
05/17/2012, 19:24
|
#7080
|
elite*gold: 900
Join Date: Apr 2009
Posts: 14,981
Received Thanks: 11,403
|
Quote:
Originally Posted by nicki240
Ich weiß nur leider nicht wohin sonst ...
Weil das guidtech ist ja für warrock :P
|
lg
|
|
|
 |
|
Similar Threads
|
WTB Flyff Source code snippets
04/01/2012 - Flyff Trading - 0 Replies
Hellow I posted this because I wanted to buy a fix scroll of unbinding.Which removes soul-link of an item.If you have its code snippets PM me.Don't sell me a code which is release because all of them are not working.I wanted to buy a fix one and a non-buggy code
Payment:via Paypal
|
[Autoit] Youtube Code Snippets
07/29/2011 - AutoIt - 5 Replies
Tag Zusammen.
Wie wohl die meisten von euch mitbekommen haben, bieten derzeit sehr viele User hier sogenannte Youtube Services an, bei denen man Abos, Likes, Dislikes etc. kaufen kann.
Doch wer wirklich Erfolg haben will, braucht natürlich viele Abonnenten und Likes, was per Hand Tage dauern würde.
Deshalb werden hier in letzter Zeit immer mehr Youtube Bots verkauft.
Was, wie ich finde, ein ziemliche Abzocke ist, da das meist nur sehr schlechte Bots sind, die lediglich den Internet...
|
Some Code-Snippets[PSERVER]
07/15/2011 - Kal Hacks, Bots, Cheats & Exploits - 17 Replies
This is the code of the hack which Fremo released..
I got new methods so I dont need this anymore & maybe it'll help some people...
G31 Adult Skill
if(comboBox4->Text=="Panther'crit'")
{
KC->Chat(255," Panther Skill ON");
KC->Threads=1;
KC->lasttime = timeGetTime()-15000;
}
else if(comboBox4->Text=="Tiger'otp'")
|
[Release] Code Snippets Manager
01/21/2011 - Coding Releases - 0 Replies
Code Snippets Manager
http://upit.cc/images/1d47d78e.jpg
Hab mich heute mal rangesetzt, und einen kleinen Manager für
Code-Snippets(Code-Fetzen) gecodet, da ich alles sortiert
in einer Anwendung wollte.
Da es sicherlich jemand nützlich finden wird, lad ich es hier mal hoch.
|
All times are GMT +1. The time now is 06:40.
|
|