Prezentace aplikace PowerPoint

Podobné dokumenty
Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

ŤAHÁK PRAKTICKÁ ČASŤ Prerekvizity: LINUX: WINDOWS: Inštalácia Oracle VirtualBoxu a vytvorenie virtuálneho stroja /návod nižšie/ Operačný system Window

Objektovo orientované programovanie

Úroveň strojového kódu procesor Intel Pentium Úvod Štruktúra procesorov Intel Pentium Základné inštrukcie Vetvenia a cykly Praktické programovanie jed

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Matej Kendera - PDF, word, lucene, java

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

iot business hub whitepaper isdd_em_New.pdf

Identifikačný štítok TIMSS & PIRLS 2011 Dotazník pre žiaka 4. ročník Národný ústav certifikovaných meraní vzdelávania Pluhová 8, Bratislava IEA

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOL

DediĊnosť

Hardwarové prerušenie Nasledujúci kód ukazuje inštaláciu obsluhy časovača vrátane jeho inicializácie // inicializace časovače, přerušení každou milise

Úvod do mobilného operačného systému ANDROID

Identity Lifecycle Management

Prevádzka

Ako si mám nainštalovať nový upgrade z Internetu?

RE Windows

Microsoft Word prist_prava_ Popadic.doc

PowerPoint Presentation

Externé mediálne karty Používateľská príručka

Strana 1 / 6 Stav účtu Názov a sídlo účastníka: Obecný úrad Diviacka Nová Ves Diviacka Nová Ves Diviacka Nová Ves IČO: Adresa platiteľ

Microsoft Word - zapis-predmetov-AiS

Novinky programu MSklad

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia

Moje leto musí byť výnimočné Sme radi, že využívate služby Orangeu, a veríme, že ste s nimi spokojný. Aby však bolo vaše leto naozaj výnimočné, prináš

Snímka 1

Tomáš Jelínek - včely vyhľadávanie

Dotazník spokojnosti zákazníka s produktmi a službami ŠÚ SR

Spustenie založenej VM mimo vmware ESX

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

2

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

RAZER ABYSSUS ESSENTIAL Slovenská príručka Táto príručka slúži len ako návod základné vedomosti s hlavných funkcií a nastavení zariadenia. Podrobnejši

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka 2 Úvodná stránka 2 Registrácia prevádzka/penzión

Výzva na predkladanie ponúk zadávanie zákazky podľa 9 ods. 9 zákona č. 25/2006 Z. z. o verejnom obstarávaní a o zmene a doplnení niektorých zákonov v

Organizácia počítačových systémov Procesory Vnútorná pamäť Vonkajšie pamäte Vstupné a výstupné zariadenia Autor: Peter Tomcsányi Niektoré práva vyhrad

Efektívnosť využívania informačných zdrojov vo vedecko-výskumnom procese a výuke

03_ControlFlow.dvi

Kategória školenia Kurzy Project, Outlook obsahuje kurzy: Outlook základy Účastníci kurzu Outlook základy sa naučia využívať tento program na ov

PRÁCA V SYSTÉME EZP A) Registrácia 1. Úvodným krokom prace v systéme Evidencie záverečných prác (ďalej EZP) je registrácia

Jadrova fyzika - Bc.

enum

(Microsoft Word Zadanie na s\372\235a\236 KROS DESIGN AWARD .doc)

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHN

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

História

INTERNET BANKING Ako zrealizovať hromadný prevod VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

User:tomas.melicher

Operačné systémy Prednáška č. 2 Windows 95 Windows 95 má povesť ľahko ovládateľného systému pre užívateľov a ťažkého systému pre programátorov. Začiat

SKPOS

CitiManager - Migration Quick Reference Guide for Cardholders_Slovak_fin

Microsoft PowerPoint - CONNECT_R&A_76_sk

2

Aktion.NEXT Novinky vo verzii 1.9

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Snímka 1

V jedinej lekcii Meno: 1 Ako reagujete na profesionálne médiá? Pracujte vo dvojiciach a pripravte sa na hranie rolí. Označte sa ako Osoba A a Osoba B.

Všetci by sme mali byť feminist(k)ami (Ukážka)

Import absencí z ASC

(Manu\341l)

FAQ

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava Dátové rozhranie pre externý subjekt FR SR Strana 1 z 11 Dátové rozhranie

Architektúra OS

Odkiaľ a kam kráča slovenská demografia po roku 1993

Snímka 1

PowerPoint Presentation

Microsoft Word - manual_ESS_2010

Strana 1 / 16 Stav účtu Názov a sídlo účastníka: Slovenské banské múzeum Kammerhofská Banská Štiavnica 1 IČ DPH / DIČ: 0 IČO: Adresa

Použitie počítačov (1)

Používateľská príručka elektronických služieb pre žiadateľov o štatistické informácie október 2016

Microsoft PowerPoint - Prog_p08.ppt

PowerPoint Presentation

PowerPoint-Präsentation

A51

Zobrazenie čísiel v počítači Celé nezáporné čísla - čísla bez znamienka dvojková sústava iné používané sústavy - šestnástková a osmičková BCD kódovani

Manuál pre nastavenie tlače z VRP Bluetooth, USB tlačiarne Bluetooth, USB tlačiarne Manuál pre nastavenie tlače -1-

Stravné - přecenění

Všeobecná zdravotná poisťovňa

OPIdS - finančné riadenie

Mikrotik-NEW

Nadpis/Titulok

Manuál pre nastavenie tlače z VRP tlačiarní bluetooth Bluetooth Manuál pre nastavenie tlače z VRP tlačiarní -1-

Microsoft Word - o09_Používateľská príručka ku kontrole kupónov na webe_v4.doc

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

IT NEWS

Microsoft Word - prirucka_katedry_nova

Digitálne technológie v každodennom živote 3. ročník akademický rok 2019/2020 Harmonogram prednášok

Používateľská príručka Obsah Používateľská príručka... 1 Administrácia servera... 2 FTP... 2 Remote Desktop... 3 Administrácia databáze:... 3 Spusteni

Microsoft Word - Dokument1

Slide 1

eKasa

Microsoft Word - Priloha_1.docx

ALBATROS_MEDIA

Prieskum PAS a INEKO o návrhu Ministerstva financií SR na prelomenie bankového tajomstva 10. septembra 2018 Podnikatelia odmietajú návrh na prelomenie

Microsoft Word shm_ popadic.doc

Prepis:

Linux a reverzing Peter Košinár kosinar[zavináč]eset.sk

Rýchlokurz Linuxu Príkazy sú zadávané interpreteru tzv. shell (bash, tcsh, zsh, ash,...) Zopár ich pozná a vie vykonať priamo, väčšinu ale riešia externé programy hľadanie podľa premennej prostredia $PATH. Pojem prípony de-facto neexistuje. Na rozdiel od Windowsu, aktuálny adresár zvyčajne v $PATH nie je:./program namiesto program Program štandardne má vstup (stdin, 0), výstup (stdout, 1) a chybový výstup (stderr, 2), všetky tri možno presmerovať z/do súboru:./program < vstup > vystup 2> chybovystup

Rýchlokurz Linuxu Všetko zaujímavé v systéme je (virtuálny) súbor nie sú špeciálne API funkcie na zisťovanie voľnej pamäte, bežiacich procesov: /proc/self = informácie o mne /proc/self/maps = mapa mojej pamäte,... Vytvorenie nového procesu: fork() = mitóza Interakcia medzi procesmi signály (signal, kill), poprípade zdieľaná pamäť (shm*) Debugovacia interakcia medzi procesmi je sústredená do funkcie ptrace() sledovanie vykonávania systémových volaní, vie čítať a meniť pamäť a registre...

Rýchlokurz Linuxu Užitočné vecičky: cat výpis obsahu súboru cat /proc/self/maps grep filtrovanie dát grep rwx /proc/self/maps /dev/null = do bažín man dokumentácia k príkazu alebo funkcii (aj C-čkové funkcie) man strlen Koniec riadku je iba \n, nie \r\n

Linux a spustiteľné súbory Interpretované skripty (Bash, Perl, Python, Ruby, PHP, ) Interpretované/JITované bytecody (Java,...) Natívne binárne súbory (ELF)

ELF Základné koncepty podobné ako v prípade PE súborov: Má hlavičku so základnými informáciami. Pozostáva z blokov, ktorých relatívne rozloženie v súbore zvyčajne nezodpovedá 1:1 umiestneniu vo virtuálnej pamäti. Môže potrebovať funkcie poskytované niekým iným ( importy ) Vie mať formu knižnice ( DLL ) a funkcie poskytovať ( exporty ). Dajú sa k nemu pridať aj ladiace informácie. Formát samotný je definovaný pomerne dobre ale, podobne ako pri PE súboroch, aj jeho používatelia občas až príliš benevolentní.

Prvý pohľad na ELF Ako zistiť, že ide o ELFa? Prvé štyri znaky sú \x7f\x45\x4c\x4f (čítaj: ELF ). Povie to utilitka file : zri@zri: $ file program 1-program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped zri@zri: $ file library 2-library: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

Ako vyčítať niečo viac? Dva základné nástroje: objdump a readelf: objdump je univerzálnejší (rozumie mnohým formátom) readelf zase rozumie ELFom lepšie Hromada prepínačov, --help sa vie hodiť. Pozor na výstup: Oba očakávajú slušné správanie a nie zneužívanie hraničných podmienok! http://www.skyfree.org/linux/references/elf_format.pdf

