Sådan Reduceres Størrelsen På En Exe

Indholdsfortegnelse:

Sådan Reduceres Størrelsen På En Exe
Sådan Reduceres Størrelsen På En Exe

Video: Sådan Reduceres Størrelsen På En Exe

Video: Sådan Reduceres Størrelsen På En Exe
Video: CSR Racing 2 модификация/Hack APK 2.14.1 2020! 2024, Kan
Anonim

Den lille mængde RAM og langvarige lagerenheder på personlige computere har tidligere lagt meget strenge begrænsninger på størrelsen på programmerne. Dette problem eksisterer ikke i dag. Men selv nu er det undertiden vigtigt at minimere størrelsen på exe-modulet til den udviklede applikation så meget som muligt.

Sådan reduceres størrelsen på en exe
Sådan reduceres størrelsen på en exe

Nødvendig

  • - kilde;
  • - kompilator, linker;
  • - kompressorer af PE-moduler, såsom UPX, Themida.

Instruktioner

Trin 1

Byg frigivelsesversionen af den eksekverbare applikation. Vælg den relevante konfiguration i projektindstillingerne i IDE. Hvis der ikke er en sådan konfiguration, skal du oprette den baseret på den eksisterende. Rediger listen over linkerindstillinger ved at fjerne og tilføje passende direktiver. Så når du bruger en udviklingspakke fra Microsoft, skal du fjerne indstillingen / debug. Du kan også tilføje følgende direktiv til kildekoden: #pragma comment (linker, "/ RELEASE")

Trin 2

Konfigurer projektet for at undgå at forbinde den eksekverbare med statiske biblioteker så meget som muligt. Brug delte versioner af de respektive biblioteker. For eksempel kan du ekskludere koden til C- og C ++ runtime-bibliotekerne ved at erstatte linker-indstillingen / ML eller / MT (statiske enkelt- og multitrådede biblioteker) med / MD (multitrådet CRT DLL).

Trin 3

Overvej at flette forskellige sektioner af exe-modulet til et. Denne metode giver ikke et mærkbart resultat, hvis filen er stor nok, men med den indledende modulstørrelse på 20-30 kilobytes kan gevinsten være betydelig. Indstillingen / flet linker giver dig mulighed for at flette sektioner. Du kan indstille det gennem projektparametrene: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data eller ved hjælp af pragmadirektiver i kildekoden: #pragma comment (linker, "/ flet:.text =.data ") # pragma-kommentar (linker," /merge:.reloc=.data")#pragma-kommentar (linker, "/merge:.rdata=.data")#pragma-kommentar (linker," / merge:.idata =.data ") Det giver også mening at definere attributterne for det resulterende afsnit: #pragma comment (linker," /sektion: data, rwe ")

Trin 4

Reducer størrelsen på exe ved at indstille minimumsværdien af størrelsen af blokke langs grænserne, som sektionerne er justeret med. Brug indstillingen / filealign linker, der er angivet ved at redigere projektegenskaberne eller pragmadirektivet: #pragma comment (linker, "/ filealign: 0x200") Denne metode er velegnet til små moduler.

Trin 5

Prøv at reducere størrelsen på exe-filen ved at opbygge den med optimeringsmuligheder for at reducere mængden af maskinkode. Udskift kompileringsmulighederne / O2 eller / Od med / O1.

Trin 6

Udskift standard DOS-stub i exe-modulet med din egen, som har den mindste størrelse. Brug indstillingen / stub linker: #pragma comment (linker, "/stub:mystub.exe") Her er mystub.exe navnet på den DOS-eksekverbare fil, der føjes til exe-modulet som en stub.

Trin 7

Overvej at angive dit eget startpunkt til applikationen. Dette eliminerer initialiseringskoden til de statiske runtime-biblioteker. Brug indstillingen / entry linker, for eksempel: #pragma comment (linker, "/ entry: MyStartup") ugyldig MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Trin 8

Anvend emballeringsværktøjer som UPX, ASPack, Themida, PECompact til den færdige exe-fil. Moduldataene komprimeres. De pakkes ud i hukommelsen efter start af applikationen. Denne metode giver gode resultater for store exe-filer, der indeholder en stor mængde statiske data med lav entropi (for eksempel DIB-raster i ressourceafsnittet).

Anbefalede: