Kā Samazināt Exe Lielumu

Satura rādītājs:

Kā Samazināt Exe Lielumu
Kā Samazināt Exe Lielumu

Video: Kā Samazināt Exe Lielumu

Video: Kā Samazināt Exe Lielumu
Video: Торгуем по фазам Луны | Прогноз Биткоин BTC ETH XRP COMP AXS C98 новости обзор криптовалют 2024, Decembris
Anonim

Nelielais RAM un ilgtermiņa glabāšanas ierīču daudzums personālajos datoros iepriekš uzlika ļoti stingrus ierobežojumus programmu lielumam. Šī problēma šodien nepastāv. Tomēr pat tagad dažreiz ir svarīgi pēc iespējas samazināt izstrādātās lietojumprogrammas exe moduļa lielumu.

Kā samazināt exe lielumu
Kā samazināt exe lielumu

Nepieciešams

  • - avots;
  • - sastādītājs, linkeris;
  • - PE moduļu kompresori, piemēram, UPX, Themida.

Instrukcijas

1. solis

Veidojiet izpildāmās lietojumprogrammas laidiena versiju. IDE projekta iestatījumos atlasiet atbilstošo konfigurāciju. Ja šādas konfigurācijas nav, izveidojiet to, pamatojoties uz esošo. Mainiet saistītāju opciju sarakstu, noņemot un pievienojot atbilstošās direktīvas. Tātad, lietojot Microsoft izstrādes paketi, jums vajadzētu noņemt opciju / debug. Avota kodam varat pievienot arī šādu direktīvu: #pragma comment (linker, "/ RELEASE")

2. solis

Konfigurējiet projektu, lai pēc iespējas vairāk nesaistītu izpildāmo failu ar statiskām bibliotēkām. Izmantojiet attiecīgo bibliotēku koplietotās versijas. Piemēram, jūs varat izslēgt izpildlaika C un C ++ bibliotēkas kodu, aizstājot saistītāja opciju / ML vai / MT (statiskas viena un vairāku pavedienu bibliotēkas) ar / MD (vairāku pavedienu CRT DLL).

3. solis

Apsveriet dažādu exe moduļa sadaļu apvienošanu vienā. Šī metode nedos pamanāmu rezultātu, ja fails būs pietiekami liels, taču ar sākotnējo moduļa izmēru 20–30 kilobaiti palielinājums var būt ievērojams. Opcija / apvienot saiti ļauj sapludināt sadaļas. To var iestatīt, izmantojot projekta parametrus: / sapludināšana:.text =.data /merge:.reloc=.data /merge:.rdata=.data vai avota kodā izmantojot pragmas direktīvas: #pragma comment (linker, "/ sapludināt:.text =.data ") # pragmas komentārs (linker," /merge:.reloc=.data")#pragma komentārs (linker, "/merge:.rdata=.data")#pragma komentārs (linker" / sapludināšana:.idata =.data ") Ir jēga definēt arī iegūtās sadaļas atribūtus: #pragma comment (linker," /section:.data, rwe ")

4. solis

Samaziniet exe lielumu, nosakot minimālo bloku lieluma vērtību, pa kuras robežām ir izlīdzinātas sekcijas. Izmantojiet opciju / filealign linker, kas norādīta, rediģējot projekta rekvizītus vai pragmas direktīvu: #pragma comment (linker, "/ filealign: 0x200") Šī metode ir piemērota maziem moduļiem.

5. solis

Mēģiniet samazināt exe faila lielumu, izveidojot to ar optimizācijas iespējām, lai samazinātu mašīnkodu daudzumu. Nomainiet kompilatora opcijas / O2 vai / Od ar / O1.

6. solis

Nomainiet standarta DOS spraudni exe modulī ar savu, kuram būs minimālais izmērs. Izmantojiet opciju / stub linker: #pragma comment (linker, "/stub:mystub.exe") Šeit mystub.exe ir DOS izpildāmā faila nosaukums, kas tiks pievienots exe modulim kā spraudnis.

7. solis

Apsveriet iespēju norādīt savu pieteikšanās punktu. Tas novērsīs statisko izpildlaika bibliotēku inicializācijas kodu. Izmantojiet opciju / entry linker, piemēram: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

8. solis

Gatavā exe failā lietojiet tādas iepakojuma utilītprogrammas kā UPX, ASPack, Themida, PECompact. Moduļa dati tiks saspiesti. Pēc lietojumprogrammas palaišanas tie tiks izpakoti atmiņā. Šī metode dod labus rezultātus lieliem exe failiem, kas satur lielu daudzumu statisko datu ar zemu entropiju (piemēram, DIB rasteri resursu sadaļā).

Ieteicams: