Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Cheat Engine - Pointers

Zdravím, myslím si, že v nadpise som sa už vyjadril. Ako nájdem statickú adresu od dynamickej? V nejakej hre mám napr. 1000$, lenže po každej novej zapnutej hre sa adresa, v ktorej je hodnota 1 000$ mení. Ako nájdem statickú adresu, ktorá má pod sebou túto "dynamickú"? Skúšal som rôzne tutoriály na internete, aj som zhliadol viac ako 50 videí na youtube, a stále mi to nejako nechce fungovať. Skúšal som to cez pointer map, nejde, skúsil som to cet memory viewer, nejde. Tak ja už fakt neviem.

Předmět Autor Datum
Vidím, že nikto nevie poradiť. Takže dáme attempt 2: (napísané riadne podrobne) Hrám hru, konkrétne…
MrGoldon 06.08.2020 01:07
MrGoldon
Tohle na dálku asi nikdo nedá, zvlášť když návody jsou obecné. To by tu hru musel někdo mít a zkouše…
icepower32 06.08.2020 09:08
icepower32
Adresa odkazuje na presne, konkretni misto v pameti. Pointer odkazuje na objekt v dane aplikaci. Kdy…
Dwane Dibbley 06.08.2020 10:00
Dwane Dibbley
Presne tak isto som to aj robil, ale vždy keď dám rescan, a zadám tam novú adresu, tak mi to nenájde…
MrGoldon 06.08.2020 15:48
MrGoldon
A zkousel jsi to na nejake primitivni hre? Nejlip vzit hru primo z nejakeho tutorialu a zkusit to na…
Dwane Dibbley 06.08.2020 16:36
Dwane Dibbley
Môj postup: 1. Otvorím si PCSX2 a CE 2. Načítam si hru (Forbidden Siren 2) 3. Nájdem si tú hodnotu,…
MrGoldon 06.08.2020 16:59
MrGoldon
To je ale obecny postup pro nejakou aplikaci. Tvuj problem je emulator. Emulator vytvori virtualni s…
Dwane Dibbley 06.08.2020 17:46
Dwane Dibbley
Jasné, chápem. Skúšal som teda hľadať no a bohužiaľ som nič nenašiel. Ale našiel som jeden spôsob, a… poslední
MrGoldon 06.08.2020 21:04
MrGoldon

Vidím, že nikto nevie poradiť. Takže dáme attempt 2: (napísané riadne podrobne)

Hrám hru, konkrétne Forbidden Siren 2 na emulátore PCSX2 (Playstation 2 Emulator). Potrebujem aby mi niekto vysvetlil, ako fungujú Pointers, v preklade teda ukazovatele. Potrebujem urobiť, ukazovateľ bude automaticky hľadať danú hodnotu.

Problém tejto hry je ten, že adresy v CE (CE = Skratka pre Cheat Engine) sa po každom novom zapnutí hry menia, Takže príklad, raz mám adresu: 0C3EE584, a po reštarte hry mám zasa 4F6R88A9 (je to len príklad). No a mne sa jednoducho nechce stále hľadať znovu túto hodnotu (teda value), pretože v hre nie je nikde ukázaná ako číslo, čiže túto hodnotu musím hľadať cez increase a decrease. Niekedy mi trvá aj cez 9 hodín, než túto hodnotu nájdem, preto si to chcem zjednodušiť cez tie ukazovatele (teda Pointers). Môžete mi niekto prosím vysvetliť, ako sa s nimi pracuje a ako fungujú? Po pravde, našiel som zopár videí na youtube, ale u mňa je problém ten, že môj opcode je "mov [ecx],edx" a u videí, ktoré som zhliadol sú na konci aj nejaké čísla, ktoré sa zadávajú do ukazovaľov (Pointers) ako offset. Lenže ja tento offset nemám ako získať, keďže môj opcode neobsahuje na konci žiadne číslo/a. Skúšal som na YT zhliadnuť rôzne videá, hocijako som písal do vyhľadávača, no vždy mi vyskakujú len tie isté videá, a nič nové. Takže už si fakt neviem rady.

Adresa odkazuje na presne, konkretni misto v pameti. Pointer odkazuje na objekt v dane aplikaci. Kdyz aplikaci ukoncis a spustiz znova, naladuje se do pameti "nahodne" (cili jinak) nez predtim, takze adresa z minula je ti uz k nicemu. Pointer ale pracuje se "strukturou" aplikace takze by te vzdy mel dovest na stejne misto (odkazuje na stejny objekt, pokud nebyl kod aplikace zmenen napriklad patchem). Nikdy jsem to nezkousel na emulatoru konzole, takze netusim jaky mas zadrhel ani jestli u toho pointer bude fungovat.

https://fearlessrevolution.com/viewtopic.php?t=8982
https://www.youtube.com/watch?v=nQ2F2iW80Fk

A zkousel jsi to na nejake primitivni hre? Nejlip vzit hru primo z nejakeho tutorialu a zkusit to na ni, jestli to vubec delas dobre. Je mozne ze prave emulace znemoznuje vyuziti pointeru (emulator si vytvari "pamet v pameti"). Takze pokud to vubec lze proves, pravdepodobne budes muset nejdriv najit offset na zacatek pameti emulatoru a pak z neho pokracovat. Spis nez obecne tutorialy pro CE bych zacal prohledavat primo kombinaci CE+emulator.

Môj postup:

1. Otvorím si PCSX2 a CE
2. Načítam si hru (Forbidden Siren 2)
3. Nájdem si tú hodnotu, ku ktorej chcem nájsť "Base Address", teda statickú (základnú?) adresu.
4. Hodnotu si pridám do poľa nižšie v CE (do toho okienka, čo je naspodu programu)
5. Kliknem pravým na adresu, a zvolím "Pointer scan for this address"
6. Všetko nechám tak ako je základne nastavené (nemením nič), a uložím to ako 1.PTR
7. Po načítaní mi to vyhodí nejaké hodnoty, tak reštartujem hru, aby sa adresa zmenila
8. Po zmenení adresy si novú adresu skopírujem, a dám Rescan s novou adresou
9. No a tu to vždy končí, totiž nikdy mi to nič nenájde...

Edit: Postupoval som podľa tohoto videa => https://youtu.be/We3iuurMSVM

To je ale obecny postup pro nejakou aplikaci. Tvuj problem je emulator. Emulator vytvori virtualni stroj ve kterem nasledne spusti aplikaci. Takze nehledas hodnotu v dane aplikaci, ale v emulatoru, proto jsem ti poradil radeji hledat CE tutorialy pro konkretni emulator. Obecny postup ti bude k nicemu, nebo ho vyuzijes az nakonec, pote co poresis jak pristupovat k aplikaci v emulatoru.

Jasné, chápem. Skúšal som teda hľadať no a bohužiaľ som nič nenašiel. Ale našiel som jeden spôsob, ako zistiť danú adresu "rýchlejšie".

Zapíšem si niekam to "mov [ecx],edx" (nachádza sa v memory viewer-u), no a potom už len dám "Search -> Find assembly code", a tam zadám "mov [ecx],edx".

Mám ale ešte nejaké otázky:

1. Dá sa nejako v memory viewer-u uložiť konkrétny opcode? Že napr. ten svoj opcode (mov [ecx],edx) si uložím, a potom ho len otvorím a načíta sa mi?
2. Môžete mi poslať nejaký návod (najlepšie aby bol v jazyku CZ/SK) na memory viewer? Skrátka aby som pochopil ako funguje, čo je to vlastne ten opcode, atď... aby som sa v tom vedel orientovať
3. V "Find assembly code" som si všimol, že sú tam aj nejaké znaky (https://ctrlv.sk/YHCa) ako sa používajú?
4. Dá sa nejako rýchlejšie nájsť nejaká hodnota, než len hľadať cez čísla prípadne decrease / increase? Napr. cez memory viewer?
5. Dajú sa v memory viewer-u zobraziť len hodnoty, u ktorých prebieha nejaká zmena? Napr. keď začnem šprintovať atď... tak to automaticky nájde danú hodnotu a vypíše mi ju

Zpět do poradny Odpovědět na původní otázku Nahoru