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

Mistrovství v jazyce AssemblerMistrovství v jazyce Assembler

 

Mistrovství v jazyce Assembler

Google       Google       17. 4. 2008       23 253×

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

Reklama
Reklama

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý