Grzebanie w pamięci procesu

0

:-/
W Turbo Pascalu odwołanie Mem[0000:$00AB]:=10; pozwalało na umieszczenie wartości 10h w konkretnej komórce pamięci operacyjnej. Jak to zrobić w Delphi?
Chodzi mi konkretnie o przypadek: Tworzymy jeden program który po uruchomieniu do swojej zmiennej (var zmienna:byte) wczytuje np. 0Ah i sobie chodzi gdzieś w tle. Teraz my tworzymy program który zaczepi się o proces tego poprzedniego i zmieni mu wartość w komórce pamięci (zmienna) np. na FFh. To dosyć ciekawe zagadnienie a nigdzie nie mogę znaleźć odpowiedzi.

0

Obawiam się stary, że nikt ci nie pomoże. Też się nad tym kiedyś zastanawiałem...

// hahaha - a to dobre .. odpowiadasz sam na swoje posty - [sciana] [rotfl] [rotfl] - detox

// lolek tygodnia [soczek] - ŁF

0

każdy porżądny system operacyjny (np. Linux, Windows NT) powinien zabraniać takie praktyki (tj. dostęp do pamięci) bo jest to niebezpieczne.

PS. No cóz, może niektórzy lubią sobie odpowiadać...

0

Gościu sypnął dobre pytanie z tymi procesami i pamięcią! Można by jakiegoś game trainerka zmontować!!! Link podany przez typa powyżej jest zawarty (jego treść) w helpie Delphi i g**no można z niego wywnioskować a raczej jestem pojętnym chłopcem. Znajdzie się tu ktoś kto podejmie uczciwie temat?! Może ten magik z portalu???
PS: O co kurde chodzi z tym odpowiadaniem?

0

za cholerę nie mogę znaleźć, ale wiem że gdzieś na 4p jest napisane jak grzebać w pamięci cudzego procesu. oblukaj dokładnie faq, gotowce i artykuły.

g**no można z niego wywnioskować a raczej jestem pojętnym chłopcem.

chyba jednak nie jesteś - tam masz podane niemal na tacy
BOOL WriteProcessMemory(
HANDLE hProcess,
LPVOID lpBaseAddress,
LPCVOID lpBuffer,
SIZE_T nSize,
SIZE_T* lpNumberOfBytesWritten
);
hProcess - uchwyt do procesu, po którym chcesz mazać
lpBaseAddress - adres pamięci w tym procesie, do którego chcesz zapisać nSize bajtów z lpBuffer
lpNumberOfBytesWritten - ile bajtów zostało faktycznie zapisanych

no i jeszcze twój proces musi mieć prawa do mazania po cudzej pamięci (PROCESS_VM_WRITE i PROCESS_VM_OPERATION).

0

Stary, przetłumaczyć sobie na polski to ja też potrafię, ale nie o to chodzi. A jak dla Ciebie wszystko jest takie jasne to podaj przykładzik jak tam powstawiać sensownie zmienne (i tą jedną stałą) i je sprytnie zadeklarować. Próbowałem zrobić procedurkę odczytu ale funkcja ReadProcess... zwraca mi false (i nie wiem czy dlatego, że coś spieprzyłem czy dlatego że mi nie wolno tam grzebać). Teoretycznie odczytać mi to wolno zgodzę się że zapisać niekoniecznie...

Let's make game Trainer!!!

0

Aha! Mam pewien pomysł (teoria). Znalazłem na portalu jak wykonać program który wyświetla jakie procesy aktualnie chodzą w systemie (to jest OK) i ile zajmują pamięci (nie OK), zamiast ile to jaki obszar (od adresu - do adresu) i spróbować napisać program który grzebie w obrębie tej właśnie pamięci (ogólnie, nie w pamięci procesu), da radę?

PS: Był kiedyś taki program, nazywał się GameHack ale umarł...

1 użytkowników online, w tym zalogowanych: 0, gości: 1