Noi scriem cel mai simplu manager de fișiere

Noi scriem cel mai simplu manager de fișiere


II. Loader. Care este principiul muncii încărcătorului nostru.

În cazul nostru, un încărcător este înțeles a fi un fișier .exe format dintr-un pachet de despachetare și date care






sunt anexate la sfârșitul dosarului. Descărcătorul citește aceste date și face necesar
(cu excepția discului, a rula etc.).
Pentru ca despachetorul să știe ce să facă cu datele, acestea trebuie să fie cumva structurate.
Noi scriem cea mai simplă combinație, deci nu vom fi înțelepți cu titlul. Vom face totul la un nivel minim.
De ce avem nevoie? Numele fișierului, lungimea numelui fișierului, mărimea datelor și, de exemplu, parametrii liniei de comandă
și lungimea sa. Schematic, poate fi reprezentat după cum urmează:

Dar cum înțelege despachetul unde se termină și de unde începe datele? Este foarte simplu. În foarte mult
unpacker, vom crea o constantă și o vom numi, de exemplu, ldr_size. Îi atribuim o valoare,
egală cu mărimea despachetorului.
Cum știm dimensiunea despachetorului? Cel mai simplu mod:

1. Colectăm încărcătorul nostru;
2. Ne uităm la dimensiunea sa;
3. Atribuiți ldr_size dimensiunea;
4. reasamblarea.

Prin urmare, principiul de funcționare a încărcătorului nostru este după cum urmează:
a) deschideți-vă lectura;
b) treci la ldr_size octeți;
c) procesați antetul;
d) procesează datele (creați (ascunse) și executați fișierul);
e) citiți următorul antet;
f) dacă nu există, atunci ieșim, altfel, c).


III. SCRISOARE SCRISĂ.

În următoarea parte, vă voi arăta cum să scrieți un constructor simplu pentru încărcătorul nostru și să obțineți un splitter complet de fișiere.






Între timp, ca temă, încercați să faceți singur constructorul.
De asemenea, fișierele sunt ușor de lipit împreună. Știm titlul. Ramane sa o umplem. Vă voi arăta un exemplu simplu.
Există un fișier fasmw.exe. Trebuie să îl atașați la încărcător, astfel încât acesta să ruleze cu parametrii "hello.asm".

Deci:
- fișier: fasmw.exe (9 octeți + 0 la sfârșit, total 10 sau 0Ah)
- linia de comandă: hello.asm (de asemenea 9 octeți + 0 la sfârșit, total 0Ah).
- dimensiune fasmw.exe: 122,880 octeți (0001E000h)

Adică, titlul va fi:

Totul! Acum, veți scrie antetul la fasm.exe și atașați cu îndrăzneală întregul fișier la sfârșitul încărcătorului nostru.

Comparați doar cele două fișiere fasmw.exe înainte și după adăugarea antetului pentru încărcătorul nostru.

fișierul fasmw.exe ÎNAINTE de prelucrare:


Și acum fișierul fasmw.exe DUPĂ procesare:

Așa că am scris cel mai simplu încărcător pentru cel mai simplu aderent. Dezasamblat, cum puteți să-l utilizați, chiar
fără construcție.

Îi cer începătorilor să citească acest articol, să încerce să înțeleagă totul, astfel încât totul să fie clar, până la ultimul octet.

Nu întrebați, căutați răspunsurile _ami_.

Apoi și numai atunci puteți face cu ușurință integrarea mai sofisticată, adăugați funcționalitatea.


II. CE ESTE UN BILDER ȘI CUM FUNCȚIONEAZĂ?

Un constructor, în cazul nostru, este un program care primește fișiere la intrare, iar la ieșire există un fișier .exe, la pornire
care va rula toate fișierele care au fost date constructorului. Da-da, aceasta este aceeași interfață obișnuită GUI, cu butoane asemănătoare
"Adăugare fișier", "Legare fișiere" etc.
Lucrarea constructorului este simplă:
1. Deschideți încărcătorul (vezi prima parte);
2. Deschideți fișierul din listă;
3. Scrieți fișierul antet (8 octeți) + parametrii și numele primului fișier;
4. Scrieți acest fișier la sfârșitul încărcătorului.
5. Dacă ați deschis toate fișierele, atunci ieșiți, în caz contrar punctul 2.

Modificăm încărcătorul puțin din prima parte, adăugând resurse (pictograma) la acesta. Acest lucru este posibil pentru a fi schimbat.

Uite, studiați. Mai ușor de gândit până greu. Este mai greu să te gândești ușor. În acest articol, în cele două părți, am examinat cum
Scrieți un joeyer simplu, dar complet, de orice număr de fișiere. Dacă aveți întrebări, voi încerca să le răspundeți.
Numai, vă rugăm, înainte de a cere - CĂUTĂȚI-VĂ RĂSPUNS!







Trimiteți-le prietenilor: