SendMessage i IPC problemi

SendMessage i IPC problemi

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ubijam se vec dva dana, i nikako da mi uspe...

Pravim DLL koji ce biti ucitavan u raznim aplikacijama (bolje receno injektovan preko CreateRemoteThread).
Osim toga, potrebno mi je da napravim i monitor-aplikaciju, kojoj ce DLL da se periodicno javlja.

Ubih se oko IPC-a i sendmessage, ali nikako da uspostavim komunikaciju.
Sve sto moze da se nadje na netu podrazumeva neke komponente, ali u DLL-u ne mogu da koristim nista od VCL-a, tako da moram da resavam slucaj na tezi nacin.

Jel radio iko ovako nesto i moze li iko da mi objasni kako ovo treba uraditi?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

SendMessage bi trebalo lepo da radi. Uz pomoc FindWindow funckije ili na neki drugi nacin pronadjes handle prozora monitor-aplikacije. Kad ga budes imao jednostavno posaljes neku custom poruku (WM_USER + neki broj) i u parametrima mozes poslati bilo sta (oba parametra su velicine 4 bajta pa bez problema mozes da posaljes pointer na bilo koji tip podatka u bilo kojem parametru).

Sad je malo kasno pa sam mozda pogresno razmisljao, ali mi se cini kao da ovo moze lepo da radi.

Podatke mozes da prenosis i na druge nacine... recimo, koristeci globalne atome, mapped files...

Kad bi malo bolje opisao koliko cesto i kakve informacije treba da se prenose, mozda bi smislili nesto bolje od SendMessage.



offline
  • Tatic 
  • Novi MyCity građanin
  • Pridružio: 04 Nov 2006
  • Poruke: 1

Nekontam. Ako zelis da usostavis komunikciju izmedju dve aplikacije to ti je najlakse uraditi sa sa WM_COPYDATA. primjere mozes naci na torry.net i delphi.about.com. sa ovim mozes slati stringove, liste, slike, tonove, sve

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

@Tatic
Nisu klasicne aplikacije u pitanju, rec je o hookovima.
Pravim system-wide hook koji treba monitoring aplikaciji da salje podatke o raznim desavanjima.
Gde god sam do sada gledao, ovakve stvari su uvek resavane preko IPC-a, pa pretpostavljam da postoji valjan razlog za to.

Uskoro se ponovo vracam resavanju ovog problema, pa cu da javim kako napreduje.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Pogresno si postavio problem. Ne moze nesto da se javlja monitoring aplikaciji, nego monitoring aplikacija treba da posalje zahtev.
Svaki tvoj dll koji nesto radi, mora da se registruje unutar monitoring aplikacije na neki nacin (obicno jedan TList ili tvoj naslednik iste). Posto znas koja je monitoring aplikacija, i uvek je jedna, nije problem da znas i handle do iste.
Nadam se da ti ovo daje malo svetla u kom pravcu ici.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Skontao sam gde je problem, i ispalo je da je greska totalno leva - WinAPI je case-sensitive, i ja to nisam znao...

@beli0135
Svi primeri koje sam video rade na nacin na koji sam i ja hteo.
IPC ima stack organizaciju, pa poruke koje salju dll-ovi ne mogu biti ispustene. Ako bih radio prozivku kako ti predlazes, morao bih da se ja u dll-ovima pobrinem da poruke sacekaju prozivku.

Aplikacije hookuje par funkcija kernel API-ja, na principu na kojem antivirus programi prate desavanja na sistemu, s tim sto ja hocu da presretnem svega 3 APi funkcije, dok recimo KAV presrece nekih desetak.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Aha, kapiram. Pa da, bas tako kao sto si ti rekao. U pocetku sam pogresno shvatio sta hoces.

Ko je trenutno na forumu
 

Ukupno su 929 korisnika na forumu :: 29 registrovanih, 1 sakriven i 899 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 9k38, Bubi, coaa, Dorcolac, Drugsparrow, icemilos, Jiu Kellah, komsija1, Konda, Lester Freamon, ljubo70, MDrasko, Mi lao shu, mikidragi, Milan1996, mnn2, mrav pesadinac, nebkv, nelezele, Penzula, PrincipL, RAKITNICA, RD84, Sagotolio, Trimi68, Trpe Grozni, vladas87, zlaya011, Zorge