Fakulta elektrotechnická
|
|
- Tadeáš Soukup
- před 8 lety
- Počet zobrazení:
Transkript
1 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická DIPLOMOVÁ PRÁCE 2007 Radek Podgorný
2 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra telekomunikační techniky Operační a dohledové centrum telefonní ústředny Siemens EWSD leden 2007 Diplomant: Radek Podgorný Vedoucí práce: Ing. Pavel Troller, CSc.
3 Čestné prohlášení Prohlašuji, že jsem zadanou diplomovou práci zpracoval sám s přispěním vedoucího práce a konzultanta a používal jsem pouze literaturu v práci uvedenou. Dále prohlašuji, že nemám námitek proti půjčování nebo zveřejňování mé diplomové práce nebo její součásti se souhlasem katedry. Datum: podpis diplomanta
4 Anotace Předmětem této diplomové práce je analýza servisního protokolu ústředny Siemens EWSD a následná implementace komunikačního software na základě zjištěných informací. Podrobně jsou popsány postup a výsledky analýzy i vlastní implementace. V závěru je pak kromě zhodnocení obsaženo i několik námětů pro další rozvoj vytvořeného produktu do budoucnosti. Summary The subject of this final thesis is an analysis of Siemens EWSD switch service protocol and implementation of a communication program based on the information gathered. The procedure and results of both analysis and implementation are described thoroughly. In the final part, there is an evaluation together with few subjects for possible future development of the product.
5 Poděkování vedoucímu diplomové práce Dovoluji si poděkovat vedoucímu diplomové práce Ing. Pavlu Trollerovi, CSc. nejen za odborné vedení, cenné rady a připomínky, ale i za možnost kontaktu se světem telekomunikačních služeb a techniky v reálném provozu.
6 Obsah Obsah 1 1 Úvod Historie telekomunikačních ústředen Dnešní telekomunikační ústředny Důvody vývoje softwaru pro ústřednu Siemens EWSD Transport dat Struktura práce Úvod do terminologie Odposlech Volba nástroje Dissector pro Ethereal Výsledek odposlechu Analýza Preambule Užitečná data (payload) Výsledek analýzy Aplikace 16 1
7 4.1 Stávající aplikace Volba vývojové a operační platformy Volba nástroje pro správu verzí Rozšíření programu ewrecv Infrastruktura pro serializaci a deserializaci paketů Protokol X.25 a paketová komunikace Multiplexing pro více nezávislých uživatelů Rozšíření programu ewterm Reálné odhlášení Rozlišení zpráv alarmů Napojení na vrstu X.25 v systému Linux Modul x25tap Démon xotd Možnosti dalšího vývoje Využití dynamických knihoven Siemens pro získání zakódovaného hesla Směr dalšího vývoje Způsob dalšího vývoje Omezení platformy a architektury Demanglování názvů metod Konvence volání jazyka C++ v systému Windows Rekurzivní importování knihoven Závěr Celkové zhodnocení Osobní dojmy a připomínky Literatura 30 2
8 Kapitola 1 Úvod 1.1 Historie telekomunikačních ústředen Historie telekomunikačních ústředen se odvíjí od konce 70. let 19. století, kdz Alexander Graham Bell a Elisha Gray nezávisle na sobě vynalezli telefonní přístroj a patentovali jej rovněž nezávisle shodou okolností týž den, 14. února Bell následně založil společnost Bell Telephone Company, která nedlouho poté v roce 1885 přešla po zahrnutí Grayových patentových práv v American Telephone and Telegraph Company, neboli známou AT&T. Hovory jednotlivých účastníků bylo nutné spojovat a přepojovat (hlavní funkce ústředen), což se dělo výlučně manuálně prostřednictvím spojovatelek. Ve 20. století se po 1. světové válce začalo přecházet na automatizované reléové ústředny, které tehdy umožňovaly přímou volbu v rámci jednoho telekomunikačního uzlu, tj. většinou jednoho města, meziměstská a mezinárodní spojení se nadále uskutečňovala manuálně. Po 2. světové válce začal velmi pozvolný nástup polovodičových ústředen s pevným programem, které již zajišt ovaly automaticky místní a meziměstská spojení, mezinárodní spojení se nadále spojovala převážně manuálně. V 70. 3
9 letech se také začaly uskutečňovat první datové modemové a faxové přenosy na bázi analogového spojení. V 80. letech 20. století nastoupily sice také polovodičové, ale procesory řízené automatické telekomunikační ústředny, které se používají dodnes, a zajišt ují nejen plně automatizovaný provoz v podmínkách dnešního globálně propojeného světa, ale hlavně umožňují plnou digitalizaci hlasových a datových přenosů. Toto vedlo nejen k podstatnému zkvalitnění telekomunikačního spojení, ale hlavně k zavedení různých služeb, které by jiným způsobem nebyly uskutečnitelné. 1.2 Dnešní telekomunikační ústředny Tyto telekomunikační středny používané v produkčním prostředí se vyznačují především svou spolehlivostí a životností v řádu několika let. V oblasti vývoje a životnosti softwarového vybavení však dochází k velmi rychlým změnám, a udržovat kompatibilitu je velice složité a nákladné. Paradoxně tak dochází k situacím, kdy se plně funkční telekomunikační ústředna, která je ještě na počátku své fyzické životnosti, stává nepoužitelnou z důvodu neexistence ovládacího softwaru, který by byl schopen funkce na moderních počítačích s moderním operačním systémem. Výrobce ústředny a ovládacího softwaru sice vyrobí verzi kompatibilní s novými trendy, ale prodává ho jako zcela nový produkt naprosto bez vazby na to, že zákazník si již dříve koupil ústřednu a očekává její provozování v průběhu období její životnosti bez nutnosti dalších zbytečných poplatků výrobci. 4
10 1.3 Důvody vývoje softwaru pro ústřednu Siemens EWSD Vzhledem k tomu, že trh v oblasti telekomunikací je převážně záležitostí dominance gigantických společností, není pro tyto společnosti problém investovat nemalé částky do nové generace programů, místo mnohem racionálnějšího a ekonomičtějšího vyvíjení tlaku na výrobce. Tím ovšem značně trpí alternativní operátoři, kteří jsou nuceni hospodařit s mnohem menšími rozpočty, a nemohou si dovolit zcela zbytečně obměňovat programové vybavení ústředen vždy, když se výrobce rozhodne ukončit softwarovou podporu nebo výrobce operačního systému přeruší kompatibilitu. Přístup těchto výrobců ústředen je takový, že dokonce i po oficiálním ukončení výroby ovládacích programů odmítají jakkoliv spolupracovat s majiteli zakoupených ústředen na jejich vlastní implementaci. Důvod je zřejmý; zájem výrobce je, aby operátor koupil nový software. Pokud operátor (majitel ústředny) z nějakého důvodu nechce nebo nemůže do zakoupení relativně nákladného softwaru investovat, jediným řešením je vývoj a implementace vlastního ovládacího programu. A právě to je předmětem této diplomové práce Transport dat Samotná komunikace s ústřednou probíhá přes dnes již spíše ustupující protokol X.25. Právě z důvodu často chybějící X.25 infrastruktury jsou datagramy protokolu X.25 pro samotný přenos zabaleny do protokolu TCP 1, v našem případě v souladu se zapouzdřením XOT 2 podle firmy Cisco. TCP je pak 1 TCP Transmission Control Protocol 2 XOT X.25 over TCP Přesná specifikace je předmětem RFC
11 běžně přenášeno pomocí IP 3, dominantního protokolu dneška. 1.4 Struktura práce V následujících odstavcích je uveden stručný popis celkové struktury práce: V kapitole 2 se zabývám procesem odposlechu a záznamu komunikace mezi ústřednou Siemens EWSD a proprietárním ovládacím programem za účelem následné analýzy. V kapitole 3 se pak věnuji vlastní analýze nasbíraných paketů a interpretaci jejich obsahu. V kapitole 4 jsou popsány změny, které jsem implementoval do programů ewrecv a ewterm. Změny jsou založeny na poznatcích z kapitoly 3 a přidávají funkce pro plnohodnotné ovládání ústředny, založeném na protokolu X.25. Kapitola 5 nabízí náměty pro další pokračování v analýze a implementaci. V kapitole 6 pak nakonec shrnuji úspěšnost, náročnost a přínos vykonané práce. Připojuji v ní i několik osobních názorů a připomínek. 1.5 Úvod do terminologie Při analýze servisního protokolu jsem byl nucen z důvodu absence oficiální dokumentace odvodit vlastní pojmenování informačních polí, obsažených v jednotlivých paketech a blocích. Pro opakovanou použitelnost této analýzy i vlastního programu jsem se rozhodl zavést označení v anglickém jazyce. Překlad těchto pojmenování vynechám, protože na samotných názvech nezáleží. Význam polí je podrobně popsán v následujících částech této kapitoly. Označení, 3 IP Internet Protocol 6
12 uvedená v této kapitole, odpovídají označení struktur a proměnných ve vytvořeném programu. Dále se v této práci objevuje několik odborných termínů z oblasti programovacích jazyků, programování a operačního systému Linux, pocházejících převážně z anglického jazyka. Pro některé z nich čeština nemá vhodný ekvivalent, a proto jsem se rozhodl, hlavně z důvodů konzistentnosti, použít pouhý přepis. Konkrétní význam objasním v této části (uvedeno vždy s původním slovem). Termíny jsou uspořádany podle pořadí prvního použití v textu této práce. dissector (dissector) skupina funkcí, která má za úkol v obecné posloupnosti bytů nalézt oddělovací značky a naplnit předem definované struktury rozdělenými daty z původní posloupnosti preambule (preamble) i když je možné anglický originál přeložit jako hlavička nebo úvodní část, rozhodl jsem se z důvodu podobnosti použít české slovo preambule se stejným významem. payload (payload) užitečná data, nebo-li datová část paketu, nesoucí užitečnou informaci. parsování (parsing) proces analýzy vstupních dat, hledání oddělovačů jednotlivých informačních polí, a ukládání oddělených částí ve strukturované formě. offline (offline) tento výraz je označením pro zařízení, které není permanentně připojené do sítě internet. Používá se též pro druh práce, který stálé připojení nevyžaduje. modul (module) výraz je možné přeložit také jako ovladač, ale české slovo modul je v oblasti operačního systému Linux běžnější. 7
13 démon (daemon) aplikace běžící dlouhodobě v uživatelském prostoru, plnící nějaký úkol systémového rázu. Český překlad démon je ustáleným výrazem. hashování (hashing) transformace vstupní posloupnosti bytů libovolné délky na posloupnost výstupní s pevnou délkou. Dochází ke ztrátě informace. disassemblování (disassembling) proces převodu binárního spustitelného kódu do jazyka symbolických adres (assembleru) manglování (mangling) proces zakódování jména metody a její signatury do jediného řetězce. demanglování (demangling) inverzní operace k manglování. inline assembly (inline assembly) úsek zdrojového kódu jazyka symbolických adres (assembleru), vložený přímo do zdrojového kódu vyššího jazyka (v našem případě C). Po kompilaci zůstává tento úsek nezměněn. loadování (loading) proces přečtení dat z pevného disku nebo jiného média, a jejich následné uložení do paměti. Může též obsahovat i proces získání nebo nastavení metadat načtené oblasti. 8
14 Kapitola 2 Odposlech 2.1 Volba nástroje Pro analýzu datové komunikace bylo potřeba nejprve pakety zachytit na vrstvě Ethernet, dále postupně vybalit protokoly IP, TCP, XOT, X.25 a nakonec i vlastní protokol ústředny. Je logické, že pro zpracování tohoto několikastupňového zapouzdření bylo nejvhodnější použít již existující nástroj, a pouze ho obohatit o analyzátor protokolu ústředny. Nejvhodnějším kandidátem se nakonec ukázal být open-source program Ethereal (nyní Wireshark[7]), který patří k nejpopulárnějším ve své třídě (tedy analyzátory sít ového provozu). K samotnému odchycení paketů jsem využil program tcpdump. Sám Ethereal sice odchytávat pakety umí, ale vzhledem k jeho historii spojené s výskytem bezpečnostních děr je doporučeno spouštět ho pouze v odpojeném režimu nad daty již odchycenými. 9
15 2.2 Dissector pro Ethereal Pro analýzu samotného protokolu jsem zvolil postup přes implementaci rozšíření do open-source programu Ethereal. Ten již obsahuje množství protokolů a proto ušetřil práci s protokoly nižších vrstev (v mém případě postupně Ethernet, IP, TCP, XOT a X.25) a mohl jsem se soustředit pouze na servisní protokol ústředny. Rozšíření bylo implementováno v jazyce C, což sice není optimální řešení vzhledem k neexistenci datového typu string a snadnosti zavlečení chyby, ale na druhou stranu jsem minimalizoval eventuální problémy s okolní kompatibilitou, nebot samotný Ethereal je v jazyce C napsán. Pro samotnou analýzu paketů se v Etherealu používají tzv. dissectory. Jedná se o skupinu funkcí, které jako svůj argument přijmou datovou část paketu, provedou analýzu, a případně zavolají na část nesoucí užitečná data (payload) další dissectory. Protože není architektura Etherealu dostatečně flexibilní, bylo nutné modifikovat dissector protokolu X.25 tak, aby vždy přímo volal dissector protokolu EWSD. V hlavní funkci dissectoru dissect_ewsd() se pouze volá funkce dis_preamble(). Ta analyzuje preambuli podle výše uvedených pravidel, nastaví se globální proměnné hf_ewsd_family, hf_ewsd_dir, hf_ewsd_pltype, hf_ewsd_connid a hf_ewsd_subseq a v případě potřeby se zavolá ještě dissector bloku dis_ewsd(). Tato funkce pak podle specifikovaných pravidel bud volá rekurzivně sama sebe, nebo už interpretuje koncová data. 2.3 Výsledek odposlechu Zaznamenání paketů servisního protokolu ústředny Siemens EWSD proběhlo bez problémů. Vlastní implementace dissectoru byla po seznámení se s vnitřní struktu- 10
16 rou programu Ethereal přímočará a bez větších komplikací. Během vývoje mého rozšíření změnil autor programu Ethereal licenční podmínky a odštěpil další vývoj pod novým jménem Wireshark[7]. Mnou vytvořený patch se sice na nové zdrojové kódy aplikuje bez chyb, ale dissector EWSD je neaktivní. Vzhledem k tomu, že není potřeba dissector nadále udržovat (sloužil pouze pro analýzu, která již byla dokončena), nebylo potřebné zjišt ovat hlouběji příčiny nefunčnosti. Analýza základní struktury servisního protokolu byla úspěšná, podařilo se zjistit obecnou strukturu předávaných zpráv. 11
17 Kapitola 3 Analýza 3.1 Preambule Každá datová zpráva začíná sekvencí 11-ti bytů, nazývejme je preambulí. Volitelně pak následuje datová část, nesoucí užitečnou informaci. O tom, jestli se datová část objeví, či ne, rozhoduje právě obsah preambule. offset délka význam 0 1 family 1 1 unknown1 2 1 direction 3 1 payload type 4 2 connection id 6 1 sub-sequence 7 1 unknown2 8 2 session id 10 1 tail Tabulka 3.1: Analýza bytů preambule K preambuli podrobněji: family zdá se, že v komunikaci se vyskytují dvě hlavní rodiny zpráv: 12
18 rodina COMMAND (0xf1) a ANSWER (0xf2). direction původní předpoklad, že tento byte má něco společného se směrem komunikace (ústředna terminál nebo opačně), další zachycená data nepotvrdila. payload type tento byte vypovídá o typu datové části nebo o její samotné existenci, není však přesně popsáno, jakým způsobem. connection id tento word je unikátní pro každou sub-komunikaci (požadavek + odpověd ). sub-sequence pokud je odpověd delší než kapacita X.25 paketu, je nutné ji rozdělit do více částí (fragmentů). K identifikaci pořadí fragmentů slouží tento byte. session id toto informační pole je nejspíše unikátní pro každé sezení, tedy od přihlášení až do odhlášení. Tabulka podmínek pro další operace: dir pltype subseq operace 1 2 something parsuj jako blok 2 > 1 continued answer interpretuj přímo long answer parsuj jako blok 2 2 short answer parsuj jako blok 3 1 command confirmation parsuj jako blok 4 0 login attempt parsuj jako blok 0x0c 1 login accept parsuj jako blok 0x0e 0 something parsuj jako blok 3 6 confirmation, send more datová část neexistuje Tabulka 3.2: Přehled následných operací podle preambule 13
19 3.2 Užitečná data (payload) Datová část se skládá z několika bloků, které mohou být dokonce obsaženy rekurentně samy v sobě. Každý takovýto blok je uvozen trojicí bytů, kde první byte identifikuje číslo bloku (ID), a následující word jeho délku (LEN). Následuje užitečná informace o délce LEN. Jak jsem již uvedl dříve, některé kombinace ID vypovídají o tom, že užitečná část bloku se má opět parsovat a vyhledat v ní další bloky. Struktura obecného bloku je popsána v tabulce 3.3. offset délka význam 0 1 id 1 2 délka užitečných dat (LEN) 3 LEN data Tabulka 3.3: Struktura obecného bloku Další bloky se již neparsují rekurentně a jejich význam je popsán v tabulce 3.4, kde x je zástupný znak pro libovolnou hodnotu. 3.3 Výsledek analýzy I přesto, že nebyl beze zbytku zjištěn význam některých bytů nebo dokonce celých datových polí, praktickými zkouškami bylo ověřeno, že jejich obsah není pro funkčnost komunikace podstatný a ve většině případů postačí dané datové pole vynechat nebo ho naplnit libovolnou hodnotou. Význam polí nutných pro správnou funkčnost komunikace byl tedy zjištěn a proto je možné analýzu označit za úspěšnou. 14
20 pozice ve stromu offset délka význam x unknown1 x job number x-2 7 unknown2 x-3-1 exchange name x-3-2 APS version x-3-3 patch version x-3-5 username x-4-1 dir=4, pltype=0 terminal name x-4-1 exchange name x-4-2 APS version x-4-3 patch version x username x password x-4-4 terminal name x-4-5 username x year x month x day x hour x minute x second x-5-2 error message x-6-1 command x-7 answer Tabulka 3.4: Význam jednotlivých bloků 15
21 Kapitola 4 Aplikace Významnou částí diplomové práce bylo použití získaných znalostí o protokolu ústředny pro implementaci komunikačního programu. 4.1 Stávající aplikace Efektivním řešením bylo doplnění již existující dvojice programů ewrecv a ewterm o funkčnost, která využívá kanál X.25 pro přenos příkazů a může tak v budoucnu zcela nahradit komunikaci přes sériové rozhraní. Architektura programů ewrecv a ewterm odpovídá schématu klient/server kdy ewrecv plní roli serveru a realizuje samotnou komunikaci s ústřednou. Směrem ke svým klientům (ewterm) komunikuje přes vlastní stavový protokol využívající pro transport protokol TCP. Sériové rozhraní mezi ústřednou a ewrecv i mezi ewrecv a ewterm je znakově orientované, což neodpovídá přístupu přes protokol X.25, kde je datový přenos orientovaný paketově. Upravovat protokol mezi ewrecv a ewterm na paketově orientovaný by bylo asi optimální řešení, ale hrozilo by velké riziko zanesení chyb a ztráta kompatibility se starší verzí. Rozhodl jsem se proto 16
22 tento protokol neměnit (nakonec jsem ho však musel rozšířit). Přepisování programu ewrecv na plnohodnotně paketový by bylo značně náročné a bez stálého testovaní, jestli nebyla ohrožena původní funkčnost, vlastně nemožné. Proto zůstala vnitřní architektura programu prakticky nezměněna (stále se tedy jedná o znakově orientované rozhraní), ale pomocí několika menších úprav a rozšíření bylo dosaženo i toho, že je program schopen přijímat a odesílat celé pakety. 4.2 Volba vývojové a operační platformy Vzhledem k tomu, že již existující sada komunikačních programů je implementována na platformě Linux[3], bylo nejvhodnější toto prostředí zachovat. Systém Linux je známý především díky jeho vývojovému modelu, kdy se na programování podílí značný počet dobrovolníků internetové komunity bez nároku na honorář. Tento způsob vývoje nabízí výhody, jako volně dostupné a modifikovatelné zdrojové kódy nebo vynikající stabilitu. To jsou důvody, které mimo jiné rozhodly pro Linux nejen jako operační prostředí pro výsledný program, ale také pro jeho vývoj. 4.3 Volba nástroje pro správu verzí Pro usnadnění vývoje, sledování změn a snadnější hledání vnesených chyb jsem se rozhodl pro vývoj používat nástroj pro správu verzí. Vzhledem ke značně decentralizované a offline povaze vývoje jsem při výběru hned vyřadil Subversion[6] a CVS[1], které pro práci vyžadují neustálé spojení s hlavním repozitářem. Nakonec jsem zvolil SCM 1 nástroj Mercurial[4] s distribuovaným přístupem, který umožňuje se zdrojovými kódy pohodlně pracovat 1 SCM source control management (správa zdrojových kódů) 17
23 i bez přístupu k hlavnímu repozitáři. Mercurial je nástroj multiplatformní, napsaný v jazyku Python[5]. 4.4 Rozšíření programu ewrecv Program ewrecv realizuje serverovou část. Stará se o komunikaci s ústřednou (přes sériovou linku nebo protokol X.25) a klientům poskytuje nezávislé komunikační rozhraní založené na protokolu TCP. Jeho dalším úkolem je multiplexování jednoho spojení (hlavně v případě sériové linky, kdy více než jedno spojení ani není možné) pro více klientů, aby bylo možné s ústřednou komunikovat z několika míst najednou Infrastruktura pro serializaci a deserializaci paketů Výsledkem analýzy servisního protokolu ústředny Siemens EWSD byla definice struktur posílaných paketů. V samotném programu, kde bylo potřeba tyto pakety interpretovat a sestavovat, by bylo velmi nepohodlné k datům přistupovat nestrukturovaně. Proto jsem vytvořil sadu funkcí, které posloupnost bytů, přenášených po ethernetové lince, uloží do definovaných struktur s pojmenovanými členskými proměnnými. Nechybí ani sada funkcí, které data z těchto struktur opět uloží jako posloupnost bytů ve správném formátu. Tím se práce s pakety výrazně zjednoduší a začne být intuitivní. Jádro tvoří struktury struct packet a struct block, které představují výše popsanou abstrakci. Nedílnou součástí jsou pak funkce packet_deserialize() a block_deserialize(), které mají za úkol z obecné (ale ne náhodné) posloupnosti bytů naplnit zmíněné struktury. Pro nalezení určitého uzlu ve stromu bloků slouží funkce block_getchild(). 18
24 Při vytváření paketu použijeme funkci packet_alloc() pro alokaci a inicializaci struktury paketu, poté pomocí série volání funkce block_addchild() přidáme požadované uzly (strom se vytváří automaticky). Nakonec převedeme struktury na výslednou posloupnost bytů, která je již připravena k odeslání pomocí funkce packet_serialize(). Pro správnou funkčnost celého systému abstrakce jsem samozřejmě vytvořil větší množství funkcí. Ty ale ve většině případů zůstávají pro uživatele skryty. Striktní dodržování prefixů packet_ a block_ a logický systém vrstvení zaručuje snadnou orientaci i pro nezasvěceného programátora, který by chtěl provádět modifikace Protokol X.25 a paketová komunikace Program ewrecv je ve svém jádru znakově orientovaný, což je pro komunikaci přes X.25 nevhodné. Hlavní úprava tedy spočívala ve vytvoření funkcí packet_deserialize(), která několik znaků na vstupu převede na celistvý paket a vytvoří strom bloků a ProcessExchangePacket(), která tento strukturovaný paket zpracuje. Pro realizaci plné funkčnosti také vzniklo značné množství dílčích funkcí. Bylo by však zbytečné zde popisovat jejich signatury a funkčnost Multiplexing pro více nezávislých uživatelů Multiplexing pro více uživatelů je schopnost rozlišit několik nezávislých uživatelů (kdy každý z těchto uživatelů může být připojen přes několik instancí programu ewterm najednou), a poskytnout jim možnost komunikovat s ústřednami nezávisle na uživatelích ostatních. To vše bud přes jediný fyzický X.25 kanál, nebo přes obecný počet spojení, alokovaných po jednom pro každého uživatele. 19
25 Program ewrecv jsem rozšířil o pole spojení na ústředny, které jsou při případném výpadku jednotlivě obnoveny. Data přijatá z terminálů jsou pak rozeslána pomocí všech spojení v poli. Odpovědi od ústředen jsou postupně načítány a rozesílány k jednotlivým terminálům. Pro správnou funkčnost je nutné zajistit deaktivaci interaktivního MML a zaručit, aby přihlašovací údaje (jméno a heslo) byly na všech ústřednách stejné. 4.5 Rozšíření programu ewterm Úpravy programu ewterm byly s úpravami v programu ewrecv podstatně méně náročné, přesto však ne triviální. Vzhledem k tomu, že program ewterm představuje klientskou část, nemusí se programátor zabývat násobným připojením a souběhem. Množství uchovávaných stavových informací je v porovnání s programem ewrecv také menší Reálné odhlášení Hlavní změny se týkaly obohacení komunikačního protokolu mezi ewrecv a ewterm o povel pro odhlášení, nebot původně bylo odhlášení řešeno pouze odesláním příkazu ENDSESSION; z terminálu. Tento způsob odhlašování je platný pouze pro původní sériovou komunikaci, ale pro X.25 již platný není. Bylo proto nutné přesunout odhlašovací rutiny do programu ewrecv, obohatit vnitřní protokol a upravit ewterm tak, aby toto nové rozšíření používal Rozlišení zpráv alarmů Další zlepšení, které přinesla komunikace přes X.25, je rozlišení příchozího textu na odpovědi na zadané příkazy a provozní alarmy a zprávy údržby, 20
26 které jsou generovány automaticky. Je nepříjemné, když se tyto automatické zprávy vměšují do běžného povelovacího sezení, a proto je žádoucí tyto zprávy rozlišit a zpracovávat pouze specializovaným klientem. Z tohoto důvodu bylo nutné vnitřní protokol ještě rozšířit o povely zasílat alarmy a nezasílat alarmy. Samozřejmě jsem musel změny patřičně zapracovat i do programů ewrecv a ewterm. 4.6 Napojení na vrstu X.25 v systému Linux Tato komunikace probíhá přes protokol X.25. Vzhledem k tomu, že nechceme realizovat přenos přes fyzickou vrstvu s protokolem X.25, je nutné pakety zapouzdřit do protokolu XOT a přes transportní vrstvu TCP je pak odeslat dále do sítě, kde jsou těsně před ústřednou opět převedeny na X Modul x25tap Pro úspěšné zapouzdření je nutné X.25 pakety přijaté linuxovým jádrem předat do uživatelského prostoru. O to se postará modul x25tap[8], který vytvoří virtuální X.25 rozhraní, a data podle potřeby vyměňuje mezi uživatelským prostorem a prostorem jádra Démon xotd Když jsou pakety protokolu X.25 předány modulem x25tap z jádra, přijme je démon xotd[8], který k nim přidá XOT hlavičku a pošle je na definovanou IP adresu (a port) protokolem TCP. Naopak, pokud přijdou z IP sítě XOT pakety, démon xotd z hlavičky extrahuje potřebné informace a dále předá uživatelská data, tedy X.25 paket, jádru přes virtuální zařízení x25tap. 21
27 Kapitola 5 Možnosti dalšího vývoje 5.1 Využití dynamických knihoven Siemens pro získání zakódovaného hesla Během analýzy proprietárního protokolu Siemens bylo zjištěno, že při přihlašování je heslo posíláno ve speciálním zakódovaném formátu, který znemožňuje jednoduše heslo na lince nahrát a poté opětovně použít pro přihlášení s právy původního uživatele. Toto heslo je závislé na čase (s přesností na sekundy) a je hashováno pomocí funkce MD5 nebo její modifikace. I přes značné úsilí, které by odhalilo algoritmus sestavení této posloupnosti bytů, se tento postup nepodařilo odhalit, a tak jedinou funkční metodou pro získání hesla, chráněného proti opětovnému přehrání, je použití binárních Win32 knihoven, které dodává přímo firma Siemens a tuto funkčnost obsahují. Z důvodu nepotřebnosti pro funkčnost celku byla pouze zpracována příprava postupu pro budoucí využití při implementaci této funkce do programu ewrecv. V následujících částech uvedu postup vhodný pro využití části binární 22
28 dynamické C++ knihovny z prostředí Windows na architektuře x86. Jedná se o českou verzi anglického článku[9], který jsem při své vývojové činnosti vytvořil. 5.2 Směr dalšího vývoje Knihovny, ze kterých chceme získat kód, jsou napsány v jazyce C++ a jsou tedy objektově orientované. Linkování s objektově orientovanými knihovnami v době kompilace není obecně problém, ale k tomuto kroku jsou potřeba statické linkovací knihovny, které Siemens nedodává a tak jedinou možností je dynamické linkovaní za běhu programu. To je však relativně složitá situace. Je velmi jednoduché použít exportovanou funkci v čistém C, protože jediné, co je nutné udělat, je najít správnou adresu a poté funkci prostě zavolat s patřičnými argumenty (správné argumenty a návratový typ však musíme předem znát). V případě C++ jsou metody tříd exportovány jako běžné funkce v čistém C, ale jejich názvy jsou manglovány (takže je možné mít Class1::DoSomething() i Class2::DoSomething() dohromady). Je výhodou, že nemusíme předem vědět správné argumenty a návratový typ, protože kompletní signatura metody je součástí manglovaného jména. Hlavní problém spočívá v tom, jak tyto funkce použít s nějakou instancí třídy, tedy jako metody a jak tento celek vhodně obalit tak, aby měl vlastnosti třídy/objektu. 5.3 Způsob dalšího vývoje Popsaná metoda nepatří k těm, které by se měly při běžném programování používat. Je náchylná na zavlečení chyby, kterou kompilátor nezjistí, ale která 23
29 může způsobit pád programu. Jinou možnost ale pravděpodobně nemáme Omezení platformy a architektury Funkčnost je zaručena pouze na platformě Windows (možná dokonce pouze s kompilátorem Microsoft Visual C++) a to pouze na architektuře x86. Podobnou techniku je možné použít i na jiných platformách a architekturách, ale postupy se mohou mírně i značně lišit Demanglování názvů metod V jazyce C++ neexistuje jednoznačně definovaný způsob, jak by měla být jména funkcí manglována, takže výsledné názvy jsou specifické pro jednotlivé kompilátory. Kompilátor Microsoft Visual C++ mangluje jména například do??0slnepasswd@@qae@abv0@@z (a podobných). S výhodou pro nás obsahuje takto manglované jméno všechny potřebné informace, které potřebujeme k úspěšnému importování metod a jejich použití objektově orientovaným způsobem. Na internetu lze nalézt mnoho nástrojů, vhodných pro demanglování jmen funkcí zpět na jejich plné signatury. Já zvolil nástroj IDA Pro[2]. Jedná se o velmi užitečný disassembler s mnoha funkcemi. Ostatní nástroje ale budou pravděpodobně také fungovat uspokojivě. Takto vypadá vzorek výstupu po disassemblování: ; private: class CLBinary thiscall SLNEPasswd::GetMD5Encryption( \ class CLBinary const &) public?getmd5encryption@slnepasswd@@aae?avclbinary@@abv2@@z?getmd5encryption@slnepasswd@@aae?avclbinary@@abv2@@z proc near Nyní je tedy známo, co funkce očekává jako argumenty a co hodlá vrátit. 24
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceProfilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceProgramování v jazyce C a C++
Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu
VíceČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Více1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VíceSimluátor Trilobota. (projekt do předmětu ROB)
Simluátor Trilobota (projekt do předmětu ROB) Kamil Dudka Jakub Filák xdudka00 xfilak01 BRNO 2008 1 Úvod Jako školní týmový projekt jsme si zvolili simulátor trilobota 1 a jeho prostředí. Simulátor komunikuje
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceÚvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
VícePočítačové sítě Systém pro přenos souborů protokol FTP
Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů
VíceProgramování v jazyce C a C++
Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
VíceMatematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
VíceIB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
VícePočítačové sítě. Lekce 4: Síťová architektura TCP/IP
Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol
VíceProfilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceVYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory
VíceSEMESTRÁLNÍ PROJEKT Y38PRO
SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
VíceProtokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.
Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Jádro TCP/IP TCP/IP Jádro Pseudo terminal driver Uživatel u terminálu TCP spojení
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
VíceMST - sběr dat pomocí mobilních terminálů on-line/off-line
MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o.,
Více1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
VícePřednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
VíceInovace výuky prostřednictvím šablon pro SŠ
Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Cílová skupina Anotace Inovace výuky prostřednictvím šablon
Více12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování
12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které
VíceProtokoly: IP, ARP, RARP, ICMP, IGMP, OSPF
IP vrstva Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF UDP TCP Transportní vrstva ICMP IGMP OSPF Síťová vrstva ARP IP RARP Ethernet driver Vrstva síťového rozhraní 1 IP vrstva Do IP vrstvy náležejí další
VíceTCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet.
Katalogový list www.abetec.cz Software WinWedge Professional pro sběr dat 15-1003E Obj. číslo: 106001285 Výrobce: Mark-10 Corporation Anotace Přenáší data do libovolného programu Windows. Poskytuje plný
VícePřekladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
VíceProvádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany
Obranné valy (Firewalls) Vlastnosti Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Filtrování paketů a vlastnost odstínění Různé
VíceAnalýza aplikačních protokolů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008
VíceProgramování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
VíceInternet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu
Internet a zdroje (ARP, routing) Mgr. Petr Jakubec Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu 12 26. 11. 2010 (KFC-INTZ) ARP, routing 26. 11. 2010 1 / 10 1 ARP Address Resolution
VíceCommon Object Request Broker Architecture
Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální
VíceSSL Secure Sockets Layer
SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou
VíceZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE
2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich
VíceFunkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
VíceTRANSPORTY výbušnin (TranV)
TRANSPORTY výbušnin (TranV) Ze zákona vyplývá povinnost sledování přeprav výbušnin. Předpokladem zajištění provázanosti polohy vozidel v čase a PČR je poskytování polohy vozidla předepsaným způsobem. Komunikace
Více09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Více1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,
Vícepřetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Vícejava remote method invocation Kateřina Fricková, Matouš Jandek
java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého
VíceCo je doma, to se počítá, aneb Jak ušetřit na komunikaci. Petr SOLNAŘ / Liberecká IS, a.s. Michal NOVÁK / SOITRON CZ, s.r.o. 12.6.
Co je doma, to se počítá, aneb Jak ušetřit na komunikaci. Petr SOLNAŘ / Liberecká IS, a.s. Michal NOVÁK / SOITRON CZ, s.r.o. 12.6.2008 VoIP Liberec Proč by se o telefony mělo starat IT? Případová studie
VíceObsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
VíceA4300BDL. Ref: JC
# Uživatelský manuál A4300BDL Aplikace :! Jednoduchý program umožňující přenos souboru s pochůzkou k měření z programu DDS 2000 do přístroje řady Adash 4300! Jednoduchý program umožňující přenos naměřených
VíceUživatelský modul. DF1 Ethernet
Uživatelský modul DF1 Ethernet APLIKAC NÍ PR ÍRUC KA POUŽITÉ SYMBOLY Použité symboly Nebezpečí Důležité upozornění, jež může mít vliv na bezpečí osoby či funkčnost přístroje. Pozor Upozornění na možné
Více5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
VíceExperimentální systém pro WEB IR
Experimentální systém pro WEB IR Jiří Vraný Školitel: Doc. RNDr. Pavel Satrapa PhD. Problematika disertační práce velmi stručný úvod WEB IR information retrieval from WWW, vyhledávání na webu Vzhledem
VíceObjektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceImplementace systémů HIPS: historie a současnost. Martin Dráb
Implementace systémů HIPS: historie a současnost Martin Dráb martin.drab@secit.sk HIPS: základní definice Majoritně používané operační systémy disponují bezpečnostními modely, které dovolují jednotlivým
VíceSměrovací protokol Mesh (802.11s) na platformě Mikrotik
Směrovací protokol Mesh (802.11s) na platformě Mikrotik J. Bartošek, P. Havíček Abstrakt: V této práci je popsán princip fungování směrovacího protokolu mesh na platformě mikrotik. Na této platformě ovšem
Více11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VícePolymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Více1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VícePlatební systém XPAY [www.xpay.cz]
Platební systém XPAY [www.xpay.cz] implementace přenosu informace o doručení SMS verze 166 / 1.3.2012 1 Obsah 1 Implementace platebního systému 3 1.1 Nároky platebního systému na klienta 3 1.2 Komunikace
Více4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty
VíceSIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.
SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,
VíceInthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6
Inthouse Systems s.r.o. Specifikace Inthouse App a Inthouse Studio pro Siemens Climatix 6XX Verze software 1.X Revize dokumentu 6 Datum 4. 11. 2016 Obsah Obsah 1 Úvod 2 Základní přehled systému 2 Inthouse
VíceIntraVUE 2.0.3 Co je nového
IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci
VíceInovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_31_20 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
VíceProfesionální služby kolem Linuxu
Profesionální služby kolem Linuxu 18.5.2011 Libor Pecháček vedoucí týmu podpory třetí úrovně, SUSE Linux s.r.o. Agenda Komerční distribuce Profesionální podpora Technické nástroje podpory
VíceZáklady objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
VíceZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto
VíceTento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.
13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
VíceSystém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
VíceTC-502L. Tenký klient
TC-502L Tenký klient Popis přístroje Tenký klient s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. Disponuje 1x rozhraním LAN 10/100,
VíceProtokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.
Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Operační systém TCP/IP TCP spojení TCP/IP Pseudo terminal driver Operační systém
VíceVyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceEXTRAKT z české technické normy
EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová
VíceTC-502L TC-60xL. Tenký klient
TC-502L TC-60xL Tenký klient Popis přístroje Tenký klient TC-502L s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. TC-604 navíc
VíceSystém Přenos verze 3.0
Systém Přenos verze 3.0 (bezpečná komunikace a automatizované zpracování dat) CTlabs spol. s r.o. Pernštejnské Janovice 28, 593 01 Bystřice nad Pernštejnem, tel/fax.: 0505-551 011 www.ctlabs.cz info@ctlabs.cz
VíceObsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
VíceKRY. Projekt č. 2. Kamil Dudka xdudka00
KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí
VíceJednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text.
1.0 Nahrávání hovorů Aplikace Nahrávání hovorů ke svému chodu využívá technologii od společnosti Cisco, tzv. Built-in bridge, která snižuje nároky na síťovou infrastrukturu, snižuje náklady a zvyšuje efektivitu
VíceAdministrační systém ústředen MD-110
SAS MD-110 Administrační systém ústředen MD-110 SAS MD-110 Administrační systém ústředen MD-110 Efektivní systém administrace poboček a parametrů ústředen Ericsson MD110 s přímou vazbou na telefonní seznam
VíceRoční periodická zpráva projektu
WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových
VíceSpráva verzí souborů na cvičení
Správa verzí souborů na cvičení Úvod do problematiky, metodické pokyny Karel Šimerda Univerzita Pardubice, Fakulta elektrotechniky a informatiky 1. února 2010 Karel Šimerda (KST, FEI) IOOP/INPSW 1. února
VícePopis programu EnicomD
Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry
VíceZajištění kvality služby (QoS) v operačním systému Windows
VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows
VíceProgramování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
VíceStruktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
VíceFlow Monitoring & NBA. Pavel Minařík
Flow Monitoring & NBA Pavel Minařík minarik@invea.cz Formulace zadání Zákazník požaduje řešení pro monitorování a analýzu provozu datové sítě Měření provozu v prostředí multi-10gbps infrastruktury Historie
Více24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
VíceSeznámení s prostředím dot.net Framework
Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené
VíceArchitektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
VíceMATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceÚvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
VícePřipojení přístroje A4101 k aplikaci DDS2000
" Uživatelský manuál Připojení přístroje A4101 k aplikaci DDS2000 Aplikace :! Přenos a archivace dat naměřených přístrojem A4101! Přenos pochůzky vytvořené v aplikaci DDS2000 do přístroje A4101 Vlastnosti
Více