9.1 KiB
Bedrogsmasjien
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kontroleer die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling van eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Bedrogsmasjien is 'n nuttige program om te vind waar belangrike waardes binne die geheue van 'n hardlopende spel gestoor word en om hulle te verander.
Wanneer jy dit aflaai en hardloop, word jy voorgelê met 'n handleiding oor hoe om die instrument te gebruik. As jy wil leer hoe om die instrument te gebruik, word dit sterk aanbeveel om dit te voltooi.
Wat soek jy?
Hierdie instrument is baie nuttig om te vind waar 'n sekere waarde (gewoonlik 'n nommer) gestoor word in die geheue van 'n program.
Gewoonlik word getalle in 4 byte-vorm gestoor, maar jy kan hulle ook in dubbel of float-formate vind, of jy wil dalk vir iets anders as 'n nommer soek. Om daardie rede moet jy seker maak jy kies wat jy wil soek vir:
Jy kan ook verskillende tipes soektogte aandui:
Jy kan ook die blokkie aankruis om die spel te stop terwyl jy die geheue skandeer:
Snelsleutels
In Edit --> Settings --> Hotkeys kan jy verskillende snelsleutels instel vir verskillende doeleindes soos stopmaak van die spel (wat baie nuttig is as jy op 'n stadium die geheue wil skandeer). Ander opsies is beskikbaar:
Waarde wysig
Sodra jy gevind het waar die waarde wat jy soek (meer hieroor in die volgende stappe) is, kan jy dit verander deur daarop te dubbelklik, en dan die waarde daarvan dubbelklik:
En uiteindelik die blokkie merk om die wysiging in die geheue te laat plaasvind:
Die verandering aan die geheue sal onmiddellik toegepas word (let daarop dat totdat die spel hierdie waarde nie weer gebruik nie, sal die waarde nie in die spel opgedateer word nie).
Soek die waarde
Dus, ons gaan aanneem dat daar 'n belangrike waarde is (soos die lewe van jou gebruiker) wat jy wil verbeter, en jy is op soek na hierdie waarde in die geheue)
Deur 'n bekende verandering
As jy op soek is na die waarde 100, voer 'n skandering uit op soek na daardie waarde en jy vind baie ooreenkomste:
Dan doen jy iets sodat die waarde verander, en jy stop die spel en voer 'n volgende skandering uit:
Bedrogsmasjien sal soek na die waardes wat van 100 na die nuwe waarde gegaan het. Geluk, jy het die adres van die waarde wat jy gesoek het, gevind, jy kan dit nou wysig.
As jy nog verskeie waardes het, doen iets om daardie waarde weer te wysig, en voer nog 'n "volgende skandering" uit om die adresse te filter.
Onbekende Waarde, bekende verandering
In die scenario weet jy nie die waarde nie, maar jy weet hoe om dit te verander (en selfs die waarde van die verandering) jy kan na jou nommer soek.
Begin dus deur 'n skandering van die tipe "Onbekende aanvanklike waarde" uit te voer:
Maak dan die waarde verander, dui aan hoe die waarde verander het (in my geval is dit met 1 verminder) en voer 'n volgende skandering uit:
Jy sal al die waardes te sien kry wat op die gekose manier gewysig is:
Sodra jy jou waarde gevind het, kan jy dit wysig.
Let daarop dat daar 'n baie moontlike veranderinge is en jy kan hierdie stappe soveel as jy wil doen om die resultate te filter:
Lukrake Geheue-adres - Vind die kode
Tot dusver het ons geleer hoe om 'n adres te vind wat 'n waarde stoor, maar dit is baie waarskynlik dat in verskillende uitvoerings van die spel daardie adres in verskillende plekke van die geheue is. Laat ons uitsorteer hoe om altyd daardie adres te vind.
Deur van een van die genoemde truuks gebruik te maak, vind die adres waar jou huidige spel die belangrike waarde stoor. Dan (stop die spel as jy wil) doen 'n regterklik op die gevonde adres en kies "Vind uit wat hierdie adres aanspreek" of "Vind uit wat na hierdie adres skryf":
Die eerste opsie is nuttig om te weet watter dele van die kode hierdie adres gebruik (wat nuttig is vir meer dinge soos weet waar jy die kode kan wysig van die spel).
Die tweede opsie is meer spesifiek, en sal meer nuttig wees in hierdie geval aangesien ons belangstel om te weet van waar hierdie waarde geskryf word.
Sodra jy een van daardie opsies gekies het, sal die foutvinder aan die program geheg word en 'n nuwe leë venster sal verskyn. Speel nou die spel en verander daardie waarde (sonder om die spel te herlaai). Die venster behoort gevul te word met die adres wat die waarde wysig:
Nou dat jy die adres gevind het wat die waarde wysig, kan jy die kode na willekeur wysig (Bedrogsmasjien laat jou toe om dit vinnig vir NOPs te wysig):
Sodoende kan jy dit nou wysig sodat die kode nie jou nommer beïnvloed nie, of altyd op 'n positiewe manier beïnvloed.
Lukraak Geheue-Adres - Vind die wyser
Volg die vorige stappe om te vind waar die waarde wat jy belangstel is. Gebruik dan "Vind uit wat na hierdie adres skryf" om uit te vind watter adres hierdie waarde skryf en dubbelklik daarop om die disassemblage-aansig te kry:
Voer dan 'n nuwe skandering uit op soek na die hekswaarde tussen "[]" (die waarde van $edx in hierdie geval):
(As verskeie verskyn, het jy gewoonlik die een met die kleinste adres nodig)
Nou het ons die wysers gevind wat die waarde wat ons belangstel, sal wysig.
Klik op "Voeg Adres Handmatig By":
Klik nou op die "Wysers" aanvinkblokkie en voeg die gevonde adres by in die teksblokkie (in hierdie scenario was die gevonde adres in die vorige beeld "Tutorial-i386.exe"+2426B0):
(Merk op hoe die eerste "Adres" outomaties ingevul word vanaf die wyseradres wat jy invoer)
Klik OK en 'n nuwe wyser sal geskep word:
Nou, elke keer as jy daardie waarde wysig, is jy die belangrike waarde aan die wysig, selfs al is die geheue-adres waar die waarde is, anders.
Kode-inspuiting
Kode-inspuiting is 'n tegniek waar jy 'n stuk kode in die teikenproses inspuit, en dan die uitvoering van die kode omlei om deur jou eie geskrewe kode te gaan (soos om jou punte te gee in plaas daarvan om dit af te trek).
Stel jou het byvoorbeeld die adres gevind wat 1 van die lewe van jou speler aftrek:
Klik op Wys disassembler om die ontsamelingskode te kry.
Klik dan CTRL+a om die Auto assembleer-venster aan te roep en kies Sjabloon --> Kode-inspuiting
Vul die adres van die instruksie wat jy wil wysig in (dit word gewoonlik outomaties ingevul):
'n Sjabloon sal gegenereer word:
Voeg dus jou nuwe samestellingskode in die "newmem" afdeling in en verwyder die oorspronklike kode uit die "originalcode" as jy nie wil hê dat dit uitgevoer word**.** In hierdie voorbeeld sal die ingespuite kode 2 punte byvoeg in plaas van 1 af te trek:
Klik op uitvoer ensovoorts en jou kode behoort in die program ingespuit te word wat die gedrag van die funksionaliteit verander!
Verwysings
- Cheat Engine handleiding, voltooi dit om te leer hoe om met Cheat Engine te begin