🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #205619

Re: Jak działa debugger? ramki stosu

#205619
From: firr kenobi
Date: Wed, 01 May 2013 20:32
39 lines
2734 bytes
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-your-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 
Technical Details
Message-ID: <44c0cefb-1b95-4137-afc7-d9deb0cd528e@googlegroups.com>
Path: mbox-mo1.pugleaf.net!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!news-out.google.com!ef9ni40844qab.0!nntp.google.com!s14no1757313qam.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <klrrio$821$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.224.130.195 with SMTP id u3mr6964136qas.1.1367440322638;        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: mbox-mo1.pugleaf.net!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!news-out.google.com!ef9ni40844qab.0!nntp.google.com!s14no1757313qam.0!postnews.google.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: groups-abuse@google.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: <44c0cefb-1b95-4137-afc7-d9deb0cd528e@googlegroups.com>
Subject: Re: Jak działa debugger? ramki stosu
From: firr kenobi <profesor.fir@gmail.com>
Injection-Date: Wed, 01 May 2013 20:32:02 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit