-
Data: 2017-09-08 01:12:34
Temat: Re: [OT] (announce) organic asm
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]jutro jeszcze (zapewne) opisze jeszcze smutne kwestie multipasow i fixupow (ciekawe
tylko jesli ktos chce wiedziec jak dziala asm, mi samemu przyda si o tym wspomniec by
uzyskac wieksza jasnosc jak to dziala a jest to troche zagmatwane
moze w sumie pare slow juz teraz
1) na poczatku skanujac zrodlo buduje sekcje importow - oprocz samego binarnego
bloku tejh sekcji mam tez funkcja podajaca dla danego importu (podawanego po nazwie)
wartosc relatywnego wskaznika
wskazujacego miejsce gdzie lezy pointer do tej funkcji (ktory zostanie wypelniony
przez loader windy)
Oprocz tego istatna dana jest tez koncowy rozmiar tej sekcji
2) skanujac zrodlo buduje sekcje data oprocz niej mam funkcje ktora dla danego labelu
z sekcji data podaje re;atywny wskaznik do adekwatnej komorki w tej sekcji - oprocz
tego wazna dana jest finalny rozmiar tej sekcji
3) skanuje zrodlo i asembl;uje mnemoniki,
oprocz samych mnemonikow w zrodla mozna tam napotkac 4 rzeczy
l) label okreslajacy miejsce w kodzie (definicja np poczatku procedury)
c) odwolanie do labelu w kodzie (w przod lub w tyl) (glownie przez skoki)
d) odwolanie do labelu w danych (glownie przez mov)
i) odwolanie do importu (glownie przez call)
o tym co trzeba z tym zrobic moze jutro
(wlasciwie zadnego z tych labeli nie mozna przetlumaczyc na inta w pierwszym
podejsciu:
l) te labele trzeba zrzucic do tablicy razem z ich wartosciami (ktore przynajmniej
mozna od razu wyznaczyc)
c) odwolanie trzeba zrzucic do tablicy
razem z miejscem w kodzie ktore trzeba wypwlnic (ktore to miejsce tez na szczescie
mozna od razu ustalic)
d) odwolanie do danych tez trzeba zrzucic do tablicy razem z miejscem w kodzie ktore
trzeba wypelnic
i) odwolania do importow trzeba zrzucic do tablicy (azem zmiejscami ktore trzeba
wypelnic)
po zasemblowaniu tego otrzymuje sie rozmar sekcji kodu, ktory trzeba wyrownac w gore
co pozwala uzyskac polozenie sekcji importow, dodanie rozmiary wyrownanego w gore
rozmiaru sekcji importow daje adres poczatku sekcji data
teraz z tego co sie orientuje trzeba przeiterowac wszystkie 4 tabele i zarzucic te
fixupy, w wyniku czego powinnq powstac poprawnie wypelniona sekcja kodu, ktora razem
z sekcja importow i danych zapisuje sie na dyck
i zrobione
niby nie takie trudne ale obraz troche
komplikuja lekkie subtelnosci, glowni eto ze aligmenty sekcji w ramie sa ine niz w
pliku a same adresy czasem podaje sie w postaci relatywnych offsetow (zdaje sie ze
wiekszosc w sekcji importow juz nie pamietam a te w sekcji kodu raczej w postaci
pelnych absolutnych wskaznikow) idzie sie pogubic
do tego trzeba jeszcze poustawiac odpowiednie pola w naglowkach pe co tez jest co
nieco nieczytelee i dziwne
wiekszosc tego mam zrobione ale polozenie sekcji data i imports wklepalem na sztywno
(dzieki czemu nie musialem robic tabel fixupow dla danych i importow) i teraz wlasnie
musze to pewnie w weekend poprawic bytan asm wlasni enie mial ograniczen
(wogole szczerze mowiac nawet nieco dziwne mozna powiedziec jest to ze jak kodowalem
tego asma to wiekszosc problemow jakie tu wspomnialem udawalo sie jakos zakodowac
jakby w transie bez myslania o nich, jest to ciekawa zdolnosc , zdolnosc do
kodowania nez myslania o czyms o czym wydawaloby sie trzeba pomyslec) (pozniej
jednak, czyli teraz kapka myslania na te tematy sie przydaje - zeby miec jasnosci i
nie przeoczyc moze czegos, i moe tez po to by sie troche tego jak to dziala nauczyc
na pamiec)
Następne wpisy z tego wątku
- 08.09.17 01:27 fir
- 09.09.17 00:17 fir
- 09.09.17 14:20 fir
- 09.09.17 21:57 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
- 10.09.17 01:50 fir
- 10.09.17 11:33 fir
- 11.09.17 16:55 fir
- 11.09.17 17:03 fir
- 12.09.17 14:57 M.M.
- 12.09.17 16:59 fir
- 13.09.17 23:59 fir
- 14.09.17 21:11 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
- 14.09.17 22:08 fir
- 15.09.17 21:43 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
- 15.09.17 21:46 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=