eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak działa debugger? ramki stosuRe: Jak działa debugger? ramki stosu
  • X-Received: by 10.49.37.39 with SMTP id v7mr374018qej.27.1367440322612; Wed, 01 May
    2013 13:32:02 -0700 (PDT)
    X-Received: by 10.49.37.39 with SMTP id v7mr374018qej.27.1367440322612; Wed, 01 May
    2013 13:32:02 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!s14no1757317qam.0!n
    ews-out.google.com!ef9ni40844qab.0!nntp.google.com!s14no1757313qam.0!postnews.g
    oogle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 1 May 2013 13:32:02 -0700 (PDT)
    In-Reply-To: <klrrio$821$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.131.189;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 31.61.131.189
    References: <klrrio$821$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <4...@g...com>
    Subject: Re: Jak działa debugger? ramki stosu
    From: firr kenobi <p...@g...com>
    Injection-Date: Wed, 01 May 2013 20:32:02 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:203040
    [ ukryj nagłówki ]

    W dniu środa, 1 maja 2013 21:48:39 UTC+2 użytkownik Borneq napisał:
    > Mam opis pod Windows (a jak będzie pod Linuksem?)
    >
    > http://www.codeproject.com/Articles/189711/Write-you
    r-own-Debugger-to-handle-Breakpoints
    >
    > http://www.codeproject.com/Articles/43682/Writing-a-
    basic-Windows-debugger
    >
    >
    >
    > Tam jest nietypowo, bo pułapkę ustawia proces śledzony, ale doszedłem że
    >
    > można użyć WriteProcessMemory. Nawet gdy nie ustawię pułapki, debugger
    >
    > zatrzymuje się na samym początku wykonywania programu w
    >
    > ntdll.DbgBreakPoint (czy zawsze tak jest)?
    >
    > Aby otrzymac adres początku programu muszę znać ramki stosu, jak można
    >
    > wylistować je?


    dobre pytanie, nie wiem dokladnie,
    ale prawdopodobnie (w 32bitowej wersji)
    jest tak ze w ebp masz wskaznik na poczatek
    tramki stosu danej funkcji, pod ktorym to adresem
    jest zapisany poprzedni ebp w ten sposob przez
    wyluskiwanie mozna sie cofnac, jesli main
    by nadal ebp wartosc 0 to mozna sprawdzic kiedy
    koniec cofania (ale nie wiem czy tak jest)

    Przed kazdym z tych adresow na stosie sa adresy
    powrotów dla ret - nie sa top adresy poczatku funkcji w sekcji .code tylko adresy tuz
    za
    call (o ile dobrze to rozumiem) ale cofajac sie
    z nich 4 bajty dostaniesz prawdopodobnie
    adresy poczatkow procedur kolejnych poziomów

    - jest to ew przyblizony obraz ale tak to mw chyba
    jest - bo tak sobie to wyobrazam, czyli nie jest to takie skomplikowane

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: