ቀደም ሲል በግል ኮምፒውተሮች ላይ አነስተኛ መጠን ያለው ራም እና የረጅም ጊዜ የማከማቻ መሳሪያዎች በፕሮግራሞች መጠን ላይ በጣም ጥብቅ ገደቦችን አስቀመጡ ፡፡ ይህ ችግር ዛሬ የለም ፡፡ ሆኖም ፣ አሁንም ቢሆን በተቻለ መጠን የተሻሻለውን ትግበራ exe-ሞዱል መጠንን ለመቀነስ አንዳንድ ጊዜ አስፈላጊ ነው ፡፡
አስፈላጊ
- - ምንጭ;
- - አቀናባሪ, አገናኝ;
- - እንደ UPX ፣ Themida ያሉ የ PE ሞጁሎች መጭመቂያዎች ፡፡
መመሪያዎች
ደረጃ 1
ሊተገበር የሚችል የመተግበሪያውን የመልቀቂያ ስሪት ይገንቡ። በ IDE ውስጥ በፕሮጀክቱ መቼቶች ውስጥ ተገቢውን ውቅር ይምረጡ። እንደዚህ ዓይነት ውቅር ከሌለ አሁን ባለው ላይ በመመስረት ይፍጠሩ። ተገቢ መመሪያዎችን በማስወገድ እና በመጨመር የአገናኝ አማራጮችን ዝርዝር ያስተካክሉ። ስለዚህ ፣ ከማይክሮሶፍት የልማት ፓኬጅ ሲጠቀሙ / የማረም አማራጩን ማስወገድ ይኖርብዎታል። እንዲሁም የሚከተለውን መመሪያ ወደ ምንጭ ኮድ ማከል ይችላሉ-#pragma comment (linker, "/ RELEASE")
ደረጃ 2
በተቻለ መጠን አስፈፃሚውን ከቋሚ ቤተ-መጻሕፍት ጋር እንዳያገናኝ ፕሮጀክቱን ያዋቅሩ ፡፡ የሚመለከታቸው ቤተ-መጻሕፍት ስሪቶችን ይጠቀሙ። ለምሳሌ ፣ የአገናኝን አማራጭ / ኤምኤል ወይም / ኤምቲ (የማይንቀሳቀስ ነጠላ እና ባለብዙ ክር ቤተ-መጻሕፍት) በ / MD (ባለብዙ-ክር CRT DLL) በመተካት የ “C” እና “Cuntime libraries” ኮድ ማስቀረት ይችላሉ ፡፡
ደረጃ 3
የቀድሞው ሞዱል የተለያዩ ክፍሎችን ወደ አንድ ለማዋሃድ ያስቡ ፡፡ ይህ ዘዴ ፋይሉ በቂ ከሆነ ሊታወቅ የሚችል ውጤት አይሰጥም ፣ ነገር ግን በመነሻ ሞጁሉ መጠን ከ20-30 ኪሎባይትስ ፣ ትርፉ ከፍተኛ ሊሆን ይችላል። የ / ውህደት አገናኝ አማራጩ ክፍሎችን ለማዋሃድ ያስችልዎታል። በፕሮጀክት መለኪያዎች በኩል ማዘጋጀት ይችላሉ / ማዋሃድ:.text =.data /merge:.reloc=.data /merge:.rdata=.data ወይም በመነሻ ኮድ ውስጥ የፕራግማ መመሪያዎችን በመጠቀም: #pragma አስተያየት (አገናኝ, "/ ውህደት:.text =.data ") # pragma comment (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker,") / ማዋሃድ:.idata =.data ") በተጨማሪም የተገኘውን ክፍል ባህሪዎች መግለፅም ትርጉም አለው-#pragma comment (linker," /section:.data, rwe ")
ደረጃ 4
ክፍሎቹ በተሰለፉባቸው ድንበሮች ላይ የቦሎቹን መጠን አነስተኛውን እሴት በማቀናበር የባህሩን መጠን ይቀንሱ ፡፡ የፕሮጀክት ንብረቶችን ወይም የ pragma መመሪያን በማስተካከል የተገለጸውን / የፋይል አገናኝ አገናኝ አማራጩን ይጠቀሙ-#pragma አስተያየት (አገናኝ ፣ "/ filealign: 0x200") ይህ ዘዴ ለአነስተኛ ሞጁሎች ተስማሚ ነው
ደረጃ 5
የማሽኑን ኮድ መጠን ለመቀነስ በማመቻቸት አማራጮች በመገንባት የ exe ፋይሉን መጠን ለመቀነስ ይሞክሩ። የ / O2 ወይም / Od አጠናቃሪ አማራጮችን በ / O1 ይተኩ።
ደረጃ 6
በቀድሞው ሞጁል ውስጥ መደበኛውን የ DOS ማጠፊያ በራስዎ ይተኩ ፣ ይህም አነስተኛውን መጠን ይኖረዋል። የ / stub አገናኝ አማራጩን ይጠቀሙ-#pragma አስተያየት (አገናኝ ፣ "/stub:mystub.exe") እዚህ mystub.exe ወደ exe ሞዱል እንደ ጭራሮ የሚጨመር የ DOS ተፈጻሚ ፋይል ስም ነው።
ደረጃ 7
ለመተግበሪያው የራስዎን የመግቢያ ነጥብ ለመለየት ያስቡ ፡፡ ይህ የማይንቀሳቀስ የጊዜ ቤተ-መጻሕፍት የመነሻ ኮድ ያስወግዳል ፡፡ የ / የመግቢያ አገናኝ አማራጩን ይጠቀሙ ፣ ለምሳሌ: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}
ደረጃ 8
በተጠናቀቀው የ exe ፋይል ላይ እንደ UPX ፣ ASPack ፣ Themida ፣ PECompact ያሉ የማሸጊያ መገልገያዎችን ይተግብሩ ፡፡ የሞዱል መረጃዎች ይጨመቃሉ ፡፡ መተግበሪያውን ከጀመሩ በኋላ በማስታወሻ ውስጥ እንዲነቀሉ ይደረጋሉ ፡፡ ይህ ዘዴ አነስተኛ ኢንትሮፒ (ለምሳሌ ፣ በሀብት ክፍል ውስጥ ዲ.አይ.ቢ. ራስተር) ከፍተኛ መጠን ያለው የማይንቀሳቀስ መረጃን ለሚይዙ ለትላልቅ የውጭ ፋይሎች ጥሩ ውጤቶችን ይሰጣል ፡፡