Pokaż wyniki 1 do 7 z 7

Temat: czy majac adres zmiennej w pamieci da sie przekazac do niej wartosc???

  1. #1
    Zarejestrowany
    Aug 2009
    Postów
    236

    Domyślnie czy majac adres zmiennej w pamieci da sie przekazac do niej wartosc???

    witam
    chcialmbym zadac takie oto pytanie
    czy posiadajac adres jakiejkolwiek zmiennej uzywanej przez jakis program w pamieci, dalo bys sie przekazac do niej wartosc z poziomu c++ lub c? chodzi o to czy dało by się ustawic by wskaznij wskazywal na dane miejsce w pamieci?
    ewentualnie jakas wstawka w asemblerze
    Ostatnio edytowane przez matmat0123456789 : 11-03-2010 - 06:49

  2. #2
    Zarejestrowany
    Jan 2009
    Postów
    230

    Domyślnie

    pewnie ze mozna, np za pomoca win32

    Program antymiganie

    w tym akurat przypadku nie jest modyfikowana zmienna a kod programu, aczkolwiek znajac offset 32 bitowy mozna mofydikowac zmienne a nawet cala tablice.


  3. #3
    Zarejestrowany
    Aug 2009
    Postów
    236

    Domyślnie

    a znajac konkretny adrez zmiennej w pamieci?

  4. #4
    Zarejestrowany
    Jan 2009
    Postów
    230

    Domyślnie

    jedynie offset pamieci procesu, mozesz go pobrac np taka instrukcja w jezyku c ( zalozny ze to proces do ktorego chcesz sie odwolywac ):

    int zmienna;

    printf("%p",&zmienna);

    pozniej jesli offset sie nie zmieni mozesz sie do niego odwolywac.

    zmienne lokalne funkcji leza na sekcji stosu ( stack ), dynamiczne w pamieci sterty ( heap ) a globalne zazwyczaj w odpowiedniej sekcji pamieci ( data ).

    jesli nie znasz adresu do zmiennej i nie jestes autorem musisz rozkladac exe / pe na sekcje i analizowac kod programu, co latwa sprawa nie jest.


  5. #5
    Zarejestrowany
    Aug 2009
    Postów
    236

    Domyślnie

    aha czyli takie buty dzieki juz wiem o co chodzi to tak jak przy bufer overflow z tym offsetem od zmiennej tej zadeklarowane przesuwam sie po segmentach i docieram do zmiennej celu

  6. #6
    Zarejestrowany
    Dec 2009
    Postów
    164

    Domyślnie

    tak dodatkowo do topicu moge dodac ze
    da sie szperac w dowolnym miejscu pamieci, ale lepiej bedzie to robic z poziomu kernela.
    Nie trzeba walczyc z tokenami dostepu do pamieci do niektorych procesow.
    Z userspace musialbys do co poniektorych procesow uzyskac token dostepu, bit 0/1. Uzyskac informacje na temat adresow pamieci wirtualnej i pamieci RAM mozesz w ten sposob uzyskac. Nie wiem czy do czegos sie to przyda, ale tak na marginesie to dodalem.

  7. #7
    Zarejestrowany
    Dec 2009
    Postów
    164

    Domyślnie

    tak dodatkowo do topicu moge dodac ze
    da sie szperac w dowolnym miejscu pamieci, ale lepiej bedzie to robic z poziomu kernela.
    Nie trzeba walczyc z tokenami dostepu do pamieci do niektorych procesow.
    Z userspace musialbys do co poniektorych procesow uzyskac token dostepu, bit 0/1. Uzyskac informacje na temat adresow pamieci wirtualnej i pamieci RAM mozesz w ten sposob uzyskac. Nie wiem czy do czegos sie to przyda, ale tak na marginesie to dodalem.
    Jedynie do ładnego Dumpu pamieci jakiegos procesu

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj