GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Pluginok és Programok => A témát indította: kurta999 - 2011. Március 10. - 21:24:52

Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2011. Március 10. - 21:24:52
Hali.
Ezt a scriptet a neten találtam, ez egy alap memória hack. Beírod a címkét, és az értéke, hogy mire változtassa.
Szükséged lesz hozzá C++-ra, vagy DevC++-ra.
Memóriacímkéket úgy kereshetsz, hogy beírod, hogy GTA SA Memory Adress. Vagy az MTA forráskódjából.
Nemcsak GTA-val mûködik! Ez csak neked megy, olyan, mint egy Trainer. ( Sobeit, stb... )
Tessék:
 

#include <iostream>
#include <windows.h>
using namespace std;
#include <windows.h>
// Gravity: 0x863984
// Játéks Speed: 0xB7CB64 // 0xB7CB64
// Blur: 0x8D5104
// Térkép fehérítése: 0xA444A4   (0/1)
int main()
{
HWND hWnd = FindWindow(0, \"GTA:SA:MP\"); // Ellenõrzi, hogy a megadott ablak nyitva-e van.
     if(hWnd == 0)
{
MessageBox(0, \"Error cannot find window.\", \"Error\", MB_OK|MB_ICONERROR);
     }
else
{
DWORD proccess_ID;
GetWindowThreadProcessId(hWnd, &proccess_ID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proccess_ID);
if(!hProcess)
{
           MessageBox(0, \"Could not open the process!\", \"Error!\", MB_OK|MB_ICONERROR);
       }
else
{
           int newdata = 1;
       DWORD newdatasize = sizeof(newdata);
            if(WriteProcessMemory(hProcess, (LPVOID)0xA444A4, &newdata, newdatasize, NULL)) // Ez jelenleg fehéríti a térképet
   {
             MessageBox(NULL, \"WriteProcessMemory worked.\", \"Success\", MB_OK + MB_ICONINFORMATION);
   }
   else
   {
             MessageBox(NULL, \"Error cannot WriteProcessMemory!\", \"Error\", MB_OK + MB_ICONERROR);
           }
           CloseHandle(hProcess);
}
     }
     return 0;
}
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: palesz_88 - 2011. Március 10. - 21:41:43
És ez mire jó?
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Yeaseiro - 2011. Március 10. - 21:46:29
Ezt azonnal lekell tesztelnem :D
Csak egy kicsit killódni fogok a plugin készítésével :dead: :angry:
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2011. Március 10. - 21:47:42
Memóriában tárold adat értékének megváltoztatására.
Pl:

( Nem innen van a script )
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Yeaseiro - 2011. Március 10. - 21:56:22
Bár az a probléma hogy a memória hackelés tilos sampon... De az hogy a fenébe tudják meg? :mistrust:
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2011. Március 10. - 22:01:33
Idézetet írta: Stan_Smith date=1299790582\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic
Bár az a probléma hogy a memória hackelés tilos sampon... De az hogy a fenébe tudják meg? :mistrust:
 
Sehogy :)
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Yeaseiro - 2011. Március 10. - 22:10:13
Idézetet írta: kurta999 date=1299790893\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic


Bár az a probléma hogy a memória hackelés tilos sampon... De az hogy a fenébe tudják meg? :mistrust:
 
Sehogy :)
 
[/quote]
Csak tudják valahogy, mert mikor megjelent a 0.3c akkor tökéletesen futott a sa-mp.com és a 0.3b és a 0.3c is
de mikor elindítottam megfeledkeztem a Sobeitrõl ezért kiléptetett a samp majd újra letöltöm de az oldal nem jelenik meg, a szerver lista nem töltõdik be stb... Majd felkerestem Kalcort és azt írta GamerX szerveren hogy valóban az ip címem elvan mentve :neutral: De legalább letörölték és most újra a régi :D
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: GroX - 2011. Március 13. - 08:11:35
Idézetet írta: Stan_Smith date=1299791413\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic


 

Bár az a probléma hogy a memória hackelés tilos sampon... De az hogy a fenébe tudják meg? :mistrust:
 
Sehogy :)
 
[/quote]
Csak tudják valahogy, mert mikor megjelent a 0.3c akkor tökéletesen futott a sa-mp.com és a 0.3b és a 0.3c is
de mikor elindítottam megfeledkeztem a Sobeitrõl ezért kiléptetett a samp majd újra letöltöm de az oldal nem jelenik meg, a szerver lista nem töltõdik be stb... Majd felkerestem Kalcort és azt írta GamerX szerveren hogy valóban az ip címem elvan mentve :neutral: De legalább letörölték és most újra a régi :D
 
[/quote]
A Sobeitre specifikus védelmet írtak, csak azt tudják beazonosítani, meg egyéb ismertebb cheateket.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Yeaseiro - 2011. Március 13. - 08:22:25
De van egy probléma! Már 0.3c-re is kijött a sobeit és tényleg nem dobja ki. :neutral:
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2011. Május 21. - 15:08:25
LoL.
\"width=500http://www.nm-ss.tarhely.biz/SAMP/Stream_Memory_16.jpg[/img]
16MB
\"width=500http://www.nm-ss.tarhely.biz/SAMP/Stream_Memory_1024.jpg[/img]
1024MB
SA Limit Adjuster Letöltése.
A tab-okat ne nézd, ez a DevC++ egy ki**szni való lóf***, a C++ Professionallal meg nememgy.
[pawn]
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HWND hWnd = FindWindow(0, \"GTA:SA:MP\"); // Ellenõrzi, hogy a megadott ablak nyitva-e van.
if(!hWnd)
{
   MessageBox(0, \"Error cannot find window.\", \"Error\", MB_OK|MB_ICONERROR);
}
else
{
   DWORD proccess_ID;
   GetWindowThreadProcessId(hWnd, &proccess_ID);
   HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proccess_ID);
   if(!hProcess)
   {
      MessageBox(0, \"Could not open the process!\", \"Error!\", MB_OK|MB_ICONERROR);
   }
   else
   { // 0xFF9900AA
          int newdata = 1048576 * 1024;
      DWORD newdatasize = sizeof(newdata);
      if(WriteProcessMemory(hProcess, (LPVOID)0x8A5A80, &newdata, newdatasize, NULL))
      {
         MessageBox(NULL, \"WriteProcessMemory worked.\", \"Success\", MB_OK + MB_ICONINFORMATION);
      }
      else
      {
         MessageBox(NULL, \"Error cannot WriteProcessMemory!\", \"Error\", MB_OK + MB_ICONERROR);
      }
      CloseHandle(hProcess);
        }
}
return 0;
}
[/pawn]
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Vampesz - 2011. Július 07. - 12:37:32
Ezért használj Windows Visual Studiot... ^-^ Egyszerûbb és szerintem jobb is bár én csak C#-al használom...^-^
kurta a SA Limit Adjuster-t, h kell használni kérlek leírnád :question:
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Január 04. - 17:32:13
Unatkoztam :D
A forráskód lefordításához C++ szükséges.
A scriptet én írtam a GTA Wiki alapján, kivéve az alapot, ami megnyitja a folyamatot, mert azzal nemvolt kedvem sz*rakodni :D
További információkat/memóriacímeket itt érhetsz el:
http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29
Ha átnézted, akkor rájössz, hogy pl. a SetPlayerAmmo()-t milyen nehéz  megcsinálni, vagy az UpdateVehicleDamageStatus()-t.
 

#include <iostream>
#include <windows.h>
#include <conio.h>
float
g_FloatValue = 0;
// SetVehicleMass(float fMass)
#define SetVehicleMass(fMass) \\
g_FloatValue = fMass; \\
WriteProcessMemory(process, (LPVOID)(CVehicle + 140), &g_FloatValue, sizeof(g_FloatValue), 0)
// SetVehicleTurnMass(float fTurnMass)
#define SetVehicleTurnMass(fTurnMass) \\
g_FloatValue = fTurnMass; \\
WriteProcessMemory(process, (LPVOID)(CVehicle + 144), &g_FloatValue, sizeof(g_FloatValue), 0)
// SetVehicleWheelSize(float fWheelSize)
#define SetVehicleWheelSize(fWheelSize) \\
g_FloatValue = fWheelSize; \\
WriteProcessMemory(process, (LPVOID)(CVehicle + 1112), &g_FloatValue, sizeof(g_FloatValue), 0)
int main()
{
DWORD WindowProcessID;
HWND WindowHandle = FindWindow(NULL, L\"GTA:SA:MP\");
if(WindowHandle == NULL)
{
printf(\"Nincs nyitva az ablak ( GTA:SA:MP )!\");
return 1;
}
GetWindowThreadProcessId(WindowHandle, &WindowProcessID);
HANDLE process = OpenProcess(STANDARD_RIGHTS_REQUIRED | PROCESS_ALL_ACCESS | SYNCHRONIZE | 0xFFF, FALSE, WindowProcessID);
while(1) // Végtelen ciklus, hogy ne álljon le.
{
if(GetAsyncKeyState(VK_NUMPAD9)) // Ha NUM 9-et nyomsz, ezt változtasd meg, ha nem tetszik..
{
   int
      CVehiclePointer1; // Jármûre való mutató, ha nagyobb, mint 0, ( > 0 ), akkor kocsiaban van. Ellentétben gyalog
   ReadProcessMemory(process, (LPCVOID)0xBA18FC, &CVehiclePointer1, sizeof(CVehiclePointer1), 0);
   printf(\"CVehiclePointer1 = 0x%x\\n\", CVehiclePointer1);
   if(CVehiclePointer1 != NULL)
   {
      DWORD
         CVehicle; // Mutató a CVehicle pool-ra. Ha ez 0, akkor szintén nincs kocsiban.
      ReadProcessMemory(process, (LPCVOID)0xB6F980, &CVehicle, sizeof(CVehicle), 0); // Kiolvassuk a CVehicle pool értékét, és megkapjuk mennyi. Ez az \"alap\" címe a jelenlegi kocsinak. Minden kocsinak más.
      // Ehhez kell hozzáadni egy megadott értéket, ami a wikin kintvan és még azt kiolvasni vagy átírni a memóriában.
      if(CVehicle != NULL) // Mutató a CVehicle pool-ra. Ha ez 0, akkor szintén nincs kocsiban.
      {
         printf(\"CVehicle = 0x%x\\n\", CVehicle); //
         // Ide írhatod a fent definált funkciókat. Csak a JELENLEGI kocsira vonatkozik, amiben ülsz!
         SetVehicleMass(6500.0);
         SetVehicleTurnMass(6500.0);
         SetVehicleWheelSize(3.5);
      }
   }
   else // Ha gyalok van, akk csinálunk vmi szart..
   {
      // ReadProcessMemory(process, (LPCVOID)0xB6F5F0, &CPlayer, sizeof(CPlayer), 0); // Kiolvassuk a címet, és megkapjuk a CPlayer alap címet. Ezzel lehet manipulálni :D
   }
}
}
getch();
}

 
Szedd le a scriptet, meg is van kommentolva, hogy hogyan kell használni.
\"SetWheelSize.png\"
Átállítottam a kerék méretét :D
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Sheet - 2012. Január 04. - 17:41:49
using namespace std;
 :D
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Január 04. - 17:55:25
Idézetet írta: Sheet date=1325695309\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic
using namespace std;
 :D
 
Inkább printf, az átláthatóbb.
Rühelem ezt az std módszert.
A cin-t szoktam csak használni, a cout-ot soha..
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Sheet - 2012. Január 04. - 17:58:06
Idézetet írta: kurta999 date=1325696125\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic


using namespace std;
 :D
 
Inkább printf, az átláthatóbb.
Rühelem ezt az std módszert.
A cin-t szoktam csak használni, a cout-ot soha..
 
[/quote]
de a cin-nél is kell std, std::cin tudtommal
std::cout<<\"Add meg a neved: \";
std::cin>>neved;
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Január 04. - 17:59:47
Kell, de kivéve ekkor:
using namespace std;
De cin helyett is van getchar vagy scanf és még ezer egy megoldás.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Neoflyythe - 2012. Április 24. - 16:09:32
Nekem valamiér nem mûkszik tudnál segíteni?
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Gabor.. - 2012. Április 24. - 17:21:50
Idézetet írta: kurta999 date=1325696125\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic


using namespace std;
 :D
 
Inkább printf, az átláthatóbb.
Rühelem ezt az std módszert.
A cin-t szoktam csak használni, a cout-ot soha..
 
[/quote]
Én is így vagyok evvel,  printf-et szoktam használni. A Cout-os, meg az std-s módszert énis utálom. :D
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: TengeriMalac - 2012. Április 26. - 18:06:32
Lehet, hogy én vagyok a BOT, de a SA-MP memory address-eket honnan szedjem elõ?
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Április 26. - 20:28:10
Magának a GTA SA-nak kellenek a memória címei.
http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29
Vagy MTA forráskód.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Game94 - 2012. Április 28. - 12:48:08
És ha én pl a átállítom a kerék méretét nagyobbra, akkor azt csak én látom, vagy a többiek is?
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Április 28. - 12:51:57
Csak te.
Ha ilyen sérülést állítasz (kivéve a hátsó ajtók), meg lámpákat, azt elvileg fogják a többiek is látni mivel az bevan szinkronizálva.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: Game94 - 2012. Április 28. - 13:13:05
Szóval akkor amelyik memóriacímeket használja a sa:mp, ha azokat módosítom akkor azokat mindenki látja?
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kadaradam - 2012. Április 28. - 14:19:21
Megpróbálom elkezdeni a c++-t.
Valaki el tudná mondani,hogy hogy kell ezt mûködõképes pluginná alakítani?
Létrehozok egy projectet.Kiválasztom a c++-os cuccot,elnevezem, mögé írom,hogy .cpp.Beillesztem a kódot.De ezt írja a samp:
 
[14:13:23]   Plugin does not conform to architecture.
[14:13:23]   Failed.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Április 28. - 14:29:18
Ezt nézd meg, hátha segít: http://forum.sa-mp.com/showthread.php?t=253436
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: krisk - 2012. Április 28. - 20:13:45
Nekem csak az kéne, hogy helyi memóriacímeket tudjak módosítani pluginból. Ezt ha valaki megcsinálná, örülnék, nem vagyok otthon a C++-ban.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: kurta999 - 2012. Április 28. - 20:45:02
Ezzel csak az a baj, hogy ehhez a játékosnak is kéne egy kliens, ami fogadja az adatokat és akkor mindent meglehetne így oldani.
Szerverrel elküldenél neki valamit és azt a kliens végrehajtaná.
Itt viszont az a probléma, hogy akinek nincs meg a kliens, annak ez nem menne.
Cím: Alap memória hack GTA SA-hoz. (CVehicle+CPlayer)
Írta: krisk - 2012. Április 28. - 21:05:03
Idézetet írta: kurta999 date=1335638702\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6723\" data-ipsquote-contentclass=\"forums_Topic
Ezzel csak az a baj, hogy ehhez a játékosnak is kéne egy kliens, ami fogadja az adatokat és akkor mindent meglehetne így oldani.
Szerverrel elküldenél neki valamit és azt a kliens végrehajtaná.
Itt viszont az a probléma, hogy akinek nincs meg a kliens, annak ez nem menne.
 
Nekem elég csak az, hogy a szerver helyi gépén tudjon módosítani. Semmilyen kártékonyságot nem akarok vele végezni.