سلام
کسی سر در می آره این چی گفته
یعنی باید چکار کنیم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
کسی سر در می آره این چی گفته
یعنی باید چکار کنیم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
راهكارها و شيوه هاي مختلف براي كاهش حجم فايلهايي كه با وي بي كامپايل شده و مي شوند.
شما ميتونيد از تيم ترجمه درخواست كنيد اين متن رو براتون ترجمه كنه.
هر چند بهترين راهكار به نظر بنده همون استفاده از packer ها هست.
سلام
خیلی ممنون بخاطر جواب
اگه میشه یه مقدار در مورد packer ها توضیح بدید
اگه راه دیگه ای هم وجود داره لطفا زحمتش رو بکشید
من اون متن رو واسه گروه ترجمه میفرستم
بازم ممنون
ساسر جان پکیجر که بدجور حجم رو زیاد میکنه !!!
پكيجر نه عزيز پكر. مثل UPX كه براي فشرده سازي و كاهش حجم برنامه ها هستند. جلوي كرك شدن رو هم تا حدودي ميگيرن.نوشته شده توسط nishnish
حالا كسي يه پكر كه به راحتي Unpack نشه و Protector ها هم مشكل نداشته باشه كسي ميشناسه؟ يعني برنامه رو بعد از Pack بشه Protect هم كرد.
سلام
متن رو دوستان زحمت کشیدن ترجمه کردن که من اینجا میزارمش
------------------------------------------------------------------------
چگونه فایل های VB EXE کوچکتر از 5k بسازیم.
بیشترین استفاده را از فایل EXE خود ببرید.
همه می دانیم که VB فایل های EXE بزرگی می سازد, حتی اگر شما یک بخش خالی اضافه کنید. من فکر می کنم که حداقل اندازه ای که شما می توانید از VB بگیرید 12k است. یک فرم اضافه کنید و این اندازه به 16k هم می رسد.
قبل از اینکه از ابزار هایی که معرفی می کنم استفاده کنید چند کار ساده می توانید انجام دهید. (توجه کنید که ما تصور می کنیم شما روی یک برنامه خیلی کوچک VB کار می کنید نه یک محصول کامل.)
برداشتن کد های سرعت
در اول از آنجا که هدف ما کم کردن اندازه است, کد هایی مثل Variable1 = API Call Va ' riable2 = API call(Variable1) Variable3 = TrimNull(Variable2) را برداشته و با یک خط ساده TrimNull(API Call(API Call)) تعویض کنید. سعی کنید هر چند تا متغیر که می توانید از کد خود پاک کنید.
حقه بعدی این است که VB اسم پروژه شما را در فایل اجرایی ذخیره می کند. و بعضی مواقع بیش از یک بار. مانند اسم فرم یا مدول شما. شما می توانید فایل را حتی کوچکتر کنید با تغییر نام پروژه خود و اجزاء آن به یک کاراکتر.
و بالاخره آخرین بهینه سازی که شما می توانید انجام دهید (که به افزایش سرعت نیز کمک میکند.) تعویض اسم های مستعار با اسم واقعی API. از ShellExecuteA به جای ShellExecute Alias "ShellExecuteA" استفاده کنید. و حتی بهتر اگر شما برای کامپیوتر خود و یا یک سیستم عامل (مثلآ XP) برنامه می نویسید اسم API را با عدد ترتیبی(Ordinal) آن تعویض کنید. عدد Ordinal شماره ای است محل API را در DLL مشخص می کند. شما می توانید از ابزار "Depends" برای یافتن ordianl یک عمل استفاده کنید که در VB6 وجود دارد. سپس فقط از "ShellExecuteA Lib "user32" Alias "#xxx" استفاده کنید که در آن XXX در واقع ordinal برای ShellExecuteA می باشد. این عمل حتی کد شما را سریعتر هم می کند و البته کوچکتر.
آخرین راهکار البته کامپایل کردن با P-code است زیرا یاد آور می شوم که ما به دنبال سرعت نیستیم.
اما به هر حال ممکن است شما متوجه شوید که حتی بعد از این بهینه سازی ها فایل شما هنوز به همان اندازه است. به این خاطر است که VB از یک خط کشی خیلی بزرگ استفاده می کند(فاصله بین بخشها در یک فایل اجرایی) و فایل شما با NULL (صفر) هایی پر می شود که به 12k می رسد. و اینجاست که کار کمی پیچیده می شود.
Packerها
اولین انتخاب شما استفاده از یک packer به نام FSG است (در google به دنبال FSG 1.33 بگردید). packer فایل شما را در حدود 3k میکند.
یا می توانید از CompileController این سایت استفاده کنید (توجه کنید که کد از VBPJ توسط نویسنده قرض گرفته شده است) و در زمان لینک دادن /FILEALIGN:0x200 را مشخص کنید. این کار باعث می شود که VB یک فایل EXE پاک ولی در حدود 5-6k بسازد, به جای فایلی که در حافظه اجرا می شود (مانند FSG). بهتر است این مشکل را داشته باشید و فقط به حای آن از FSG استفاده کنید. به هر حال این کار از UPX بهتر است.
پاک کردن resourceها
به هرحال شما ممکن است بخواهید مقدار بیشتری از حجم فایل خود را کاهش دهید. من قول 1-2k را داده بودم ه 3k که احتمالا FSG ساخته است. خوب, بعد از کامپایل کردن فایل اجرایی آنرا با Resource Hacker (در google بیابید) باز کنید و تمام resource های داخل آنرا پاک کنید (اطلاعات version و iconها). ولی هنوز آنرا ذخیره نکنید زیرا packerها فایل های بدون resource را فشرده کنند. حقه اینجا ساختن یک فایل یک بایتی (توسط notepad) است. و ذخیره کردن آن در جایی. سپس در resource hacker به منوی action رفته و گزینه add new resource را انتخاب کنید. فایلی را الان ساختید انتخاب کنید. و از نوع3 و اسم 1 استفاده کنید. فایل شما الآن یک آیکون یک بایتی دارد. آنرا ذخیره کنید.
فایل اجرایی 12k باید الآن 11k باشد, یا شاید 10.5 یا شاید هنوز 12k باشد به خاطر پد ها ولی نگران نباشید. FSG تفاوت را میبیند. آنرا روی فایل بدون resource استفاده کنید و باید به 2k برسید.
البته دوباره یادآور می شوم که در این مقاله فرض شده است که شما روی یک فایل کمکی کوچک برای برنامه اصلی خود کار می کنید. که هیچ آیکونی ندارد, کدهای بهینه سازی نشده دارد و بسته به نوع تکنیک API که از آن استفاده می کنید فقط روی یک سیستم عامل کار می کند. اما به هر حال اگر این آن چیزی است که شما به دنبالش هستید این مقاله به شما کمک می کند تا از شر آن فایل های بزرگ 16k خلاص شوید. به عنوان آخرین راهکار سعی کنید از کدهای API به جای فرمها/کنترلها استفاده کنید. به دنبال مثال های کد خوب Viktor E. بگردید.
امیدوارم هر کس از این مقله چیزی آموخته باشد.
-------------------------------------------------------
در ضمن در مورد این چیزهایی (پکیجر و پکر) که مینویسید یه خورده توضیح بدید
سلام
دوست عزیز تشکر![]()
قربانت : شاهین
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
PDF همین مقاله
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)