როგორ შევამციროთ Exe ზომა

Სარჩევი:

როგორ შევამციროთ Exe ზომა
როგორ შევამციროთ Exe ზომა

ვიდეო: როგორ შევამციროთ Exe ზომა

ვიდეო: როგორ შევამციროთ Exe ზომა
ვიდეო: როგორ შევიმციროთ წელის ზომა და დავიკლოთ პირსახოცით,იაპონური მეთოდი 2024, მაისი
Anonim

მცირე რაოდენობის ოპერატიული მეხსიერება და გრძელვადიანი შენახვის მოწყობილობები პერსონალურ კომპიუტერებზე წარსულში ძალიან მკაცრ შეზღუდვებს აწესებდა პროგრამების ზომაზე. ეს პრობლემა დღეს არ არსებობს. ამასთან, ახლაც ზოგჯერ მნიშვნელოვანია შემუშავებული პროგრამის exe- მოდულის ზომის მაქსიმალურად შემცირება.

როგორ შევამციროთ exe ზომა
როგორ შევამციროთ exe ზომა

აუცილებელია

  • - წყარო;
  • - შემდგენელი, დამაკავშირებელი;
  • - PE მოდულების კომპრესორები, როგორიცაა UPX, Themida.

ინსტრუქციები

Ნაბიჯი 1

შექმენით შევსებადი პროგრამის გამოშვების ვერსიით. IDE– ს პროექტის პარამეტრებში აირჩიეთ შესაბამისი კონფიგურაცია. თუ ასეთი კონფიგურაცია არ არის, შექმენით ის არსებულიდან გამომდინარე. შეცვალეთ დამაკავშირებელი პარამეტრების სია შესაბამისი დირექტივების ამოღებით და დამატებით. ასე რომ, Microsoft– ის განვითარების პაკეტის გამოყენებისას, უნდა ამოიღოთ / გამართვის ვარიანტი. ასევე შეგიძლიათ დაამატოთ შემდეგი დირექტივა კოდს: # პრაგმის კომენტარი (linker, "/ RELEASE")

ნაბიჯი 2

პროექტის კონფიგურაცია, რათა თავიდან იქნას აცილებული შესრულებადი სტატიკური ბიბლიოთეკები მაქსიმალურად. გამოიყენეთ შესაბამისი ბიბლიოთეკების გაზიარებული ვერსიები. მაგალითად, შეგიძლიათ გამორიცხოთ C და C ++ ბიბლიოთეკების კოდი, თუ შეცვლით linker ვარიანტს / ML ან / MT (სტატიკური ერთჯერადი და მრავალ ძაფიანი ბიბლიოთეკები) / MD (მრავალ ძაფიანი CRT DLL).

ნაბიჯი 3

განვიხილოთ exe მოდულის სხვადასხვა მონაკვეთების შერწყმა ერთში. ეს მეთოდი შესამჩნევ შედეგს არ მოგვცემს, თუ ფაილი საკმარისად დიდია, მაგრამ მოდულის საწყისი ზომით 20-30 კილობაიტი, მოგება შეიძლება მნიშვნელოვანი იყოს. / შერწყმის დამაკავშირებელი პარამეტრი საშუალებას გაძლევთ გაერთიანოთ სექციები. ამის დაყენება შეგიძლიათ პროექტის პარამეტრების საშუალებით: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data ან პრაგმატული დირექტივების გამოყენებით კოდში: #pragma comment (linker, "/ შერწყმა:.text =.data ") # პრაგმის კომენტარი (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / შერწყმა:.idata =.data ") ასევე აზრი აქვს განყოფილების ატრიბუტების განსაზღვრას: #pragma კომენტარი (linker," /section:.data, rwe ")

ნაბიჯი 4

შეამცირეთ exe- ის ზომა ბლოკების ზომის მინიმალური მნიშვნელობის დაყენებით, რომელთა საზღვრები გასწორებულია მონაკვეთებით. გამოიყენეთ / filealign linker პარამეტრი, რომელიც მითითებულია პროექტის თვისებების ან პრაგმატული დირექტივის რედაქტირებით: #pragma კომენტარი (linker, "/ filealign: 0x200") ეს მეთოდი შესაფერისია მცირე მოდულებისათვის.

ნაბიჯი 5

შეეცადეთ შეამციროთ exe ფაილის ზომა ოპტიმიზაციის ვარიანტებით შექმნით, რომ შეამციროთ მანქანის კოდის რაოდენობა. შეცვალეთ / O2 ან / Od შემდგენლის პარამეტრები / O1– ით.

ნაბიჯი 6

შეცვალეთ სტანდარტული DOS stub exe- მოდულში თქვენით, რომელსაც მინიმალური ზომა ექნება. გამოიყენეთ / stub linker ვარიანტი: #pragma კომენტარი (linker, "/stub:mystub.exe ")აქ mystub.exe არის DOS შესრულებადი ფაილის სახელი, რომელიც დაემატება exe მოდულს როგორც stub.

ნაბიჯი 7

გაითვალისწინეთ, რომ მიუთითეთ პროგრამაში საკუთარი შესვლის წერტილი. ეს აღმოფხვრის სტატიკური მოქმედების ბიბლიოთეკების ინიციალიზაციის კოდს. გამოიყენეთ / entry linker ვარიანტი, მაგალითად: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

ნაბიჯი 8

გამოიყენეთ შეფუთვის საშუალებები, როგორიცაა UPX, ASPack, Themida, PEC კომპაქტი დასრულებულ exe ფაილზე. მოდულის მონაცემები შეკუმშული იქნება. ისინი აპლიკაციის დაწყების შემდეგ ამოიღებენ მეხსიერებაში. ეს მეთოდი კარგ შედეგს იძლევა დიდი exe ფაილებისთვის, რომლებიც შეიცავს დიდი რაოდენობით სტატიკურ მონაცემებს დაბალი ენტროპიით (მაგალითად, DIB რასტრები რესურსების განყოფილებაში).

გირჩევთ: