Mistrovství v jazyce Assembler
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Mistrovství v jazyce AssemblerMistrovství v jazyce Assembler

 

Mistrovství v jazyce Assembler

Google       Google       17. 4. 2008       34 199×

Programování, disassembling, analýza kódu. Knihu napsal Vlad Pirogov a přeložil Jakub Zemánek.

Mistrovství v jazyce Assembler je kniha, kterou bych určitě nedoporučil začátečníkům v jazyce assembler a už vůbec ne začátečníkům v programování. Kniha totiž počítá s jistými znalostmi čtenáře. Mezi takovéto prerekvizity se řadí například znalost instrukčního souboru a samozřejmě znalost funkce instrukcí a jejich použití, počítá se i se znalostí programových konstrukcí a algoritmizace. Pokud vás tedy assembler zajímá a chcete se jej naučit profesionálně používat, ale neznáte základy tohoto jazyka, doporučil bych vám k prostudování nejprve knížku Učíme se programovat v jazyce Assembler pro PC, kterou napsal Rudolf Marek. Problémy se znalostí algoritmizace pravděpodobně většina čtenářů tohoto článku mít nebude, předpokládám totiž, že assembler se budou učit především lidé, kteří se o programování opravdu zajímají a již nějakou dobu programují v jiném jazyce.

Kódy v knize jsou psané pro kompilátory MASM32 a TASM32 a zabývá se převážně programováním pro Windows. V žádném případě nebudete tvořit aplikace jen pro DOS nebo příkazovou řádku, ba právě naopak - už při přečtení necelého prvního sta stránek budete schopni vytvořit okenní aplikaci (nebo spíše okno s funkčními ovládacími prvky). Jak sám autor píše v úvodu, některé materiály v knize mohou být považovány za „crackerské“. Tyto metody jsou v knize obsaženy především proto, abychom poznali činnost crackerů a mohli se jim bránit.

Kniha Mistrovství v jazyce Assembler se skládá ze čtyř částí.

Část první

Kapitola první

V kapitole první se autor zabývá nástroji pro programování ve Windows, a to výše zmíněnými MASM32 a TASM32. Zabývá se zde kompilací a linkováním. Vysvětluje některé základní pojmy a popisuje činnost objektových souboru .INC. Je zde popsána také základní stavba kódu a některé z méně používaných direktiv jako například INCLUDE. Již na druhé stránce v této knize se vyskytuje první blok kódu, takže bez základních znalostí Assembleru opravdu nemá cenu pokračovat; kniha je navíc více než z poloviny tvořena výhradně kódy.

Kapitola druhá

V druhé kapitole se dostáváme k samotnému programování. Autor kapitolu začíná voláním API funkcí a popisem parametrů těchto funkcí a pokračuje strukturou programu. Popisuje v ní čtyři základní části, ze kterých se program musí skládat (řeč je nyní o okenní aplikaci). A již na straně 41 začíná kód pro vytvoření obyčejného prázdného okna ve Windows. Kód je napsán pro MASM32 a hned za ním následuje kód pro TASM32 a programátor zde uvádí hlavní dva rozdíly mezi kódem pro tyto kompilátory. Na závěr kapitoly autor postupně popisuje předávání parametrů API funkcím pomocí zásobníku a instrukce PUSH. V tomto oddíle kapitoly také ukazuje, jak v přepisu do assembleru vypadá volání funkcí ve vyšších jazycích. Zde bych se ještě zmínil o další výhodě knížky, kterou je fakt, že kromě programováni v Assembleru vás naučí i podstatu programování jako takového a vysvětlí některé děje při programování ve vyšších jazycích.

Kapitola třetí

Kapitola třetí dále rozšiřuje znalosti z kapitoly druhé. A první její část se zabývá přidáním ovládacího prvku na okno, konkrétně tedy tlačítka (autor zde nepopisuje pouze vložení tlačítka na okno, ale také to, jak je program informován o jeho stisknutí), dále textového pole a seznamu. Kapitola také vysvětluje problematiku oken vlastněných a oken dceřiných a s tím souvisejícího okna hlavního nebo chcete-li mateřského či rodičovského.

Kapitola čtvrtá

V kapitole čtvrté se poprvé a naposledy v této knize dostaneme k 16bitovému programování, tedy k ukázce historie. Kromě porovnání programování 16bitových a 32bitových aplikací nepřináší tato kapitola mnoho zajímavých informací, slovy autora však historie stojí za to, aby byla studována.

Kapitola pátá

Pátá kapitola zakončuje první část knihy; porovnává kompilátory MASM32 a TASM32 a obsahuje seznamy použitelných parametrů.

Část druhá

Kapitola šestá

Druhou část knihy začíná kapitola o kódování textu ve Windows. Autor se v kapitole věnuje především normám ASNII, Unicode a OEM pro příkazový řádek. Přestože tato kapitola není nijak rozsáhlá (zabírá pouhých pět stránek), lze se z ní dozvědět zajímavé věci.

Kapitola sedmá

Tato kapitola pojednává o výpisu textu do okna, výběru fontu a je ukončena oddílem Grafika a obrázky. Tuto kapitolu bych přejmenoval spíš na „Ochutnávka grafiky v assembleru“, protože až na spoustu stránek kódu se zde autor příliš nerozepsal a trošku více podrobností bych zde alespoň já přivítal.

Kapitola osmá

Možná pro někoho bude divné, že se tato kapitola objevuje až zde. Osmá kapitola se totiž týká využívání konzolových programů a začíná oddílem o vytváření konzoly, o jejím dědění atd. Pokračuje sekcí, která bude určitě mnohé velice zajímat, a to je zpracování událostí klávesnice a myši. To je docela dobrým důvodem, proč tuto kapitolu, ač pro někoho se může jednat o zbytečné záležitosti, nevynechat. Dále v kapitole se dozvíme informace o časovačích, které mají v programování nezastupitelnou roli.

Kapitola devátá

Zdroje: editory zdrojů a kompilátory. Ano, to je nadpis této kapitoly, i když o editorech se autor moc nezmiňuje a o kompilátorech se zmiňuje také jen na pár řádcích. Kapitola jako taková se zabývá především ruční tvorbou zdrojů a ukazuje použití zdrojů na příkladech. Mě osobně přijde využití zdrojů v assembleru mnohem nutnější než v jiných jazycích, jako je například pravý opak assembleru, Visual Basic, ve kterém již několik let také programuji. Mimochodem, pokud jste někdy psali v jazyce C, bude pro vás tato kapitola jako procházka.

Kapitola desátá

Obsahuje popis dynamických nabídek, rozšiřuje tedy znalosti získané v kapitole předchozí, tedy tvorbu menu, tentokrát ovšem takového, které se může měnit podle událostí, které nastávají za běhu programu. Dále se kapitola zabývá tzv. Hotkeys a Správou seznamů.

Kapitola jedenáctá

Je kapitolou velice rozsáhlou a dovolím si říci, že spolu s kapitolou poslední je to nejrozsáhlejší část, která se zabývá prací se souborovým systémem. Autor se zde krátce věnuje systému FAT32 a jeho předchůdcům a naopak velice podrobně se zabývá možnostmi souborového systému NTFS. V kapitole se dále zmiňuje o vyhledávání souborů a posledním oddílem je práce s binárními soubory, která je ukázána na příkladech Výpis obsahu souboru do konzoly, Zpracování textového souboru a Získání časových údajů o souboru.

Část třetí

Kapitola dvanáctá

Třetí část knížky s názvem „Sofistikovanější příklady programování ve Windows“ začíná kapitolou „Direktivy a makro nástroje Assembleru“. V kapitole postupně projdete návěstími, strukturami, uniony, podmíněnou kompilací kódu a přes další spoustu zajímavých věcí se dostanete až k tvorbě maker a kapitola je zakončena tvorbou programu, který lze zkompilovat jak v MASM32, tak v TASM32, a využito je k tomu jak jinak než podmíněného překladu.

Kapitola třináctá

Tato kapitola se vrací ke správě souborů a konkrétně se zabývá funkcí CreateFile a myslím, že je to kapitola vhodná i pro programátory v jiných jazycích, protože možnosti funkce jsou zde velice pěkně rozepsány. Jsou zde ovšem popsány i další funkce pro správu souborů, například CreateDirectory a nebo DeleteFile. Poslední část kapitoly je také velice zajímavá a zabývá se Asynchronními vstupy a výstupy.

Kapitola čtrnáctá

Zde budu opravdu stručný a řeknu jen to, že se zabývá časovači.

Kapitola patnáctá

Kapitola patnáctá pro mě osobně byla poněkud zajímavější a zabývala se multitaskingem, popisuje činnost vláken a komunikaci mezi jednotlivými vlákny, popisuje také funkci semaforů a kritické sekce. Na závěr se kapitola zmiňuje o Mutexu.

Kapitola šestnáctá

Tato kapitola má nadpis dynamické knihovny a já osobně jsem se na tuto kapitolu velice těšil a nezklamala. Myslím, že dost podrobně popisuje jak funkci, tak i tvorbu knihoven DLL.

Kapitola sedmnáctá

Tato kapitola bude pro někoho velice zajímavá, pro někoho naopak naprosto nepotřebná. Pojednává o síťovém programování a popisuje práci se síťovými zařízeními, protokoly TCP/IP a ještě například správu socketů.

Kapitola osmnáctá

Řešení některých problémů programování ve Windows je název této kapitoly. Já mám z této kapitoly poněkud smíšený pocit - její první část je nepochybně zajímavá, ovšem zbytek již byl v knize aspoň částečně probrán a o užitečnosti kapitoly a vyřešení nějakých závažných problémů trochu pochybuji. Mám-li být upřímný, je to kapitola, která pro mě měla asi nejmenší informativní hodnotu v porovnání s jejím rozsahem.

Část čtvrtá

Kapitola devatenáctá

Kapitolou devatenáct nám tedy začíná čtvrtá část knihy. Tuto část prolétnu jen tak v heslech, možná se trošičku zdržím až u kapitoly poslední. Devatenáctá kapitola se nazývá systémové programování ve Windows. Její první dvě části - Stránková segmentace a Adresový prostor procesu - mě příliš nezaujaly, zatímco část třetí s názvem Háky mě zaujala velmi. Určitě mnozí z vás slyšeli o metodě nazývané Hooking či Global Hooking a o jejích obrovských možnostech. A tato část kapitoly devatenácté vám ukáže jak ji efektivně využívat.

Kapitola dvacátá

Zabývá se používáním Assembleru ve spojení s jinými programovacími jazyky, např. C++ nebo Delphi.

Kapitola dvacátá první

V kapitole dvacáté prvé se naučíte vytvářet služby. Je zde kladen důraz převážně na příklady.

Kapitola dvacátá druhá

Touto kapitolou se dostáváme k části, o které jsem se zmiňoval za „crackerskou“. Začíná částí s názvem Přehled debuggerů a disassemblerů

Kapitola dvacátá třetí a dvacátá čtvrtá

Tyto kapitoly se jmenují Základy Turbo Debuggeru a Práce s disassemblerem W32Dasm a debuggerem SoftIce.

Kapitola dvacátá pátá

Plynule navazuje na předchozí kapitoly; nazývá se „základy analýzy kódu“, pro „crackery“ jako dělané...

Kapitola dvacátá šestá

Kapitola s názvem Oprava spustitelných souborů se „crackingu“ věnuje prakticky. Zabývá se odstraněním časové prodlevy při spouštění sharewaru a zrušením omezeného množství spuštění nebo 30denního užívání.

Kapitola dvacátá sedmá

Na tuto kapitolu sem se těšil ze všeho nejvíc. Její název je Struktura a vývoj ovladačů. A pro mě jako pro člověka, který se zabývá hardwarem, to byla kapitola nejpřínosnější.

Na závěr

Knihu jako takovou bych doporučil každému, kdo by chtěl o programování vědět víc a všem, kdo by chtěli zjistit více o tom, co se běžně při práci v PC děje a jak spousta věcí vůbec funguje. Knížka je velice kvalitně zpracovaná, i když jsou místa, kde bych trochu přidal.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jiří ChytilAutor programuje ve VB, zajímá se o elektrotechniku, studuje na SOŠ Elektrotechnické - obor číslicová technika.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý