Dap, am dat ZE exam…Am avut noroc, iar subiectele au fost in genul celor date anul trecut.
De-aia am zis sa pun si rezolvarile (cel putin cum le-am facut eu)
Enunturile sunt la feedback from Quality Management of IT&C Secure Systems – take 2
1. e) nicio varianta, pentru ca din hexa F8h tre sa aduni 30h sa dai in ASCII, si sare de cat duce ASCII;
2. Stiva arata asa:
SS:1280 | SS:1282 | SS:1284 | SS:1286 | SS:1288
| | | 36 12 | 3412
3. d) Instructiunea e gresita, pentru ca AX are un word, iar vb2 e un double-word. TASM-ul zice ca operatorii nu au acelasi tip si iese pe eroare. NASM-ul ruleaza si pune in AX 5678h
4. b) a=8, b=8. Atentie la adresele segment:deplasament ale variabilelor! Calculand valorile efective ale adreselor, a si b pointeaza la aceeasi zona de memorie
5. e) Bucla infinita. Instructiunea “loop” verifica CX>0 si face decrement de CX.
6. c) XOR ax, ax e codificata pe 2 B (hint: dump-ul de TASM zice clar CS:0009 33 C0 – deci 2B)
7. b) cx e 1, pt. ca, desi jumpul te duce la salt1, in salt1 nu se mai face un alt jump la o eticheta de “final”, ci se continua executia codului …care e salt2
8. De stiut ca la apelul unei proceduri de tip FAR, pe stiva se salveaza, in ordine: adresa segmentului de cod CS, apoi adresa instructiunii de revenire din procedura IP, instructiunea imediat urmatoare apelului de tip FAR:
SS:000C
SS:000E = 1E00 (IP in little endian – asta e adresa imediat mai jos dupa call FAR)
SS:0010 = 2B4F (CS in little endian – CS e sus in lista registrilor aratata de TASM)
SS:0012 = 0000h (same below)
SS:0014 = 0200h (explicatia ca mai jos)
SS:0016 = 0700h (little endian in memorie, inversat la mov in ax: 0007h, inversat iar la push ax, deci pe stiva e 0700h)
9. B= b + a + d + c + f + e - din teoria functionarii intreruperilor
10. “rep movsb” e mai eficient ca memorie caci codificarea instructiunii se face pe 2B, pe cand la varianta cu loop se face pe 3B. Ca si consum de CPU, prima e mai rapida, cu 2/3 cicli, pe cand a doua ia un ciclu CPU intreg.
11. Eu as alege implementarea cu proceduri, caci pe dispozitivele mobile, unde am putin spatiu, expandarea macrodefinitiilor m-ar rupe de memorie.
12. 1. Codul prezentat acolo nu face corect adunarea celor 3 numere, caci reseteaza AX-ul inainte sa apuce sa puna rezultatul in variabila x
2. Either way (1.) codul lipsa este A3 00 00
13. B = a + c
14. de sus in jos: overwriting, companion, parasitic
15. B = b + c + d
16. Virusii de tip companion pot fi doar de tip executabil, pentru ca e nevoie ca fisierul infectat sa fie _executat_ pentru ca virusul sa se poata extinde
17. B = a + c
18. Virusii de SCV au efect numai pe masinile de dezvoltare. Odata compilati si rulati pe masina clientului, ei nu infecteaza niciun fisier. SCV se transmite pe masinile de dezvoltare ale celor care incorporeaza in programele lor codul deja infectat.
19. Problema de “Reverse Compiling” e rezolvata prin transmiterea codului virusului ca date in executia programului infectat.
20. Codul apartine virusului de tip overwriting pe nume MINI44 (scrie si jos in cod) si e cod viral pentru ca are rutine de cautare: 4Eh si 4Fh si de copiere mov DX,100h a codului sau peste PSP 100 al programului initial: deci e un virus de tip overwriting.
