:) joo elikkä nyt ois tarkotus opetella vähän tota muistia lukemaan..
tiedän kyllä long, short, "0xf5e225" etc mut sit siel on taas asioita jotka on hämäriä mulle..
jollaki jtn linkkiä jota vois lueskella & opiskella :)
Minä nyt en ainakaan päässyt ihan jyvälle mitä tässä haetaan. Voisitko selventää? Mitä haluat lukea ja miksi?
//Osoite int osoite=0xf5e225; //tavumuttuja byte tavu; //luetaan tavu osoitteesta (0xf5e225) tavu = *osoite;
Grezin koodi ei toimi, kun ei ole osoite osoitinmuuttuja eikä byte-tyyppiäkään missään määritelty. Ajatus kyllä on oikein, mutta ehkä kysyjän kannalta olisi parempi lähteä liikkeelle jostain muusta kuin epämääräisestä tökkimisestä, joka suojatussa tilassa ja nykyjärjestelmillä herkästi kaataa ohjelman.
"Muistin lukeminen" on jo ongelmana niin huonosti määritelty, että eipä taida kysyjä edes tietää, mitä oikeasti haluaa tehdä. Kannattanee siis aloittaa selvittämällä perusasioita muistista ja sen hallinnasta.
siis tarkotin että readprocessmemory / writeprocessmemorya pääsis käyttämään..
/edit: jtn perustietoa kyllä löytyy, mutta ei niin hirveän paljon, haluisin sen takia tätä nyt vähän tiedustella :)
Jos kerran olet tuosta Windowsin funktiosta kiinnostunut, niin onko tuossa MS:n dokumentaatiossa jotain vikaa? Tuolla readprocessmemoryllä siis voit kopioida toisen prosessin muistia omalle prosessillesi varattuun puskuriin. Sinulla täytyy olla lukuoikeus toiseen prosessiin, lue tarkemmin http://msdn.microsoft.com/en-us/library/ms684880(VS.85).aspx
Metabolix kirjoitti:
Ajatus kyllä on oikein, mutta ehkä kysyjän kannalta olisi parempi lähteä liikkeelle jostain muusta kuin epämääräisestä tökkimisestä
Se olikin tarkoitettu pikaprovoksi, että Zutto vähän tarkentaisi mitä on kysymässä.
siinä funktiossa ei oo niin paljoa epäselvyyttä mutta lisätietoa
tästä pakettien/muistin lukemisen hallitsemista ajattelin tässä lähinnä
Vaikka FindWindowilla ja GetWindowThreadProcessId:llä hommaat haluamas prosessin PIDin, jonka jälkeen avaat kahvan prosessiin OpenProcessilla ja sitten luet tai kirjottelet mitä lystäät Read/WriteProcessMemorylla.
Deffi kirjoitti:
Vaikka FindWindowilla ja GetWindowThreadProcessId:llä hommaat haluamas prosessin PIDin, jonka jälkeen avaat kahvan prosessiin OpenProcessilla ja sitten luet tai kirjottelet mitä lystäät Read/WriteProcessMemorylla.
eise ongelma ole tuossakaan :P
haluan opiskella sitä miten paketit kulkee, miten lukea niitä viisaammin etc.
Millaisia pakettaja haluat lukea? Miten olet niitä aiemmin lukenut, jos nyt haluat lukea niitä viisaammin? Voitko antaa esimerkin tapauksesta, johon tarvitsisit näitä tietoja?
Minulle nyt ei ole vielä selvinnyt, että mitä aloittaja oikeasti haluaa tehdä.
Mitkä ihmeen paketit? O_o Eikö tässä muistista ollut alunperin kysymys?
Injektoit DLLn prosessiin joka kiinnostaa, ja sieltä käsin sitten teet kaiken tarvittavan. Esimerkiski richedit-boxien yms. lukeminen onnistuu käden käänteessä. Kun taas haluat siirtää datan omaan prosessiisi, pitää sun tutustua johonkin IPC-metodiin, esimerkiksi memory mapped fileseihin.
Itse olen koettanut kartoittaa perusasioita C:stä ja koneen muistista tuolla blogissani. En viitsi ihan suorilla linkeillä mainostaa, joten osoite löytyy profiilistani ;)
Monet teksteistä tosin on henkilökohtaisilla mielipiteillä väritettyjä (vaikka olen koettanut pitää faktat kasassa - kiitos muuten Metabolixille joka aikoinaan oikoi nipun virheitä), joten asenteita ei välttämättä kannata omaksua, pelkät tosiasiat. (Esim C ja OOP matsku teksti on vahvasti väritetty minun henkilökohtaisilla mielipiteilläni.)
Aihe on jo aika vanha, joten et voi enää vastata siihen.