[Alg] Variablen uitlezen van een spel.

Pagina: 1
Acties:

  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Hoi allemaal.

Ik wil net als een Trainer voor een spel (voor veel geld, eeuwig leven etc) wil het geheugen van Street Legal: Redline uitlezen.. Om te kijken of het mogelijk is om er een Multiplayer Game van te maken.. maar ik wil graag weten hoe kan ik het geheugen uitlezen, en de posities van bijvoorbeeld de auto's opvragen..

Het liefst zou ik dit in VB 6/.Net willen doen, en mocht er nog iemand zijn die helemaal gek van Street Legal is en me zou willen helpen, graag :)

--edit--

Dit is absoluut geen script request.

Ik zou alleen graag willen weten hoe je het voor elkaar kan krijgen het geheugen door te spitten die een spel gebruikt.
Ik weet wel hoe ik de handle etc van de window op kan vragen, maar ik heb geen idee hoe kan weten welke data er wordt gebruikt door het spel..

MTA (Multi theft auto) heeft dit ook voor elkaar gekregen, en misschien wilt iemand mij helpen uitleggen hoe dat ongeveer in zijn werking gaat..

[ Voor 32% gewijzigd door El_Quedro op 22-03-2004 14:47 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik mag wel hopen dat we het tijdperk van zomaar het geheugen van andere programma's uitlezen en beschrijven wel gepasseerd zijn na DOS :P

Maar ik mis een aantal puntjes uit de quickstart. Loop die nog eens even na... Dit lijkt namelijk behoorlijk veel op een script-request, en daar zijn we hier niet zo'n fan van ;)

[ Voor 3% gewijzigd door drm op 22-03-2004 14:43 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

drm schreef op 22 maart 2004 @ 14:43:
Ik mag wel hopen dat we het tijdperk van zomaar het geheugen van andere programma's uitlezen en beschrijven wel gepasseerd zijn na DOS :P
Er zijn tegenwoordig anders nog een heleboel trainers en loaders te vinden die precies doen wat de TS wilt, dus het tijdperk zijn we echt nog niet voorbij.

Verwijderd

8)7 8)7

[ Voor 76% gewijzigd door Verwijderd op 22-03-2004 15:35 ]


  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Ik heb in VB.Net gevonden dat je het geheugen kunt uitlezen met een Process() Object.
Hier kan je een StreamReader/StreamWriter aan koppelen.. Ik ga even kijken of ik het werkt..

De bedoeling is niet dat het uiteindelijk een trainer gaat worden, maar een Trainer doet in principe hetzelfde :Y)

Dat werkt dus niet.

edit:

Rapt0r, haha, alles goed?
Ik weet ook niet alles hoor :)

[ Voor 17% gewijzigd door El_Quedro op 22-03-2004 15:59 ]


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
het gemakkelijkste is om eerst eens te beginnen met een progje als artmoney, waarmee je de waarden die je zoekt kan vinden door middel van het vergelijken van de verschillen in het geheugen tussen 2 of meer states van het spel.

overigens zou ik er niet op rekenen dat je met dit soort gepeek en gepoke even een multiplayer versie van een spel maakt. mta is voor een belangrijk deel gemaakt op basis van reeds in het spel aanwezige (maar nooit afgemaakte) mp-support in gta.

  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

Topicstarter
Genoil schreef op 22 maart 2004 @ 15:45:
het gemakkelijkste is om eerst eens te beginnen met een progje als artmoney, waarmee je de waarden die je zoekt kan vinden door middel van het vergelijken van de verschillen in het geheugen tussen 2 of meer states van het spel.

overigens zou ik er niet op rekenen dat je met dit soort gepeek en gepoke even een multiplayer versie van een spel maakt. mta is voor een belangrijk deel gemaakt op basis van reeds in het spel aanwezige (maar nooit afgemaakte) mp-support in gta.
Dit is een post waar ik wat aan heb, ik wil ook eerst onderzoeken of het ook daadwerkelijk mogelijk is, ik heb totaal geen ervaring met het uitlezen van andere draaiende programma's, dus ik weet ook niet precies wat me te wachten staat.

Weet iemand een functie of functies waarmee ik het geheugen goed kan uitlezen?

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 20-05 00:48

ZaZ

Tweakers abonnee

code:
1
2
3
4
5
6
7
8
9
10
hProcess = GetCurrentProcess;
if (!hProcess) return 0;

if (VirtualProtectEx(hProcess, lpOffset, dwSize, PAGE_EXECUTE_READWRITE, dwActualWrite)) {
  CopyMemory(lpOffset, pData, dwSize);
  FlushInstructionCache(hProcess, lpOffset, dwSize);
} else {
  if (!WriteProcessMemory(hProcess, lpOffset, pData, dwSize, dwActualWrite)) return 0;
}
return 1;


edit:
dit is om te schrijven btw , met wat fantasie en research moet lezen dan ook een eitje zijn ;)

[ Voor 13% gewijzigd door ZaZ op 22-03-2004 16:06 ]

Lekker op de bank


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 22 maart 2004 @ 15:30:
[...]

Er zijn tegenwoordig anders nog een heleboel trainers en loaders te vinden die precies doen wat de TS wilt, dus het tijdperk zijn we echt nog niet voorbij.
De methode is echter wel een tikkeltje anders, waar drm op stuurt :)

In de tijd van de C-64 kon je een programma inladen, en vervolgens met 3 POKE's de assemblerinstructie die je levens met 1 vermindere omeditten tot NOP's alvorens het te runnen :) Sinds 1990 of zo heeft *iedere* CPU echter een MMU (Memory Management Unit) aan boord, die ervoor zorgt dat proces A onmogelijk al of niet per ongeluk in het geheugen van proces B kan komen. Op het moment dat dat wel gebeurt krijgt het stoute proces een "je mag hier niet lezen/schrijven" exception voor z'n kiezen, aka "Access Violation" :)

Professionele website nodig?


  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

Dus je moet ervoor zorgen dat jouw trainer het process wat je uit wilt lezen opstart, dan heb je wel toegang tot de Address en Data space van het programma. Je kunt natuurlijk ook het stukje code van ZaZ gebruiken om jouw code in die van Redline racer te injecteren ;)

Tip: Zoek eens naar het boek "Applications for Windows", Jeffrey Richter. Daar wordt mooi beschreven hoe je bepaalde functies kunt hooken etc.

Tevens zou ik het programma eens draaien in een debugger, kun je beetje uitvogelen hoe het werkt, ik hoop dat het spel niet beveiligd is daartegen :P

[ Voor 26% gewijzigd door AaroN op 22-03-2004 17:01 ]

JayGTeam (213177)


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 21:11
En dat is waar programma's als SoftICE om de hoek komen kijken. SoftICE draait op een niveau dat het instaat is de kernel van windows zelfs te pauzeren en te debuggen. Daar kun je dus in ieder geval geheugen uitlezen van processen.

Misschien kun je gewoon eens een trainer(-maker) disassemblen om te kijken wat er precies gedaan wordt.

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Gelukkig kun je daar ook gewoon ReadProcessMemory () en WriteProcessMemory () voor gebruiken, ipv heel ingewikkeld in kernelmode te debuggen :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1