PDA

View Full Version : سوال درمورد Compile To Native Code و رفع وابستگی به موتور msvbvm60.dll



mehran901
دوشنبه 06 آذر 1391, 00:02 صبح
با عرض سلام
همون طوری که همه اساتید می دونید ویبی 6 به دوشکل P-Code و Native Code کامپایل انجام می ده
http://axgig.com/images/76904181630369455632.jpg
سوال بنده این هست که درصورت استفاده از Native Code نیاز برنامه به فایل MsVbVm60.dll
برطرف میشه ؟ به عبارت دیگه برنامه ما بدون نیاز به این فایل می تونه اجرا بشه ؟(ساده ترین برنامه ممکن مد نظر است)
در کتابی خوندم که حتی اگه به Native هم تبدیل بشه برای بعضی از تحلیل ها به موتور msvbvm60.dll
نیاز داره.....

کامپایلر دلفی هم به Native کامپایل می کنه و نتیجش اینه برنامه ایجاد شده یک برنامه مستقل ( به شرطی که برنامه نویس خودش از بیرون وابستش نکنه ) ، پرتابل هست که در حالت پایه بدون نیاز به فایل کمکی اجرا میشه ! و به وابسته نیست ..... مگه Native ویبی با native دلفی نباید بر یک استاندارد باشه ؟ اگه آره پس اون کتاب " کتاب مرجع برنامه نویسان ویبی 6 " چی گفته که باز به موتور msvbvm60.dll
نیاز داره؟!!؟!

جدا جای سوال شده



و همین طور ویروس ها ، بدون نیاز به پلتفورم خاصی ( بجز سیستم عامل ) اجرا میشن... به نظرتون ویروسی که با ویبی نوشته شده این موتور رو قبل از اجرای کامل ( اگه فرم داره، قبل از اجرای فرم ) از حالت ریسورس بیرون میاره ؟! کسی در مورد نحوه اجرای ویروس ها بدون نیاز به فایل های کمکی هم اطلاعی داره ، بگن خوشحال میشم...

درضمن : استفاده از مطالب در ارتباط با سازوکار ویروس جهت افزایش اطلاعات و استفاده صحیح از این الگو در پرتابل سازی بوده و امیدوارم پست قفل نشود!


ممنون از همگی

mehran901
دوشنبه 06 آذر 1391, 00:04 صبح
دوستان اگر کسی در رابطه با Advanced option بخش native code اطلاعات جامعی دارند لطفا راهنمایی کنن ...

محسن واژدی
دوشنبه 06 آذر 1391, 12:17 عصر
سلام عليکم
Native-code مستقيما توسط CPU پردازش و اجرا ميشود اما P-Code قبل از اجرا شدن بايستي توسط يه مفسر (Interpreter) تفسير شود، در کل سرعت Native-Code از P-Code بيشتر هست همچنين فضاي آنهم. اگر در وي بي دقت کرده باشيم وقتي Native-Code را انتخاب ميکنيم، در زمان کامپايل در Progress-Bar موجود در نوار ابزار (تصویر زیر) که متن وضعیت نشان میدهد که برنامه کامپایل میشود (Compile...) اما در P-Code انچنین نیست و مستقیما exe تولید میشود.
95608

از نظر وابستگی این دو فایل به msvbvm60.dll، همه فایل های vb6 به موتور مجازی وی بی نیاز دارند (چه برنامه های بی خطر و چه بدافزاهای تولید شده با وی بی)، یعنی اگر دسترسی به این فایل به هر نحوی قطع بشه برنامه های وی بی و حتی خود وی بی از کار می افتد.



موفق باشید

mehran901
دوشنبه 06 آذر 1391, 15:23 عصر
بسیار ممنون بابت پاسخ کاملتون .
این فایل msvbvm60.dll ّبه طور پیش فرض بر روی چه ویندوز هایی هست ؟ ( یکی از دوستان گفتن بطور پیش فرض موجود نیست و از طرفی در جایی خوندم بجز ویندوز 95 در نسخه های بعدی ویندوز این موتور وجود داره !! درسته ؟؟) اگه با نصب ویبی این موتور ایجاد می شه پس عملا ویروس هایی که توسط ویبی نوشته میشن نباید روی خیلی از سیستم ها اجرا بشن ... در صورتی که این طور نیست ...

خب دوست عزیز کامپایلر دلفی هم به کد بومی Native کامپایل می کنه و برنامه حاصله ، بدون نیاز به فایل وابسته ای و به طور مستقل اجرا میشه ! اون چطور پس؟


درضمن به نکته قشنگی در رابطه به Compiling ... اشاره کردین ... مرسی.... دقت نکرده بودم
تشکر میشه

محسن واژدی
دوشنبه 06 آذر 1391, 18:12 عصر
این فایل msvbvm60.dll ّبه طور پیش فرض بر روی چه ویندوز هایی هست ؟ ( یکی از دوستان گفتن بطور پیش فرض موجود نیست و از طرفی در جایی خوندم بجز ویندوز 95 در نسخه های بعدی ویندوز این موتور وجود داره !! درسته ؟؟) اگه با نصب ویبی این موتور ایجاد می شه پس عملا ویروس هایی که توسط ویبی نوشته میشن نباید روی خیلی از سیستم ها اجرا بشن ... در صورتی که این طور نیست ...نه اتفاقا" این فایل بطور پیش فرض در همه ویندوزهای اخیر وجود داره حتی msvbvm50.dll موتور vb5 هست تا نسخه های ویندوز xp هم وجود داشت (فکر کنم پشتیبانی از این فایل از ویندوز Vista به بعد بود که متوقف شد، و اگه طالب استفاده اش باشیم باید دانلود یا از جای دیگه ای به ویندوز جدید منتقل کنیم)
البته کتاب خانه run-time برنامه هایی مثل C++‎‎‎‎ هم در ویندوز قرار دارد (msvcp60.dll,msvcp70.dll، msvcr60.dll,msvcr70.dll و چندتای دیگه؛ cp در نام فایل ها، اشاره به برنامه های C++‎‎ و cr برنامه های C)


خب دوست عزیز کامپایلر دلفی هم به کد بومی Native کامپایل می کنه و برنامه حاصله ، بدون نیاز به فایل وابسته ای و به طور مستقل اجرا میشه ! اون چطور پس؟ بله، چون همه فایل های مورد نیاز و run-time library ضمیمه برنامه میشوند به همین دلیل فضای فایل هایی که در دلفی کامپایل شده اند حتی اگه یک پروژه خالی باشد 500kb به بالا هست اما فضای یک برنامه کامپایل شده (خالی از هر آبجکت و کدی) در وی بی 20kb هست (یا در C++‎‎‎‎‎‎‎) در حالی که انتظار میرفت فضای اولیه برنامه های وی بی هم مثل دلفی و ... باشه

موفق باشید

mehran901
دوشنبه 06 آذر 1391, 20:58 عصر
بسیار ممنونم ... و شما به نظرتون این نقطه قوت یک کامپایلر هست یا نقطه ضعفش ؟ ( که همه فایل های کمکی رو درون فایل اگزه res بشن ) ...

محسن واژدی
دوشنبه 06 آذر 1391, 21:12 عصر
بسیار ممنونم ... و شما به نظرتون این نقطه قوت یک کامپایلر هست یا نقطه ضعفش ؟ ( که همه فایل های کمکی رو درون فایل اگزه res بشن ) ...
خواهش میکنم، البته بنده در اون جایگاهی نیستم که نظری بدهم
به نظر بنده این میتونه یک نقطه قوت باشه چون حداقل برنامه با برنامه فایل های ذاتی خودش مشکلی ندارد (وابستگی خارجی ندارد) و برای اجرا در جاهایی مثل ویندوز های پرتابل به مشکلاتی که عموما برنامه های وی بی دست و پنجه نرم میکنن مواجه نیست،
البته نظرات متفاوت هست ولی خب این نظر شخصی بنده بود،