Poslao: 07 Dec 2008 17:41
|
offline
- BugA
- Građanin
- Pridružio: 28 Sep 2007
- Poruke: 39
- Gde živiš: Bor, Srbija
|
U poslednjih par dana sam prekopao net uzduz i popreko, i vise ne znam ni sta da trazim. Evo objasnjenja sta mi je potrebno...
Recimo da imamo neki program (proces) koji ima vise "ekrana". Kad se program startuje, prikaze se pocetni ekran. Korisnik pritisne "enter", ucita se neka slika sa diska, i otvori se drugi ekran sa tom slikom... Ako mi tu sliku sad nadjemo na disku i promenimo je, u programu i dalje stoji stara slika jer je ona u memoriji, dok se ne ucita nova (program je sve vreme aktivan). Novu mozemo videti ako se vratimo jedan korak (ekran) nazad, pa ponovo napred na drugi ekran - prilikom ovog prelaska program ucitava sliku ponovo.
E sad, ono sto mene zanima, ako znam ID procesa, mogu da citam iz njegove memorije u da u nju pisem, kako da naknadno "okinem" ponovno ucitavanje slike, sto program radi prilikom prelaska sa prvog na drugi ekran (ili par "ekrana" ranije), a da ostanem tu gde jesam (na drugom ekranu)?
Isto ako je u pitanju broj koji se nalazi u memoriji procesa, program broj ucita i ispise, ja ga onda promenim u samoj memoriji, i kako onda da nalozim programu da ponovo ucita (izmenjeni) broj?
Koristio sam programe IDA i OllyDbg ne bih li nasao nesto u asembleru, ali obzirom da asembler tek upoznajem i znam tek neke osnovne stvari, nisam se bas usrecio. Preko WinAPIOverride32 ne znam sta tacno da trazim kad namestim da se prati izvrsavanje procesa, koristio sam i EasyHook 2.5 i ProcessMonitor, ali ista prica - puno podataka, a ja ne znam sta trazim.
Da li je ovo uopste moguce - nekako "usnimiti" sta se desava u programu u odredjenom trenutku, uhvatiti poziv odredjene procedure, pa kasnije to reprodukovati? Mislim, znam da sigurno jeste, ali koliko je komplikovano? Mora li se prckati po asembleru, ili je dovoljan WinAPI i njegove poruke, njihovo "hvatanje" (da bi znali sta nam treba) i kasnije ponovno slanje procesu (da ponovi ucitavanje)?
Znaci, u kodu imam proceduru za upis npr. broja na neku adresu memorije aktivnog procesa (nekog), kako da nakon toga procesu posaljem poruku da ponovo ucita taj broj u promenjivu gde on inace ide? Kao "izmena + refresh" promenljive
Svaka pomoc je dobrodosla, makar bile to i samo smernice na sta da obratim paznju, jer ne znam vise u kom smeru da idem - assembler, API, biblioteke (.dll), nesto trece...?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 07 Dec 2008 18:18
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Ako osim slike nemas niceg drugog na toj formi (nista bitno), onda mozes da u tom drugom programu izazoves pritiskanje dugmica Back pa onda Next, i time izazoves osvezavanje slike.
|
|
|
|
Poslao: 07 Dec 2008 18:34
|
offline
- BugA
- Građanin
- Pridružio: 28 Sep 2007
- Poruke: 39
- Gde živiš: Bor, Srbija
|
bobby ::Ako osim slike nemas niceg drugog na toj formi (nista bitno), onda mozes da u tom drugom programu izazoves pritiskanje dugmica Back pa onda Next, i time izazoves osvezavanje slike.
To je prvo sto mi je palo na pamet, ali je dosta neprakticno... Kod jednog vracanja i `ajde nekako, ali kad se treba vratiti unazad vise formi, nastaje problem - potrebno je vreme dok program ucita svaku formu, a ako se taster pritisne u medjuvremenu, on ga iskulira. Drugo, u zavisnosti od toga gde se kursor trenutno nalazi, zavisi i koje dugme treba pritisnuti da se ide napred/nazad kroz menije, nije uvek isto. I trece, morao bih da vidim za koje vreme mogu proslediti sledece "pritiskanje", jer ako se bas brzo ispritiskaju dugmici na tastaturi, program uhvati samo prvih par pritiskanja, a ostalo iskulira - bojim se da ce se to desiti i sa prosledjenim pritiskanjem, ako prosledim sve jedno za drugim bez pauze (ili nece?)
Nisam to zeleo na ovaj nacin, ali ako se ne nadje neko elegantnije resenje, ovo mi uvek stoji kao solucija, to bar nije problem da se napravi
|
|
|
|
Poslao: 07 Dec 2008 18:42
|
offline
- LittleHacker
- Ugledni građanin
- Pridružio: 13 Apr 2007
- Poruke: 452
- Gde živiš: Beograd
|
Ne verujem da ovo mozes da uradis pomocu Win API-a...
Ali neka se javi neko ko zna vise od mene o njemu...
Mozda neke biblioteke postoje...Hmmm...Ne znam...
Redak problem...
Zanimljivo...
|
|
|
|
Poslao: 07 Dec 2008 20:00
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Moze.
Treba da locira Canvas na kojem je slika, pa da sam natera Canvas da ucita drugu sliku.
|
|
|
|
Poslao: 07 Dec 2008 21:05
|
offline
- BugA
- Građanin
- Pridružio: 28 Sep 2007
- Poruke: 39
- Gde živiš: Bor, Srbija
|
Ja samo da napomenem da je u pitanju igra, dakle fullscreen DirectX aplikacija. Zato sam i pisao ono "prvi 'ekran', drugi 'ekran'", jer ne znam kako su uredjene te "pojave" unutar DirectX-a, to je meni koji igraca vodi kroz izbor opcija igre, a sad da li su i to neke vrste formi, da li je canvas slican onom obicnom, stvarno ne znam...?
|
|
|
|
Poslao: 07 Dec 2008 22:16
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Uh.
To jedino ako naleti Srki82, pa da ti nesto kaze o tome. On se razume u te graficke podsisteme.
|
|
|
|
Poslao: 07 Dec 2008 23:26
|
offline
- BugA
- Građanin
- Pridružio: 28 Sep 2007
- Poruke: 39
- Gde živiš: Bor, Srbija
|
Sad sam na kratko pricao sa Srkijem preko MSN-a... Izgleda da cu morati da gurnem nos ozbiljnije u assembler.
Ako nekom iskrsne neka ideja, ili ima pozamasnog iskustva sa assemblerom, a usput ima i nesto slobodnog vremena, slobodno neka se javi ovde
|
|
|
|