delphi4arab منتديات دلفي للعرب
ضغط /فك ضغط الملف التنفيذي باستعمال UPX - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دلفي للعرب - القسم العام (https://delphi4arab.net/forum/forumdisplay.php?fid=10)
+--- الموضوع : ضغط /فك ضغط الملف التنفيذي باستعمال UPX (/showthread.php?tid=7755)



ضغط /فك ضغط الملف التنفيذي باستعمال UPX - wadoud - 24-04-2016

السلام عليكم 
إخوتي الكرام أحببت أن أشاركم تجربتي مع UPX أرجو ان تنال إعجابكم و أن أرد بعضا مما أدين به لهذا المنتدى الرائع.


RE: ضغط /فك ضغط الملف التنفيذي باستعمال UPX - محمد عبد العزيز - 24-04-2016

وعليكم السلام
انتبه اخي ودود نقول "إن شاء الله" انتبه للمسافة قبل حرف الشين
بالنسنة لUPX هو من برمجة Markus FXJ Oberhumer و László Molnár وفي وقت ما انظم اليهما John F. Reiser
تم تصميمه ليكون اخر برنامج لضغط الملفات التنفيذية بخصائص تميزه عن غيره منها المحمولية وخوارزميات الضغط الخاصة NRV/UCL/LZO من امضاء Oberhumer الذي تستخدم خوارزمياته كثيرا مثل في انظمة Linux وحتى وكالة الفضاء الأميريكية NASA

نعود لموضوعك اخي ودود لماذا استخدمت الخيار -1 ؟



RE: ضغط /فك ضغط الملف التنفيذي باستعمال UPX - wadoud - 24-04-2016


السلام عليكم
أشكرك أخي  وأستاذي عبد العزيز, لقد كان خطا مطبعيا بحثا وقع وأنا أكتب على عجالة. بارك الله فيك على حرصك تصويبي.
أما فيما يخص سؤالك :
إقتباس : نعود لموضوعك اخي ودود لماذا استخدمت الخيار 1-؟
إستخدمت الخيار 1- لأنني بكل بساطة كنت على عجالة وإذا لاحظت لقد ذكرت ان هناك خيارات أخرى حتى الرقم 9- , فكما تعلم هي مستويات الضغط للمستعمل الخيار, و المستعمل حتما سيستنتج ان الخيار 1- يختلف عن الخيار -9 والصورة التالية  توضح الفرق الكبير بين المستوى 1- و المستوى 9- :
[صورة: 18279d07b411806.jpg]
اما  الامر الملاحظ ان عملية الضغط تتم بشكل سريع جدا بالمستوى 1- ,  اما الاحسن ومن حيث المردودية طبعا هو المستوى 9-
وإذا سألتني أنت تستعمل المستوى 9-؟ أقول لك لا, بكل بساطة فهناك مستوى أحسن وهو يكتب على الشكل التالي:
upx -9 --best -v project1.exe   كما توضح الصورة:
[صورة: 355965a9564d8f7.jpg]
وقد يكون بطيء للملفات الكبيرة.
وهل هناك مستوى أحسن؟ نعم هناك مستوى أحسن ويكتب أمره كالتالي:
upx -9 --brute -v project1.exe
وذا سألت هل هناك مستوى ضغط أعلى من ذلك؟ أقول لك نعم ويكتب سطره كالتالي:
upx -9 --ultra-brute -v project1.exe.
ولكنني شخصيا أعتقد أن
 upx -9 --best -v project1.exe  هو الأحسن حسب المطورين لاحظ كلمة best.
السلام عليكم و رحمة الله. 



RE: ضغط /فك ضغط الملف التنفيذي باستعمال UPX - محمد عبد العزيز - 25-04-2016

نعم
الخيار -1 الى -9 تغير خواريزمية الضغط المستخدمة وخيارات بالخواريزمية مما يعطي نتيجة متغيرة والفرق هنا بثلاث
سرعة ضغط الملف
نسبة الضغط compression ratio اي حجم الملف بعد الضفط مقارنة بالحجم الاصلي
سرعة فك ضغط عند تنفيذ الexe
هناك عوامل اخرى مهمة في حالات خاصة مثل حجم الذاكرة المستخدمة (سواء عند الضغط او فك الضغط)، حجم أوامر فك الضغط بالذاكرة depacker code

عنذ ضغط ملف exe مبرمج بدلفي فهناك depacker خاص بدلفي او ما يسميه البعض delphi stub

الخيار -1 اسرع ضغط واسرع فك ضغط لكن ليس احسن نسبة ضغط و الخيار -9 العكس تماما
عندما تستخدم --best فانه يستخدم الخواريزمية NRV2E/10 انتبه لل10 فهي خيار بالخواريزمية
UPX يستخدم خواريزمياته الخاصة NRV2B، NRV2D، NRV2E وهي للخيارات -1 الى -9 يستخدم ايضا الخواريزمية الشهيرة LZMA يمكن استخدامها باضافة الخيار --lzma مثلا
UPX --lzma project1.exe
الخيار --lzma احسن من الخيار --best لكن من جهة اخرى يستهلك ذاكرة/وقت اكثر
الخيار --brute يستخدم كل الخواريزميات السابقة بمتغيرات ببعض الثوابت ايضا الخيار --ultra-brute فهو اكثر جنون ب72 متغير!

في كل الحالات احسن خيار هو --lzma خاصة في ايامنا والذاكرة الحية متوفرة ويمكن اهمالها! شخصيا استخدم الخيار -6

ملاحظة: عند استخدام خيارين من نفس الفئة فان واحد يلغي الثاني مثلا كتبت upx -9 --best -v project1.exe  فان --best يلغي -9 اما الخيار -v فهو لاظهار معلومات أكثر أثناء عملية الضغط



RE: ضغط /فك ضغط الملف التنفيذي باستعمال UPX - wadoud - 26-04-2016

السلام عليكم
 أشكر الأستاذ عبد العزيز على ما تفضل به, أود أن أتم الموضوع بهذه الأسطر 
هناك طريقة أسرع لضغط ملفك التنفيذي مع بقاءه تنفيذيا بالطبع و هو سحب الملف وافلاته مباشرة على UPX كما توضح الصورة التالية:

[صورة: 907c7f175ee15c6.jpg]


والملاحظ أن هذه الطريقة تنفذ الخوارزمية NRU2E/7 ولاتعطيك خيارا يعني هي قريبة مما يفضل أستاذنا عبد العزيز المهم لكم الصورة توضح ما ذكرت:


[صورة: def3e2f7135ecef.jpg]

المهم هو أنك إذا أردت فك الضغط  Decompress عن ملف تنفيذي مضغوط ب upx فما عليك إلا أن تكتب الأمر التالي:
uxp -d Project1.exe  
وهكذا نأتي على خاتمة الموضوع  وانوه أنه يمكن الإطلاع على help من خلال الامر
uxp --help
uxp -h
هذا مستعينا بالله أرجو توفيقه لى ولكم.
السلام عليكم.


RE: ضغط /فك ضغط الملف التنفيذي باستعمال UPX - محمد عبد العزيز - 26-04-2016

إقتباس :إذا أردت فك الضغط  Decompress عن ملف تنفيذي مضغوط ب upx

ان فشلت هذه يمكن فتح الملف بHeaventools PE Explorer ثم حفظه مفكوك، لان هذا الاخير به اضافة Plugin لفك UPX و UPack
ان فشل هذا الاخير يبقى الفك اليدوي هو السبيل.

للاشارة هناك الكثير البرامج التي تعمل كواجهة لUPX اذكر منها UPX Shell الذي يشبه واجهة ASPack
sourceforge.net/projects/upxshell
sourceforge.net/projects/upxshellv60
وايضا PureUPX المبرمج بPureBASIC
rsbasic.de/backupprogramme/PureUPX113.zip