readelf h <program>

Sekcie Podobne ako v PE súboroch, aj ELFy majú sekcie. Sekcie majú svoj typ PROGBITS, REL, STRTAB, NOBITS,... Konkrétne názvoslovie a sémantika je vecou kompilátora, ale niektoré sú štandardnejšie ako iné:.text,.data,.bss,... Tabuľka názvov sekcií býva tiež v samostatnej sekcii (shstrtab).

readelf S <program>

readelf S <program>

Program headers Pri spúšťaní nehrajú sekcie žiadnu rolu a v súbore nemusia vôbec existovať / obsahovať platné údaje! Skutočné informácie o tom, čo a kam sa má nahrať a čo sa má spustiť, sú inde: program headers ( segmenty ). Tieto hovoria o tom, čo sa má kam do virtuálneho priestoru nahrať a aký prístup má byť k daným stránkam dovolený. Neexistuje celkom ekvivalent imagebase, ale najčastejšie je v súboroch vídaná začiatočná adresa 0x8048000 (32-bitové).

readelf l <program>

Symboly Importy aj exporty sú špeciálny druh symbolov v tabuľke symbolov. Tabuľky môžu byť dve jedna nevyhnutná (DSYMTAB) a druhá informatívna (SYMTAB). Informatívne symboly možno odstrániť a nič zlé sa nestane akurát toho bude menej vidieť. Na rozdiel od PE súborov, importy nie sú viazané na konkrétnu knižnicu t.j. symbol môže dodať ktorákoľvek knižnica. Častý lazy binding symbol sa dohľadá, až keď je prvýkrát potrebný. Nie sú to ladiace informácie tie bývajú ešte oveľa detailnejšie (DWARF).

PLT a GOT

Statické vs. dynamické linkovanie Súbor nepoužívajúci žiadne externé knižnice je linkovaný staticky: gcc static Výhoda: Program je nezávislý na knižniciach, nemusí riešiť, či je nejaká nainštalovaná a ak áno, v ktorej verzii... Nevýhody: Výrazne väčšia veľkosť; všetky knižnicové chyby zostávajú navždy v prípade objavenia treba program prekompilovať. Nevýhoda pre reverzera: Viac kódu na pozeranie, špeciálne v prípade neznámych knižníc, často úplná absencia symbolov.

Position-Independent Code Kód, ktorý nie je potrebné relokovať t.j. môže byť kompletne zdieľaný medzi viacerými procesmi. Odkazy na externé symboly sa musia dosadiť za behu, ale tie sú súčasťou dát, nie kódu a sú (očakávateľne) variabilné. Vzdialenosť medzi kódom a dátami je fixná takže sa používa relatívne adresovanie voči aktuálne vykonávanej inštrukcii.

Knižničné vs systémové volania Čo sa deje vnútri procesu, zostáva v vnútri procesu. Zavolanie funkcie z knižnice robí iba skok / volanie v rámci procesu, samé o sebe nedokáže spraviť nič, čo by nedokázal program spraviť aj sám. Akákoľvek interakcia so systémom (prístup k súborom, k iným objektom, k hardvéru,...) ide cez niektoré systémové volanie. Pre väčšinu systémových volaní existujú štandardné knižničné obálky, ktoré dáta vhodne predspracujú, zavolajú systémové volanie a prípadne spracujú chybu.

Syscall (x86) Systémových volaní existuje pomerne málo: /usr/include/i386-linux-gnu/asm/unistd_32.h #define NR_restart_syscall 0 #define NR_exit 1 #define NR_fork 2 #define NR_read 3 #define NR_write 4 #define NR_open 5 #define NR_close 6... #define NR_seccomp 354

Syscall (x86) Systémové volanie sa vyvoláva cez int 0x80 Číslo volania je v EAX, parametre v EBX, ECX, EDX, ESI, EDI, EBP: open( xyz, O_RDONLY): mov eax, 5 mov ebx, offset xyz xor ecx, ecx // O_RDONLY = 0 int 0x80 /usr/include = dobrý kandidát na grepovanie!

Reverzerské nástroje Statická analýza: IDA ELFom rozumie objdump d vie tiež všeličo dobré povedať; pre Intelistov sa silne odporúča (aj) parameter M intel Dynamická analýza: strace záznam systémových volaní (na báze ptrace) ltrace knižnicové volania len pre externé knižnice! LD_PRELOAD trik podvrhnutie vlastne knižnice s funkciami gdb GNU debugger a všetky jeho nadstavby / frontendy

Ďakujem za pozornosť Peter Košinár kosinar[zavináč]eset.sk