REV úloha 1: E-mail
Čtvrtek 5. 11. 2026: paralelka 101 v 16:00, paralelka 102 v 17:45, paralelka 103 v 19:30. Počítej s 16:00, dokud si paralelku neověříš.
Rozhoduje čas doručení do schránky cvičícího. Po termínu je to 0 bodů, i když úloha byla hotová.
Co máš odevzdat
- Upravený konfigurační soubor zabalený v ZIPu, aby se cestou nezměnil.
- Stručný popis postupu.
- Vše e-mailem na školní adresu cvičícího.
Samotné odeslání slušného e-mailu nestačí, hodnotí se i popis. Úloha je za 10 bodů a odevzdat ji můžeš víckrát, třeba když doplňuješ chybějící části.
Program CrackMe01.exe neměň. Skutečné odeslání selže na TLS a to nevadí: stačí, aby se program jen na základě konfiguračního souboru dostal k použití funkce MailSend.
Co musíš pochopit
Podstata úlohy je přečíst z kódu, jak program soubor čte a co o něm kontroluje.
- Kde program soubor čte. Soubor se obvykle otevírá přes
CreateFileAa čte dalšími API funkcemi.CreateFilese navzdory jménu používá i pro čtení (cvičení 2). - Jak vypadá přístup ke struktuře. Přístupy jako
[REG],[REG+4],[REG+5]prozrazují pole struktury a jejich odsazení (cvičení 2). - Jak se pozná typ.
MOVSXznačí hodnotu se znaménkem,MOVZXbez znaménka. PodobněJGEje porovnání se znaménkem,JNBbez něj (cvičení 2). - Jak se čtou podmínky a smyčky. Dvojice
CMP/TESTa podmíněný skok jeif, skok zpět je smyčka (rev02, strany 5–12). - Kam vede špatná větev. U každé kontroly hledej, co se stane při neúspěchu. Program může po špatném formátu pokračovat dál a poslat neslušný e-mail, takže „nespadlo to“ nestačí.
Čísla se na x86 ukládají little-endian. Hodnota 0x00000010 je v souboru jako 10 00 00 00. Hex editor ti tak ukáže bajty opačně, než je vidíš v registru.
Co si zopakovat
| Co | Kde | Čas |
|---|---|---|
| Ovládání debuggeru, okna registrů, paměti a zásobníku | cvičení 1 | 30 min |
| Rámec zásobníku, proměnné a práce s API | cvičení 2 | 40 min |
| Nástroje (IDA Free, x64dbg, API Monitor, Process Monitor, HxD) | cvičení 3 | 10 min |
| Podmínky a smyčky v assembleru | rev02, strany 5–12 | 20 min |
Doporučené pořadí
- Spusť program s přiloženým souborem a zapiš si, co přesně vidíš.
- Najdi v debuggeru místo, kde program soubor otevírá a čte. Pomůže breakpoint na API funkci.
- Sleduj, kam se přečtená data uloží, a nastav si na ně breakpoint na paměť.
- Pro každou kontrolu si do tabulky zapiš: odsazení v souboru, velikost, očekávaná hodnota, co se stane při chybě.
- Sestav soubor v hex editoru.
- Ověř ho v debuggeru. Musíš dojít až k volání
MailSenda text e-mailu musí být slušný. - Napiš popis podle tabulky a odešli.
Textový editor nepoužívej, může změnit konce řádků nebo přidat BOM. Pracuj v hex editoru.
Typické chyby
- Správná analýza, ale nefunkční soubor. Zadání na to výslovně upozorňuje, proto krok 6.
- Odeslaný e-mail je neslušný, protože formát není úplně správný. To se nepočítá jako řešení.
- Odevzdaný soubor bez ZIPu.
- Chybí popis postupu.
- Úprava programu nebo průchod přes změnu registrů v debuggeru. Musí to fungovat jen díky souboru.
Pravidla pro AI
Předmět AI povoluje, ale s podmínkami: musíš vyznačit části řešené s AI a vždy přiložit celý záznam konverzace. Jinak je řešení za 0 bodů a závažné nebo opakované prohřešky mohou vést až k neudělení zápočtu.
Tento soupis vznikl s pomocí AI z materiálů předmětu a nic z programu neanalyzuje. Pokud z něj vycházíš, ber to jako použití AI:
- Přilož celou konverzaci, ve které soupis vznikl. V Claude Code ji uložíš například příkazem
/export. - Přilož i každou další konverzaci s AI k této úloze.
- V popisu vyznač, k čemu jsi AI použil.
Pokud jsi AI použil jen na přípravu, stačí k tomu věta:
Při přípravě jsem použil soupis vytvořený pomocí Claude z materiálů předmětu (obecné postupy, bez analýzy programu). Celý záznam konverzace přikládám. Analýzu a řešení jsem udělal sám.
Poslední větu napiš jen tehdy, když je pravdivá. Pomohla-li ti AI i s analýzou nebo se souborem, vyznač konkrétní části.
Kontrola před odesláním
- Soubor funguje s nezměněným
CrackMe01.exe. - V debuggeru jsem došel až k
MailSend. - Text e-mailu je slušný.
- Soubor je v ZIPu a po rozbalení je shodný s tím, co jsem testoval.
- Popis obsahuje postup a strukturu souboru.
- Přikládám celý záznam konverzace s AI, včetně té, ve které vznikl tento soupis.
- Části řešené s AI jsou v popisu vyznačené.
- Posílám ze školní adresy na školní adresu cvičícího a s rezervou před termínem.