Ce trebuie să știu? Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei. Nu contactaţi responsabilii de temă pe mail privat decât dacă aceştia vă cer explicit (e.g. pentru debugging local, vizualizarea unor comenzi din rezolvare) Pentru orice fel de întrebare vă rugăm folositi forumul!
Thread nou? Nu. Pentru o ușoară parcurgere a mesajelor, folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse.
Căutare. Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
Printscreen/poză? Nu. În cazul în care doriți să publicați un printscreen pe forum, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către printscreen. Pozele inserate în răspunsuri, vor fi șterse. NU SE ACCEPTA POZE FACUTE CU TELEFONUL (se poate recurge la depunctări, sunt imposibil de urmărit).
Actualizări. Urmăriți în special forumul, în topic-urile dedicate taskurilor respective. Urmăriţi şi modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
Regulament. Înainte și în timpul realizării temei, vă rugăm să parcurgeți indicațiile legate de realizarea temelor, încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe cs.curs.pub.ro pentru întrebări și neclarități legate de teme.
Întrebări frecvente. În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Ajutor reciproc. Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți. Studenţii cu o atitudine pozitivă, activă şi care îşi ajută colegii pot fi răsplătiţi cu puncte karma sau un PIN USO.
În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Aveţi voie, însă, să sugerați diferite abordări pe care mergeţi sau să dați idei generale (dar nu comenzi sau fişiere shell script) celorlalți chiar direct pe forum. Încurajăm clarificarea lucrurilor între studenţi atât timp cât nu sunt rezolvate cerinţele în mod direct.
Urmăriți indicațiile legate de realizarea temelor. La prima abatere studentul primește un avertisment, iar punctajul obținut pe temă îi este redus cu valoarea punctajului pe task-ul respectiv. Începând cu a doua abatere, se va anula întregul punctaj pe tema curentă. Temele anterioare sau cele viitoare nu vor fi afectate. Abaterile se păstrează pe parcursul semestrului. Ori de câte ori se încalcă această regulă, se va ține cont de istoricul abaterilor. Abaterile vor fi actualizate în catalog.
/home/student/tema3-sec
se află arhiva1.zip
, protejată de o parolă simplă. Folosiți un utilitar precum fcrackzip sau john the ripper pentru a extrage fișierele din aceasta. Lungimea parolei căutate este de 6 litere.wordlist.txt
, și arhiva2.zip
, pe care trebuie să o dezarhivați la rândul ei. Pentru aceasta, trebuie să vă folosiți de fișierul wordlist.txt, singura problemă este că parolele din el sunt criptate cu OTP/XOR, cu cheia usostrongkey
. Criptarea cu xor este foarte simplă, presupune realizarea operației xor între textul în clar și cheie, decriptarea realizându-se prin aplicarea xor între textul cifrat și cheie.
otp_decrypt.py
pentru decriptarea unui bitstring (string format din biți, ex: “0100111”), pasându-i în linia de comandă, în ordine, bitstring-ul de decriptat și cheia (usostrongkey):
$ python3 otp_decrypt.py <bitstring> <key>
.
(
$ wget https://pastebin.com/raw/4mhCcJmv
)
arhiva3.zip
, și trei fișiere user[1..3].txt
cu câte un nume de utilizator și mai multe parole (fictive) pentru diverse site-uri. Doar una dintre ele este parola pentru arhiva3. Pentru a nu face brute-force, încercând fiecare parolă, mai aveți în arhiva2 și fișierul hashes.txt
, care conține hash-urile celor trei fișiere menționate.
Pentru acest task se va lucra exclusiv în directorul /home/student/tema3-task4 Înainte de a vă apuca, intrați in directorul acesta.
64based.txt
. Acest fișier a fost codificat de 20 de ori cu base64
.unbase.sh
care să decodifice conținutul acestuia și să scrie noul conținut în 64unbased.txt
.
Pentru acest task se va lucra exclusiv în directorul /home/student/tema3-task5 Înainte de a vă apuca, intrați in directorul acesta.
my_menu.sh
care creează un meniu de bază pentru realizarea operațiilor pe fisiere si directoare într-un sistem cu Linux, conform diagramei:Ieșire
la fiecare pas, pentru a va facilita testarea. Acest pas nu are însă niciun efect asupra puncajului obținut la acest task.
Pentru acest task se va lucra exclusiv în directorul /home/student/tema3-task6 Înainte de a vă apuca, intrați in directorul acesta.
inventory.json
.find_common.sh
care găsește toate itemele comune (bazat strict pe nume) ale celor doi jucători și le pune în outputs/common_items.txt
.find_best.sh
care găsește toate itemele (de la ambii jucători) ce au câmp de durabilitate, le ordonează descrescător după aceasta și le pune în outputs/best_items.txt
.ref
..json
se recomandă folosirea utilitarului jq.