Jednoduchý keyloggery v C # 1: Príprava formulára
Vitajte v mojom prvom tutoriálu na www.itnetwork.cz. V tomto tutoriále sa budeme venovať jednoduchému keyloggerov, ktorý vám určite otvorí nové možnosti v programovaní. Určite každého z vás niekedy napadlo, že by si mohol vytvoriť svoj vlastný keyloggerov, ale po nejakom tom googlování vás myšlienka opustila, pretože ste nenarazili na nič, kde by to bolo dobre vysvetlené. Sám som nedávno strávil niekoľko desiatok hodín nad tvorbou keyloggerov. Potýkal sme sa s mnohými a často hlúpymi chybami, ktoré som riešil tu na fóre. Forum. Netvrdím, že to bola cesta ľahká, ale došiel som až na neje koniec. Teda na koniec súčasných požiadaviek.
Je čas teda začať.
Tvorba formulára
Vytvorme teda nový projekt typu: "Windows Forms Application" a pomenujte ho treba "keyloggerov". Vlastnosť formulára FormBorderStyle nastavíme na FixedToolWindow, to kvôli znemožnenie zmeniť veľkosť okna. A vlastnosť MaximizeBox na false, aby nešlo okno maximalizovať. Napíš formulár nejakým zrozumiteľným názvom napr. "Keylogger 1.0 - Vypnutý".
Na formulár umiestnite 3x timer, 1x checkbox, 2x button, 1x textbox
- Timer1 premenujte na tCheckKey - tento timer nám bude obstarávať, či bola stlačená klávesa. Zároveň tento timer nastavte na Interval na 1, týmto zaistíme snímanie každú milisekundu.
- Timer2 premenujte na tClearField - tento timer nám bude čistiť textbox a zakaždým nám uloží jeho obsah do nejakej premennej pre neskoršie využitie. Rovno tiež nastavíme tento timer na 1000, to znamená, že vykoná kód každú sekundu.
- Timer3 premenujte na tCheckHide - tento timer sa bude starať o skrývanie a odkrývanie keyloggerov. Pri tomto timeru nemusíme nastavovať interval, ponecháme ho 100.
- CheckBox1 premenujeme na chbCheckRules a upravíme jeho text na niečo takéhoto: "Súhlasím, že nebudem tento keylogger používať protizákoně. Autor nenesie žiadnu zodpovednosť za zneužitie programu."
- Button1 premenujte na "btnStart" a napíš ho treba "Štart". Toto tlačidlo zakážte, teda nastavte jeho vlastnosť Enable na false, chceme totiž aby používateľ najskôr súhlasil s pravidlami používania, než bude možné keyloggerov spustiť. Nastavte vlastnosť Enabled na false
- Button2 přejmenujste na "btnStop" a napíš ho treba "Stop". Toto tlačidlo takisto tiež zakážte. Nastavte vlastnosť Enabled na false
- TextBox1 premenujte na "tbLog" a jeho vlastnosť ReadOnly nastavte na true
Kód
Teraz pristúpime k samotnému písania kódu.
Začnime niečím jednoduchým a to kontrolou, či je zaháčkovanými chbCheckRules Čo teda vyžadujeme? Chceme, že pokiaľ je zaháčkovaný tento checkbox, tak sa nám povolí tlačidlo tbnStart, ak ho odháčkujeme, potrebujeme vypnúť keylogger a znemožnist zapnutí do doby, pokiaľ nebude znovu zaháčkovanými tento checkbox. Celú túto kontrolu budeme vykonávať v udalosti tohto checkbox zvanej "CheckedChanged". Táto udalosť nám stráži, či nastane zmena v zaháčkovanými a je jedno aká. Teda buď zaháčkovanými, alebo odháčkování. Skrátka zmena stavu.
Pokiaľ je teda checkbox zaháčkovaný, povolíme tlačidlo btnStart, inak vypneme keylogger.
private void chbCheckRules_CheckedChanged(object sender, EventArgs e) { if (chbCheckRules.Checked == true) // pokud je zaháčkovaný souhlas s pravidly, { btnStart.Enabled = true; // povolím tlačítko pro spuštění KeyLoggeru } else // pokud není { // pokud je zaháčkovaný souhlas s pravidly užívání, tak if (chbCheckRules.Checked == true) { btnStart.Enabled = true; // povolím tlačítko na spuštění KeyLoggeru } else { btnStart.Enabled = false; // jinak ho zakážu } btnStop.Enabled = false; // vypnu tlačítko pro vypnutí KeyLoggeru tCheckKey.Enabled = false; // vypnu timer pro záznam kláves tClearField.Enabled = false; // vypnu timer pro vymazávání okna tCheckHide.Enabled = false; // vypnu timer umožňující skrývání this.Text = "KeyLogger 1.5 - Vypnut"; // nadepíšu okno } }
Vzhľadom k tomu, že veľmi podobný kód ako je pri odháčkování budeme potrebovať aj u tlačidlá btnStop, tak si vytvoríme metódu a nazveme ju: "KeyLoggerOFF". Táto metóda nebude mať žiadne vstupné parametre. Metódu vytvoríme z časti predchádzajúceho kódu. Tú časť, ktorú vložíme do metódy z kódu zmažeme a nahradíme ju volaním metódy. Metóda bude vyzerať takto:
// Metoda pro vypnutí KeyLoggeru private void KeyLoggerOFF() { // pokud je zaháčkovaný souhlas s pravidly užívání, tak if (chbCheckRules.Checked == true) { btnStart.Enabled = true; // povolím tlačítko na spuštění KeyLoggeru } else { btnStart.Enabled = false; // jinak ho zakážu } btnStop.Enabled = false; // vypnu tlačítko pro vypnutí KeyLoggeru tKey.Enabled = false; // vypnu timer pro záznam kláves tClear.Enabled = false; // vypnu timer pro vymazávání okna tHide.Enabled = false; // vypnu timer umožňující skrývání this.Text = "KeyLogger 1.5 - Vypnut"; // nadepíšu okno }
Teda udalosť "CheckedChanged" bude teraz vyzerať takto:
private void chbCheckRules_CheckedChanged(object sender, EventArgs e) { if (chbCheckRules.Checked == true) // pokud je zaháčkovaný souhlas s pravidly, { btnStart.Enabled = true; // povolím tlačítko pro spuštění KeyLoggeru } else // pokud není { KeyLoggerOFF(); // zavoláme metodu pro vypnutí KeyLoggeru } }
Na tlačidle btnStop do udalosti zvanej Click vložíme volanie našej už vytvorené metódy pre vypnutie keyloggerov. Takto bude vyzerať táto medota:
private void btnStop_Click(object sender, EventArgs e) { KeyLoggerOFF(); }
Rovnako ako sme začali, tak budeme aj pokračovať. Trošku všímavý človek si uvedomuje, že veľmi podobný kód, ktorý je v metóde KeyLoggerOFF budeme aj u tlačidla btnStart. Len znegovaný.
private void btnStart_Click(object sender, EventArgs e) { this.Text = "KeyLogger 1.5 - Zapnut"; // nadepíšu toto hlavní okno btnStop.Enabled = true; // povolím tlačítko pro vypnutí KeyLoggeru btnStart.Enabled = false; // zakážu tlačítko pro spuštění KeyLoggeru tCheckKey.Enabled = true; // zapnu timer pro snímání kláves tCheckHide.Enabled = true; // zapnut timer umožňující skrývání tClearField.Enabled = true; // zapnu timer pro mazání okna }
Nabudúce už začne skutočné programovania. Vytvoríme si triedu pre zachytávanie klávesov.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 660x (60.29 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#