Diskuze: Praca z memory
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
winapi funkce ReadProcessMemory()
http://msdn.microsoft.com/…=vs.85).aspx
Tím dostaneš část paměti procesu jako pole bajtů.
Co kde je string bez disasemblování moc nepoznáš, ale pokud ten string
můžeš měnit nebo ho znáš, tak jeho adresu můžeš zkusit najít třeba
přes nějaký memory scanner (Cheat engine apod.) a doufat, že bude při
každém spuštění na stejné adrese.
Jinak ti nezbyde nic jiného než paměť skenovat a nějakým odhadem (třeba podle zvýšeného výskytu bajtů, které znamenají nějaký znak) to odhadovat.
Ne urcite to nema stejnou adresu coz je skoda, ale treba by pomohlo kdyby som prehledal celou jeho pamet az nato ze nevim ani co vlastne je zapotreba skenovat , cez cheat engine sa tam dostat da preto verim ze to kodom urcite pojde, problem je v tom ze sa tam ten string dynamicky meni ale zaciatok retazca je rovnaky tak staci najst ten spravny pointer a zistit jeho dlzku.
Tak pak staci pamet projet od zacatku do konce a najit ten shodny zacatek stringu.
neznate dobrej algoritmus nato?
(u cheat engine je to fakt rychle).
Na tom není nic k vymýšlení, prostě naskenuješ (stačí postupně) celou pamět procesu a tu postupně procházíš, jako když hledáš string ve větším stringu...
pokud hledáš výskyt jediného řetězce
http://en.wikipedia.org/…ng_algorithm
pokud hledáš výskyt více řetězců
http://en.wikipedia.org/…ng_algorithm
Navíc pro textové retězce musíš použít korektní encoding, protože v paměti bude text uložený jako pole bytů.
to ano, ale odkial budem vediet kolko ma jeho pamet vekost? na ktoru pamat sa mam zamerat na private alebo aku? (neuškodil by maly priklad) Ďakujem.
Zobrazeno 8 zpráv z 8.