Diskuze: Praca z memory

C# .NET .NET (C# a Visual Basic) Praca z memory American English version English version

Avatar
Neaktivní uživatel:

Zdravím ako by siel dumpovat vsetok string z procesu? respektive vyhlavanie z jeho pamete podla dlzky bloku a ukladat text do suboru ale to te uz nepodsttne, skor mi ide o efektivne hladanie retazca v procese.

Odpovědět 3.4.2014 19:46
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

winapi funkce ReadProcessMemory()
http://msdn.microsoft.com/…top/ms680553(v=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.

Nahoru Odpovědět  +1 3.4.2014 20:08
:)
Avatar
Neaktivní uživatel:

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.

Nahoru Odpovědět 3.4.2014 21:13
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

Tak pak staci pamet projet od zacatku do konce a najit ten shodny zacatek stringu.

Nahoru Odpovědět  -1 3.4.2014 21:43
:)
Avatar
Neaktivní uživatel:

neznate dobrej algoritmus nato?
(u cheat engine je to fakt rychle).

Nahoru Odpovědět 3.4.2014 21:52
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek (Satik):

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...

Nahoru Odpovědět 3.4.2014 22:20
:)
Avatar
coells
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
coells:

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ů.

 
Nahoru Odpovědět 3.4.2014 22:39
Avatar
Neaktivní uživatel:

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.

Nahoru Odpovědět 4.4.2014 6:55
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.