جلوگيري از اجراي فايل ها خارج از پروژه

سلام

آقا چطور ميشه كه تمام فايل هاي پروژه مثل فيلم ، عكس ، صوت و... قابليت اجرايي خارج از پروژه ما نداشته باشند يعني اينكه ميخام فقط توسط پروژه اجرا بشن و اگر كاربر كپي كرد تو سيستمش يا ديسك رو open كرد اجرا نشن :shock:
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
الگوریتم های مختلفی میتونه وجود داشته باشه . یکیش میتونه این باشه که فایل رو encrypt کنی و موقع استفاده توی یکی از پوشه هامثل پوشه temp عمل decrypt کنی و بعد اجرا کنی و موقع خروج از نرم افزار ، اون فایل توی پوشه temp را حذف کنی
البته این الگوریتم بود و من MMB بلد نیستم . منتظر دوستان باش ببین چی میگن
یه سئوال داشتم ، زبان کدنویسی MMB چیه؟
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ممنون
یعنی mmb خودش مفسر داره و به زبان ++c ترجمه میکنه؟ یعنی توی زبان دیگه نوشته نمیشه؟
نوشته های این شخص از جای معتبر هست؟ تا حالا همچین چیزی ندیدم که یه نرم افزار کار مفسر رو برای یه زبان انجام بده و نمیدونم شدنی هست یا نه
چون هر نرم افزاری نمیاد برای خودش مفسر بزنه و از زبون دیگه کار میکنه . مثلا کدنویسی توی افترافکت با جاوا اسکریپت و توی سینما 4 دی با پایتون و توی ams با لوا انجام میشه و هر نرم افزاری یه زبونی رو برای خودش برمیگزینه ولی اینکه یه نرم افزاری بتونه کدها رو به زبون دیگه خودش تفسیر کنه رو اولین باره میشنوم و نمیدونم همچین چیزی وجود داره یا نه
به هر حال ممنون و اطلاعات خوبی بود
 
آخرین ویرایش:

loo30fer

کاربر متخصص مولتی مدیا بیلدر
ممنون
یعنی mmb خودش مفسر داره و به زبان ++c ترجمه میکنه؟ یعنی توی زبان دیگه نوشته نمیشه؟
نوشته های این شخص از جای معتبر هست؟ تا حالا همچین چیزی ندیدم که یه نرم افزار کار مفسر رو برای یه زبان انجام بده و نمیدونم شدنی هست یا نه
چون هر نرم افزاری نمیاد برای خودش مفسر بزنه و از زبون دیگه کار میکنه . مثلا کدنویسی توی افترافکت با جاوا اسکریپت و توی سینما 4 دی با پایتون و توی ams با لوا انجام میشه و هر نرم افزاری یه زبونی رو برای خودش برمیگزینه ولی اینکه یه نرم افزاری بتونه کدها رو به زبون دیگه خودش تفسیر کنه رو اولین باره میشنوم و نمیدونم همچین چیزی وجود داره یا نه
به هر حال ممنون و اطلاعات خوبی بود
زبان نوشته شده بیلدر Visual C++ هست
کاملا درسته بیلدر کاملا مفسر هست یعنی تمامی کدها رو به زبان C تبدیل و Player بیلدر اون فرمان اجرا میکنه برای توضیحات کاملتر همون لینکی که دوستمون اشاره کردن مراجعه کنید کامل توضیح داده شده و برای اطمینان بیشتر از صحت این موضوع تو گوگل به جستجو بپردازین به همین نتیجه خواهید رسید.
ساخت یه کامپایلر کاری بسیار دشوار و زمان بر خواهد بود و به هیچ وجه برای چنین برنامه هایی مقرون بصرفه نخواهد بود پس ساخت یه مفسر بسیار منطقی تر با هزینه و زمان بسیار کمتر است.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
زبان نوشته شده بیلدر visual c++ هست
کاملا درسته بیلدر کاملا مفسر هست یعنی تمامی کدها رو به زبان c تبدیل و player بیلدر اون فرمان اجرا میکنه برای توضیحات کاملتر همون لینکی که دوستمون اشاره کردن مراجعه کنید کامل توضیح داده شده و برای اطمینان بیشتر از صحت این موضوع تو گوگل به جستجو بپردازین به همین نتیجه خواهید رسید.
ساخت یه کامپایلر کاری بسیار دشوار و زمان بر خواهد بود و به هیچ وجه برای چنین برنامه هایی مقرون بصرفه نخواهد بود پس ساخت یه مفسر بسیار منطقی تر با هزینه و زمان بسیار کمتر است.

ممنون
من ذقیق متوجه نشدم
خوب فرضا که تبدیل کرد . نوع زبان خودش چیه؟ یعنی کاربر نمیاد توش زبان ++c رو نمینویسه که . مثلا اگه توی ++c بخان متغییر تعریف کنن ، اول باید سطح دسترسی و نوع و بعد مقدار متغییر را تعریف کنن اما توی بیلدر نباید این طور باشه دیگه ؟ درسته؟ یعنی کاربر نوع متغییر را موقع تعریف نمینویسه و کلا سینک ها و دستور زبان خاص خودشو داره . خوب اگه این طور نباشه ، از اون طرف هم که میگین زبانی نداره پس کاربر بر چه پایه ای کد مینویسه؟ یعنی اگه کاربر بخاد متغییر تعریف کنه یا آرایه یا حلقه و تابع و ... ، باید بر اساس زبانی تعریف کنه دیگه؟ این زبان که قطعا ++c نیست چون خیلی سخته . پس بر اساس چه زبانی توی بیلدر کاربر برنامه مینویسه؟
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
ممنون
من ذقیق متوجه نشدم
خوب فرضا که تبدیل کرد . نوع زبان خودش چیه؟ یعنی کاربر نمیاد توش زبان ++c رو نمینویسه که . مثلا اگه توی ++c بخان متغییر تعریف کنن ، اول باید سطح دسترسی و نوع و بعد مقدار متغییر را تعریف کنن اما توی بیلدر نباید این طور باشه دیگه ؟ درسته؟ یعنی کاربر نوع متغییر را موقع تعریف نمینویسه و کلا سینک ها و دستور زبان خاص خودشو داره . خوب اگه این طور نباشه ، از اون طرف هم که میگین زبانی نداره پس کاربر بر چه پایه ای کد مینویسه؟ یعنی اگه کاربر بخاد متغییر تعریف کنه یا آرایه یا حلقه و تابع و ... ، باید بر اساس زبانی تعریف کنه دیگه؟ این زبان که قطعا ++c نیست چون خیلی سخته . پس بر اساس چه زبانی توی بیلدر کاربر برنامه مینویسه؟
بذارین واضح تر بیان کنم
برای اینکه ما راحت تر باشیم و درگیر مسائل پیچیده برنامه نویسی مثل همین اموری که برای تعریف یه متغیر ساده کردیم نشیم و نیازی به اشنایی ما برای مثال همین زبان C نباشه و با کمترین اگاهی بهترین برنامه مولتی مدیا رو طراحی و ایجاد کنه میان از زبان واسط استفاده میکنن که این زبان و کدها و الگویی هست که بیلدر به زبان ساده تر برای ما قرار داده تا بدین شکل به هدفمون برای ساخت یه برنامه برسیم که همینطور که میبینید بسیار زبان اسکریپتی ساده و راحتی رو برای ما پیاده کرده

خوب حالا باید این کدهای من دراوردی و پیاده شده بیلدر که ما نوشتیم تو برناممون اجرا و عملی بشن و چون کد قابل فهمی برای اجرا کننده کدها باشه یه مفسر پیاده میشه که کدهای شما رو به صورت خط به خط موقع نیاز به اجرا برای مفسر که همون اجرا کننده اصلی هست که نامش Player.bin هست به زبان اصلی نوشته شده Player.bin ترجمه بشه تا قابل فهم و اجرایی باشه به اون زبان که زبان C++ هست ترجمه میشه همونطور که جناب مهران فرمودن برای مثال این کد بیلدر
کد:
[COLOR=#333333]A$='MMB Code'[/COLOR]
[COLOR=#333333]LoadText("EditBox","A$")[/COLOR]
موقع اجرا توسط مفسر خوانده و تبدیل میشه به این :
کد:
[COLOR=#333333]CString A="VC++ Code";[/COLOR]
[COLOR=#333333]GetDlgItem (EditBox) -> SetWindowText(A);[/COLOR]
و سپس این کد دوم هست که اجرا میشه نه کد اول به زبان بیلدر
چیزی که فکر میکنم در تصور شماست اینه که این کدها مگه کمپایل نمیشن پس چرا دوباره تبدیل و به یکباره تبدیل و اجرا نمیشن
باید بگم که زبان مفسری یعنی همین البته مفسری که شرکت بیلدر پیاده کرده است بیشتر شبیه به یه شوخی میمونه تا مفسر چون برای ساده تر کردن پیاده سازی این مفسر مسائل امنیتی نادیده گرفته شده

در صورتی که بخوایم کدهای کاربر به یکباره ترجمه و تبدیل به فایل اجرایی بشه نیاز به نوشتن یک کمپایلر برای بیلدر خواهد بود که هم هزینه و وقت و هم سواد بسیار بالایی رو میطلبه که شرکتهای بزرگی قادر همچون Delphi و C و VC++ قادر به انجامش بودن و هنوز در حال توسعه و رفع باگ این کامپایلرها هستن
در این صورت کدها مستقیم به زبان ماشین و قابل اجرا بر روی سیستم عامل خواهند بود که این برنامه ها کاملا بی نیاز و وابستگی به هیچ برنامه کمکی مانند .net ندارن

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

موفق باشید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ممنون
یعنی فقط با مثال هاش میتونن نحوه ی کدنویسی توش رو یاد بگیرن؟
اگه یه چیزی باشه که تفسیر نتونه کنه چی؟ مثلا نمیدونم تابع iterator رو میتونه تفسیر کنه یا نه . به نظرم اگه MMB یه زبان کدنویسی رو انتخاب میکرد خیلی بهتر واسه همه بود بجای این کار.

من نظر خودم رو بگم اینکه من AMS رو بیشتر ترجیح میدم . حداقل برای کسایی که میخان برنامه نویسی رو ادامه بدن .
قدرت توابع MMB با AMS منظورم نیست .
چون AMS زبان لوا رو استفاده میکنه ، کسی که بخاد بعدا هر زبان دیگه ای رو یاد بگیره ، حتی اگه AMS بکارش دیگه نیاد ولی میتونه از لوا توی اون نرم افزار استفاده کنه . یعنی دانشی که از این زبان کسب کرد ، در حتی برنامه نویسی پیشرفته ، تو هر زبان دیگه ای بکارش میاد و مثل مفسر نیست که فقط کاربردش توی یک نرم افزار باشه
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
ممنون
یعنی فقط با مثال هاش میتونن نحوه ی کدنویسی توش رو یاد بگیرن؟
اگه یه چیزی باشه که تفسیر نتونه کنه چی؟ مثلا نمیدونم تابع iterator رو میتونه تفسیر کنه یا نه . به نظرم اگه MMB یه زبان کدنویسی رو انتخاب میکرد خیلی بهتر واسه همه بود بجای این کار.

من نظر خودم رو بگم اینکه من AMS رو بیشتر ترجیح میدم . حداقل برای کسایی که میخان برنامه نویسی رو ادامه بدن .
قدرت توابع MMB با AMS منظورم نیست .
چون AMS زبان لوا رو استفاده میکنه ، کسی که بخاد بعدا هر زبان دیگه ای رو یاد بگیره ، حتی اگه AMS بکارش دیگه نیاد ولی میتونه از لوا توی اون نرم افزار استفاده کنه . یعنی دانشی که از این زبان کسب کرد ، در حتی برنامه نویسی پیشرفته ، تو هر زبان دیگه ای بکارش میاد و مثل مفسر نیست که فقط کاربردش توی یک نرم افزار باشه
خوب مسلما از روی help باید بشه یادش گرفت
دیدگاه شما از یه برنامه اتوران سازی اشتباست
این برنامه ها همگی طراحی شدن برای ساخت و طراحی مولتی مدیا نه تبدیل کننده یه اسکریپت ها یا کدهای فلان زبان به C و غیرو
حتی AMS هم فقط کدهایی که براش تعریف شده رو میتونه تحلیل و برای خودش تفسیر کنه اون هم یه مفسر پشتش هست.
این چیزی که شما انتظار دارین از یه زبان برنامه نویسی فقط میشه انتظار داشت تا معادل هرتابع رو توی اون پیدا و اجرا کرد نه اتوران ساز
اگه بخواد کدهاش مشابه یه زبان دیگه ای باشن فراگیر شدنشون برای کاربر بسیار سخت تر خواهد شد اینطور کاربر ترجیح میده مثلا اگه از کد نویسی شبیه C داخلش استفاده شده باشه بره با خود C برنامه بنویسه تا بیلدر و AMS و امثال این
 

rasool_jelve

Active Member
ممنون
یعنی فقط با مثال هاش میتونن نحوه ی کدنویسی توش رو یاد بگیرن؟
اگه یه چیزی باشه که تفسیر نتونه کنه چی؟ مثلا نمیدونم تابع iterator رو میتونه تفسیر کنه یا نه . به نظرم اگه MMB یه زبان کدنویسی رو انتخاب میکرد خیلی بهتر واسه همه بود بجای این کار.

من نظر خودم رو بگم اینکه من AMS رو بیشتر ترجیح میدم . حداقل برای کسایی که میخان برنامه نویسی رو ادامه بدن .
قدرت توابع MMB با AMS منظورم نیست .
چون AMS زبان لوا رو استفاده میکنه ، کسی که بخاد بعدا هر زبان دیگه ای رو یاد بگیره ، حتی اگه AMS بکارش دیگه نیاد ولی میتونه از لوا توی اون نرم افزار استفاده کنه . یعنی دانشی که از این زبان کسب کرد ، در حتی برنامه نویسی پیشرفته ، تو هر زبان دیگه ای بکارش میاد و مثل مفسر نیست که فقط کاربردش توی یک نرم افزار باشه
سلام
یعنی میشه برنامه ار رو که با اتوپلی مدیا استادیو نوشتیم توی زبان برنامه نویسی lua وارد کرد و کدهاش رو به زبان luaدید

و منظور شما استفاده از زبان برنامه نویسی luaدر یک برنامه دیگر چیه منظورتون زبان برنامه نویسیه یعنی luaدر سی شارپ هم قابل ایمپورته
اگر باشه که عالیه به این شکل که توابع و کدهای اتوپلی در زبان lua باز بشه و بعد کدهای باز شده luaرو در سی شارپ ایمپورت کنیم چه شود
ایا همچین چیزی میشه

راستی چرا توی این فروم یه بخش برای اتوپلی مدیا استادیو زده نمیشه
 
آخرین ویرایش:

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خوب مسلما از روی help باید بشه یادش گرفت
دیدگاه شما از یه برنامه اتوران سازی اشتباست
این برنامه ها همگی طراحی شدن برای ساخت و طراحی مولتی مدیا نه تبدیل کننده یه اسکریپت ها یا کدهای فلان زبان به C و غیرو
حتی AMS هم فقط کدهایی که براش تعریف شده رو میتونه تحلیل و برای خودش تفسیر کنه اون هم یه مفسر پشتش هست.
این چیزی که شما انتظار دارین از یه زبان برنامه نویسی فقط میشه انتظار داشت تا معادل هرتابع رو توی اون پیدا و اجرا کرد نه اتوران ساز
اگه بخواد کدهاش مشابه یه زبان دیگه ای باشن فراگیر شدنشون برای کاربر بسیار سخت تر خواهد شد اینطور کاربر ترجیح میده مثلا اگه از کد نویسی شبیه C داخلش استفاده شده باشه بره با خود C برنامه بنویسه تا بیلدر و AMS و امثال این

سلام
درباره AMS این طور نیست . مثل همه ی نرم افزارهای دیگه از یه زبان (اسکریپت نویسی) بنام لوا استفاده میکنه . هر زبان برای خودش جدا مفسر داره . لوا هم مفسر داره (فک نکنم کمپایلر داشته باشه . دقیق نمیدونم) . کدهای AMS هم مستقیم و بدون تفسیر و یا هر پا در میون اضافی ای ، به زبان لوا نوشته و خود لوا تفسیر میکنه . درباره کدهای AMS مثلا کنترل هاش که میدونیم اغلب این کنترل ها از متدها و کلاس هایی که خود مایکروسافت در اختیار همه قرار میده ، استفاده میکنن و به ارث میبرن (یعنی کنترل های دکمه و لیبل و فرم و ...) . خود لوا هم توی ++C نوشته شد .


سلام
یعنی میشه برنامه ار رو که با اتوپلی مدیا استادیو نوشتیم توی زبان برنامه نویسی lua وارد کرد و کدهاش رو به زبان luaدید

و منظور شما استفاده از زبان برنامه نویسی luaدر یک برنامه دیگر چیه منظورتون زبان برنامه نویسیه یعنی luaدر سی شارپ هم قابل ایمپورته
اگر باشه که عالیه به این شکل که توابع و کدهای اتوپلی در زبان lua باز بشه و بعد کدهای باز شده luaرو در سی شارپ ایمپورت کنیم چه شود
ایا همچین چیزی میشه

راستی چرا توی این فروم یه بخش برای اتوپلی مدیا استادیو زده نمیشه


سلام
شما همین که داخل AMS دارین کد مینویسین ، یعنی همونجا مستقیما در لوا (به زبون لوا) دارین کد مینویسین . در واقع موتور یا مفسر که کار اصلی رو میکنه ، یه فایل dll هه که لوا هست

لوا (زبان لوا) یه فایل dll کم حجم هست که از تو سایتش قابل دسترس برای همه هست.
سایتش :

http://www.lua.org/

آخرین نسخه لوا :
http://www.lua.org/ftp/lua-5.3.2.tar.gz

خوب میدونیم این زبان هست . یعنی همون شرط ها و توابع و متغییرها و آرایه هایی که میگفتین ، با این فایل در AMS تفسیر میشه . حالا ممکنه بگین اینها بدون استفاده از تابع چه به درد این میخوره که توی زبان های دیگه بکار ببریم؟ خوب خود زبان های دیگه هم قابلیت تعریف تابع و متغییر و آرایه و شرط و ... رو دارن
جواب اینه که دستورات زبان فقط به شرط و آرایه و ... ختم نمیشه . توی یه زبان قابلیت های مهمی وجود داره که ممکنه توی زبان های دیگه وجود نداشته باشه . مثلا توی لوا قابلیت توقف و ادامه ی کدها (corotine) و کار با فایل ها و pattern ها وجود داره (حالا نمیدونم همه ی این قابلیت توی #C وجود داشته باشه یا نه) که ممکنه در زبان دیگه وجود نداشته باشه و کاربر بخواد توی اونا از این قابلیت ها استفاده کنه و یا اگه هم وجود داشته باشه ، چون کد نویسی در لوا ساده هست و طرف هم میخاد سریعتر کدهاشو بنویسه ، میتونه توی اون زبان مثل #C و ... از لوا بخشی از کدها رو بنویسه و. علاوه بر این ها خود لوا توابع پیش فرض خوبی داره که کارهای اولیه رو سریع انجام میده . توابع زیر :

http://www.lua.org/manual/5.1/

حالا اینکه چجوری میشه توی زبان دیگه از لوا استفاده کرد ، باید از ماژول های لوا استفاده بشه . ماژول ها هم فایل های dll ای میتونن باشن که قابلیت هایی رو به زبان اضافه میکنن (مثل پلاگین ها برای نرم افزار میمونن) مثلا در #C اگه بخوایم لوا رو اضافه و استفاده کنیم ، فکر کنم باید از ماژول LuaInterface استفاده کنیم. ماژول های مختلف برای لوا رو میشه از سایت های زیر دانلود کرد :

https://luarocks.org/

https://github.com/keplerproject/luarocks/wiki/Download

ولی توابع AMS فرق دارن . اون توابع خودشون از کلاس های هایی که مایکروسافت در اختیار همه قرار میده ، استفاده میکنن . یعنی این توابع AMS را میشه توی ویژال استودیو خیلی خیلی وسیع ترش رو گیر آورد و این طور نیست که توابع AMS را بشه منتقل کرد . ولی توابع زبان های دیگه مثل ++C رو میشه در قالب dll وارد AMS کرد و توی AMS ازش استفاده کرد (از #C سخته به AMS وارد کردن)
 

rasool_jelve

Active Member
سلام

این اطلاعات فنی رو شما چگوه بهش رسیدید آیا روی سی شارپ تمر کز دارید و روش مسلطید که میتنوید براحتی زبانهای دیگه رو تجزیه تحلیل کنید مثل همین روش وارد کردن زبانها در هم دیگه یا نه نتیجه تحقیق کردن بوده

خلاصه بگم من میخام برنامه نویسی رو اصولی یاد بگیرم طوری که بتونم زبانهای های برنامه نویسی رو با توجه در هر پروژه کاری بر مبنای قابلیتشون به کار ببرم از کجا شروع کنم سی شارپ lua یا اتوپلی رو ادمه بدم
من گیج شدم به خدا
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلام

این اطلاعات فنی رو شما چگوه بهش رسیدید آیا روی سی شارپ تمر کز دارید و روش مسلطید که میتنوید براحتی زبانهای دیگه رو تجزیه تحلیل کنید مثل همین روش وارد کردن زبانها در هم دیگه یا نه نتیجه تحقیق کردن بوده

خلاصه بگم من میخام برنامه نویسی رو اصولی یاد بگیرم طوری که بتونم زبانهای های برنامه نویسی رو با توجه در هر پروژه کاری بر مبنای قابلیتشون به کار ببرم از کجا شروع کنم سی شارپ lua یا اتوپلی رو ادمه بدم
من گیج شدم به خدا

سلام
توی #C من مبتدی هستم
تا حالا فقط روی یه زبون کار کردم و اونم لوا بود .
نگفتم ترکیب و وارد کردن زبان ها با هم . فقط میدونم لوا تا اینجای کار این قابلیت رو داره . فکر نکنم همه ی زبان ها این قابلیت رو داشته باشن که توی زبان دیگه ای قابل استفاده باشن . دقیق نمیدونم
گفتم که . اگه در خودتون حس میکنین که توانایی دارین ، مستقیم برین سر وقت #C وگرنه لوا رو یاد بگیرین و بعدا بیاین سروقت #C چون #C رو مستقیم نمیشه مثل لوا کد نوشت توش و باید مفهوم فضای نام وکلاس و متد... رو یاد بگیرین و توی متدها (تابع) کد بنویسین (مفهوم شی گرایی(فراخونی میشه گفت توی لوا) رو اول باید یاد بگیرین) . ضمن اینکه کدها توی #C مثل AMS به راحتی در دسترس نیست و برای هر دستور و کد و تابع باید تو سایت msdn بگردین
ولی اگه میخاین برنامه نویسی در سطح متوسط انجام بدین ، نیازی به #C نیست و همون لوا و AMS جواب گوست
 

جدیدترین ارسال ها

بالا