IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: v čem je naprogramované avg

Aktivity
Avatar
petod
Člen
Avatar
petod:11.9.2013 19:40

Našel jsem na webu nějákou knihu o virech a chtěl bych se zeptat jaký programovací jazyk bych měl ovládat abych mohl programovat programy týkající se detekce a odstranění virů?

 
Odpovědět
11.9.2013 19:40
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na petod
David Hartinger:11.9.2013 20:16

Na programovacím jazyce nezáleží, musíš hlavně rozumět tomu jak Windows fungují uvnitř. To se zjišťuje dost blbě, jelikož i anglická dokumentace je velmi neúplná. Dále musíš rozumět ASM, abys dokázal číst škodlivý kód (ke kterému samozřejmě zdrojové kódy mít nebudeš). V čem napíšeš tu utilitku co vir odstraní je už IMHO docela jedno, nejčastěji to asi bude C++.

Nahoru Odpovědět
11.9.2013 20:16
New kid back on the block with a R.I.P
Avatar
Martin Dráb
Tvůrce
Avatar
Martin Dráb:11.9.2013 20:20

Nevím, v čem konkrétně programují AVG, ale viděl jsem jeden software tohoto druhu trochu více zblízka a ten byl programován v C, C++ Builderu a Delphi (plus možná i v dalších jazycích).

Pokud má mít detekční software ochranu v reálném čase, tak je nutné (alespoň na Windows) vytvořit ovladač jádra, k čemuž se obvykle používá C. Lze to dělat i v C++ (ale pozor na http://www.osronline.com/article.cfm?…) či v Delphi (také dost problémů, které zaručují, že v tomto jazyce driver nikdo dělat asi nebude).

Kód, který má na starosti detekci podezřelých souborů (či čehokoliv jiného) musí být obvykle velmi efektivní, protože musí zvládat zpracovat velké množství objektů v krátkém čase. Proto se k tomuto účelu hodí také nějaký nízkoúrovňový jazyk typu C/C++.

Grafické rozhraní programu může být teoreticky i v interpretovaném jazyce, protože na výkonu zde tolik nezáleží.

To je aspoň můj názor.

Nahoru Odpovědět
11.9.2013 20:20
2 + 2 = 5 for extremely large values of 2
Avatar
petod
Člen
Avatar
petod:12.9.2013 12:10

a jenom se zeptám myslíte si že bych měl první začít s C# pokud bych chtěl programovat různé věci týkají se virů a weby. s kterým jazykem začít s C# nebo c co je podle vás lepší volba?

 
Nahoru Odpovědět
12.9.2013 12:10
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na petod
Petr Nymsa:12.9.2013 12:14

Asi takto. Už ovládáš nějaký jazyk ? Přijde mi, že nemáš o programování ani potuchy a chceš vytvořit něco tak komplexního a složitého jako je anti-virus.

Pro různé programáky zvol nějaký moderní- vysokoúrovňový jazyk. Například C# či Java.

Pro weby samozřejmě HTML 5, CSS 3, JavaScript (+ jQuery) PHP nebo třeba ASP .NET (v ASP se bez C# neobejdeš)

Nahoru Odpovědět
12.9.2013 12:14
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
petod
Člen
Avatar
petod:16.9.2013 18:06

a jenom se zeptám když se naučím C# zvládnu pak C/C++. vím že ty jazyky nemají moc cenu kdybych se tím chtěl živit ale zajímám se o viry a chi umět jak C# tak i C/C++ .

 
Nahoru Odpovědět
16.9.2013 18:06
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na petod
Martin Dráb:16.9.2013 21:00

C++ a obzvláště C "přináší" oproti C# pár problémů navíc. Například je nutné si sám uvolňovat paměť (nemusí asi nutně ve všech případech platit pro C++, záleží na použití), kterou sis sám alokoval (nebo alokovala knihovní funkce, kterou jsi použil). Obecně je u C/C++ dobré (ale zvláště u C) trochu vědět, jak operační systémy fungují.

Řekl bych, že C# je pohodlnější na programování, ale pokud potřebuješ nějakou specialitu, tak ta se lépe udělá právě v C/C++, protože se jedná o nativní jazyky, a tudíž z nich není problém volat funkce operačního systému (např. Windows API). Ne že by funkce operačního systému nešlo volat i z C#, ale je to krapet méně pohodlné a je tam vyšší režie za volání (zda-li ji lze zanedbat záleží na konkrétním použití).

Nahoru Odpovědět
16.9.2013 21:00
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na petod
Jiří Šedý (jsedy7):16.9.2013 21:08

Jak už psal sdraco, tak pro čtení funkce viru a případné ošetření se řeší přes ASM, což je složitý jazyk a v případě neznalosti těch základních, je zbytečně skočit do něčeho, podle mého názoru tak brutálního. :)

Nahoru Odpovědět
16.9.2013 21:08
Musíš se mnoho učit, abys poznal, že málo víš...
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Jiří Šedý (jsedy7)
Martin Dráb:17.9.2013 1:43

ASM sám o sobě složitý není. Hlavní problém spočívá v tom, že jeho použití vyžaduje slušné zanlosti architektury daného procesoru (či rodiny procesorů). Jinak na detekci malware není jeho použití (znalost) nutná, to spíš až v případě, že bys to svého antiviru chtěl zakomponovat emulátor či něco podobného. Pokud si chceš pro začátek hrát jen s detekcí založenou na databázi signatur, stačí jen nějakým způsobem hledat (dostatečně) jedinečné posloupnosti bajtů v souborech virů.

Algoritmicky pochytit, co určitý malware dělá, není zrovna triviální už proto, že daný kód nemusí být na první pohled vidět (může být šifrovaný či vzniknout modifikací jiného kódu až za běhu vzorku), tudíž pokud by se mělo z kódu usuzovat na to, zda je vzorek malware či ne, asi bude třeba ten (dost) kompletní emulátor.

Nahoru Odpovědět
17.9.2013 1:43
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
Jiří Šedý (jsedy7):17.9.2013 7:07

V tom máš asi pravdu, já jsem spíše narážel na znalosti petrfaltu u kterého je vidět, že začíná s programováním. A dle mého názoru ASM není vhodný na naučení jako první progr. jazyk. :)

Mě osobně ASM přijde složitý už svou základní syntaxí. Jak jsem koukal, tak pro každou rodinu procesorů, je jiný druh zápisu, takže usuzuju, že s novým procesorem případně jeho rodinou je nutné nastudovat příslušnou dokumentaci, která bude nejspíš jen v angličtině. :)

Nahoru Odpovědět
17.9.2013 7:07
Musíš se mnoho učit, abys poznal, že málo víš...
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na Jiří Šedý (jsedy7)
Panda38:17.9.2013 8:38

Dokonce i pro stejný procesor existují úplně odlišné syntaxe - Intel syntaxe uvádí nejdříve cílový operand a pak zdrojový, zatímco GNU AS se syntaxí AT&T to dělá přesně opačně a i registry a konstanty píše úplně jinak.

 
Nahoru Odpovědět
17.9.2013 8:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.