-
Data: 2013-05-01 22:32:02
Temat: Re: Jak działa debugger? ramki stosu
Od: firr kenobi <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 01.05.13 22:34 Borneq
- 01.05.13 22:58 Borneq
- 02.05.13 08:38 Marek Borowski
- 02.05.13 18:10 Borneq
- 02.05.13 19:26 firr kenobi
- 03.05.13 00:22 M.M.
- 03.05.13 08:47 Edek
- 04.05.13 23:04 Michoo
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-05 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-05 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-03-05 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-05 Kraków => Business Development Manager - Network and Network Security
- 2025-03-05 Zaniepokojeni mieszkańcy
- 2025-03-05 Ile pieniędzy ma bank?
- 2025-03-05 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-05 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-03-05 Warszawa => Frontend Developer (Angular13+) <=
- 2025-03-05 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-05 Chiny-Kraków => Backend Developer (Node + Java) <=
- 2025-03-05 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-03-05 China-Kraków => Key Account Manager IT <=
- 2025-03-05 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-05 Gdańsk => Specjalista ds. Sprzedaży <=