View Full Version : نحوه کامپایل در دلفی prism
araelectronic@ymail.com
جمعه 06 آبان 1390, 23:28 عصر
با سلام
میخواستم بدونم آیا دلفی prism هم مانند دلفی Native فایل exe تولید میکند یا مانند برنامه های دات نت بزبان IL تبدیل می کند ؟
با توجه به اینکه دلفی امنیت بالاتری از VS دارد آیا این امنیت شامل دلفی داتنت هم می شود یا دلفی native امنیت بالاتری دارد ؟
با تشکر
Felony
شنبه 07 آبان 1390, 05:07 صبح
میخواستم بدونم آیا دلفی prism هم مانند دلفی Native فایل exe تولید میکند یا مانند برنامه های دات نت بزبان IL تبدیل می کند ؟
وقتی حرف از Net. به میان میاد یعنی کد باید به زبان میانی ترجمه بشه و وظیفه تولید فایل اجراییی نهایی با Net. هست .
با توجه به اینکه دلفی امنیت بالاتری از VS دارد آیا این امنیت شامل دلفی داتنت هم می شود یا دلفی native امنیت بالاتری دارد ؟
خیر ؛ کدهای تولید شده توسط Delphi Prism کدهای Managed هستن و امنیتشون قابل مقایسه با فایل های اجرایی تولید شده با نسخه Native دلفی نیست .
araelectronic@ymail.com
شنبه 07 آبان 1390, 12:52 عصر
با تشکر از جوابتون
میبخشید managed که فرمودید را میشه یکم بیشتر توضیح بدید ؟ و اینکه بالاخره native امنیت بالایی داره با prism ؟
با تشکر
BORHAN TEC
شنبه 07 آبان 1390, 13:25 عصر
میبخشید managed که فرمودید را میشه یکم بیشتر توضیح بدید ؟
به عبارتی بسیار ساده باید بدانید که برنامه هایی که به صورت مدیریت شده هستند توسط یک مفسر اجرا می شوند.
و اینکه بالاخره native امنیت بالایی داره با prism ؟
native
vcldeveloper
شنبه 07 آبان 1390, 18:07 عصر
به عبارتی بسیار ساده باید بدانید که برنامه هایی که به صورت مدیریت شده هستند توسط یک مفسر اجرا می شوند.
لزوما همچین چیزی نیست! کدهای پلت فرم هایی مثل دات نت یا جاوا JIT میشند، نه اینکه یک مفسر اونها رو اجرا کنه!
میبخشید managed که فرمودید را میشه یکم بیشتر توضیح بدید ؟
managed یعنی اینکه کدهای تولید شده از روی سورس کد شما به جای اینکه برای ماشین مقصد مورد نظر شما کامپایل بشند، برای یک ماشین مجازی کامپایل میشند، و این ماشین مجازی باید در سیستم مقصد مورد نظر شما نصب باشه؛ در اون صورت، کدهای شما در ماشین مقصد در یک محیط مجازی کنترل شده (managed) اجرا میشند، و اون محیط مجازی هست که دستوران برنامه شما را به معادل قابل فهم برای ماشین حقیقی مورد نظر شما ترجمه میکنه، و امکان دسترسی مستقیم برنامه شما به منابع ماشین مقصد حقیقی را به برنامه شما نمیده. این نوع معماری مزایا و معایبی داره که در اکثر سناریوها مزایای آن از معایبش بیشتر هست.
بالاخره native امنیت بالایی داره با prism ؟
امنیت در چه چیزی؟ به طور کلی عامل اصلی تعیین کننده میزان امنیت برنامه شما طراحی برنامه و نحوه پیاده سازی شما ست. به طور کلی، محیط های مدیریت شده امنیت بیشتری برای کاربر نهایی به وجود میارند، چون امکان خرابکاری برنامه ایی که داره در یک محیط ایزوله مجازی اجرا میشه و دسترسی مستقیم به منابع سیستم نداره، از یک برنامه ایی که دسترسی های متنوعی به منابع سیستم داره، بسیار کمتر هست، و محیط مجازی مربوطه میتونه در حین اجرای اون برنامه، پارامترهای امنیتی مختلفی رو بررسی کنه.
امنیت در محافظت از سورس کد یک برنامه یک مقوله دیگه هست؛ به طور کلی در محیط های Managed با توجه به استفاده از یک زبان میانی، و نتا دیتا های مختلف، در صورتی که از مکانیزم های محافظتی مناسبی استفاده نشه، احتمال دزدیده شدن الگوریتم به کار رفته، یا بازسازی بخشی از کد برنامه بیشتر از برنامه های Native هست، ولی این مسئله فاکتور چندان مهمی محسوب نمیشه، چون برای برنامه های Native فقط کار کرکر، با توجه به مهارت وی، کمی سختر میشه؛ و در هر دو حالت استفاده از محیط های Managed و Native، اگر از مکانیزم های محافظتی مناسبی استفاده نشه، امکان کرک کردن نرم افزار مربوطه با درصد احتمال بسیار بالا وجود داره.
BORHAN TEC
شنبه 07 آبان 1390, 20:51 عصر
لزوما همچین چیزی نیست! کدهای پلت فرم هایی مثل دات نت یا جاوا JIT میشند، نه اینکه یک مفسر اونها رو اجرا کنه!
عقیده ها در این رابطه متفاوت هست. به عنوان مثال در کتاب Sams teach yourself c++ in 21 days نوشته آقای جسی لیبرتی نوشته شده که مواردی که شما گفته اید نیز به نوعی مفسر به حساب می آیند. این مورد در همان درس اول کتاب نوشته شده است و در همان صفحات ابتدایی هم هست.
vcldeveloper
یک شنبه 08 آبان 1390, 17:13 عصر
عقیده ها در این رابطه متفاوت هست. به عنوان مثال در کتاب Sams teach yourself C++ in 21 days نوشته آقای جسی لیبرتی نوشته شده که مواردی که شما گفته اید نیز به نوعی مفسر به حساب می آیند. این مورد در همان درس اول کتاب نوشته شده است و در همان صفحات ابتدایی هم هست.
عقیده ها متفاوت نیست، دنیا در حال تغییر و تحول هست، و کتاب مورد اشاره شما مربوط به حداقل 7 سال قبل!
دات نت و جاوا از JIT استفاده می کنند.
BORHAN TEC
یک شنبه 08 آبان 1390, 18:59 عصر
راستش من هم بعد از این که کمی فکر کردم به این نتیجه رسیدم که بهتره به غیر از برنامه های مفسری و کامپایلری، دسته سومی از برنامه ها یعنی برنامه های مدیریت شده که توسط VM اجرا می شوند را نیز به این طبقه بندی ها اضافه کنم.
عقیده ها متفاوت نیست، دنیا در حال تغییر و تحول هست، و کتاب مورد اشاره شما مربوط به حداقل 7 سال قبل!
نه، این کتاب خیلی هم قدیمی نیست و در مورد دات نت و جاوا هم در آن صحبت شده است و همانی را نوشته که در بالا گفتم. مگر نحوه اجرای برنامه های دات نت نسبت به نسخه های اولیه اون تغییر کرده؟
vcldeveloper
سه شنبه 10 آبان 1390, 15:15 عصر
این کتاب خیلی هم قدیمی نیست
آخرین ویرایشش در سال 2004 منتشر شده؛ الان 2011 هم دو ماه دیگه تموم میشه!
مگر نحوه اجرای برنامه های دات نت نسبت به نسخه های اولیه اون تغییر کرده؟
بله
--------
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.