جلوگيري از باز شدن يك فايل اگزه

سلام.
مساله يه جورايي تكراريه اما با ديدن نرم افزارهاي آموزشي بدجوري يه سري مشكلات آدمو قلقلك ميده حقيقتش آموزش نرم افزار حسابداري هلو رو ديدم دست يكي از بچه ها و داخلش كه جستجو كردم ديدم يه سري فايل اگزه ساخته شده با فلش هست كه توسط يه فايل اگزه مركزي رهبري ميشن يعني فايل اصلي روباز و بقيه فايلها به داخل آن فراخواني ميشن.
از روزي كه با بيلدر كار ميكنم اين مشكل واسم بي جواب مونده كه آيا راهي هست كه فايلهاي اگزه كه داخل يك پروژه هستش و از داخل يه فايل اگزه اصلي فراخوني ميشه رو فقط بشه از داخل برنامه فراخواني كرد و كاربر نتونه باورود به پوشه ها فايلهارو يكي يكي باز كنه.
البته بازحمتهايي كه برحي از شما بچه هاي فعال كشيديد به راههايي رسيدم ولي بازم راضي نشدم .
مثلا استفاده از send exe يا تبدل فايلهاي اگزه به mbd يا استفاده از سورس لاير ها .
ولي جواب اين نيست اگه مثلا مثل همين آموزش نرم افزار هلو فايلهاي اگزه زياد باشن.
من به بعضي از بچه ها ايمان دارم چون كاراشو نو ديدم مثل آقاي بهشت و سيلور سافت و نور كام و...
سوال اينه كه آيا نميشه مثلا بين بيلدر و نرم افزارهايي مثل exe password با پلاگين هاي بيلدر رابطي تعريف كرد كه فايلهاي اگزه پسورد گذاري بشه و از درون بيلدر فقط فراخواني بشه؟
ممنون.
 

BEHESHT

Well-Known Member
سلام

من چيزي بلد نيستم اگر هم اطلاعاتي هست همه مديون افرادي مثل Silvercover و nevercom و naseronline و .... خيلي از بچه هاي ديگه هستم

پس رو حساب شاگردي به همه اين دوستان عرض مي كنم ادعايي نيست:

اگه حجم فايل هات كمتر از 70 مگابايت هستش با MoleBox به همراه فايل exe اصلي پك كن چون راه بساير بي دردسر و تاحدي مطمئن هستش:wink:

موفق باشي:rose:
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
اگردرست متوجه منظورتون شده باشم، شما میتونید برتامه تون رو به نحوی تنظیم کنید که تنها وقتی با یک پارامتر صحیح راه اندازی شد، شروع به کار کنه و در غیر اینصورت بسته بشه
برای اینکار شما میتونید از Command-Line استفاده کنید، یک پارامتر مشخص رو برای برنامتون تعیین کنید و در اسکریپت مربوطه مشخص کنید که اگر پارامتر ارسالی با پارامتر مشخص شده یکی نبود برنامه بسته بشه،
در برنامه ی اصلی هم هنگام اجرای فایل اجرایی، پارامتر صحیح رو به برنامه ارسال کنید تا برنامه اجرا بشه.
برای توضیحات بیشتر در انجمن عبارت Command-Line و CBK_CMDLine رو جستجو بفرمایید.
 
اين اولين باريه كه يه راه جديد پيشنهاد ميشه ميخوام هرچي دستوره برام بنويسي كه واقعا ممنون ميشم جستجو كردم اما نتونستم تجزيه كنم ايني رو كه گفتي.
آيا بايد در پيج استارت هر فايل اگزه دستور خاصي رو وارد كنم و همينطور در فايل اگزه اصلي اگه ممكنه دستور رو برام بذار ميدونم سرت شلوغه ولي واقعا ممنون ميشم اگه اين كارو بكني.
 

Silver Soft

کاربر متخصص مولتی مدیا بیلدر
کد زیر رو درون اسکیپت صفحه اول پروژتون قرار بدید :
کد:
Pass$=CmdLineParam$[1]
If (Pass$<>'123') Then
  Exit()
End
حالا فایل پروژتون رو به صورت exe در بیارید ، از این به بعد برای اجرای پروژه باید کد ( که در اینجا 123 هست ) رو به فایل اجرایی بفرستید وگرنه فایلتون اجرا نمیشه ، برای اجرا درون Run اینطور بنویسید :
کد:
"D:\Test.exe" 123
اگر هم بخواین فایل اجرایی برنامتون رو با یک برنامه دیگه صدا بزنید باید کد رو به صورت پارامتر براش ارسال کنید .
 
واقعا ممنون. با اينكه قبلا هم چنين سوالي رو هم خودم و هم ديگران داشته بودن اين راه كار تازه اي بود البته بجز پيشنهاد مول باكس از طرف بهشت عزيز كه از ايشونم واقعا ممنونم .
راستش علت اين سوال صرفا امنيت پروژه نبود و در واقع اجراي مناسب و درست پروژه ها از طرف كاربران عادي بود.
حالا با توجه به مثالي با نام M30 كه استاد سيلور كاور براي يكي از بچه ها درست كردن البته اين مثالو با جستجويي كه براي دستورات كامند كردم پيدا كردم اين مثال هم تقريبا به اين صورت بود كه دو فايل از طريق كامند لاين باهم ارتباط برقرار ميكردن.
بحثي كه در اون مثال و جاهاي ديگه ديدم پايين بودن امنيت كامند لاين بود البته نه از نظر من چون من واقعا تازه در حال يادگيري هستم. اما آيا وقتي چنين ايده هايي هست آيا ممكنه كه از طيق يك پلاگين خاص اين كار صورت بگيره تا امنيت هم بالاتر بره مثلا مثل پلاگين type of drive كه واقعا در بسياري جاها كارسازه.
سوال دومم اينه كه آيا ممكنه براي پروژه اي كه از طريق كامند لاين به پروژه ديگه پرامتر ارسال ميكنه در جايي مثلا كامپيوتر ديگه يا نسخه ديگه اي از ويندوز مشكلي پيش بياد؟
بازم از كمك و راهنماييتون ممنون.
 

evil_gates

اين نيز بگذرد ...
سوال دومم اينه كه آيا ممكنه براي پروژه اي كه از طريق كامند لاين به پروژه ديگه پرامتر ارسال ميكنه در جايي مثلا كامپيوتر ديگه يا نسخه ديگه اي از ويندوز مشكلي پيش بياد؟

ساير سيستم عامل ها رو نميدونم اما تو مدتي كه من با xp و 7 كار كردم نه به مشكلي برخورد نكردم. و به طور طبيعي هم احتمال اينكه مشكلي بوجود بياد كمه .
 

Silver Soft

کاربر متخصص مولتی مدیا بیلدر
سوال دومم اينه كه آيا ممكنه براي پروژه اي كه از طريق كامند لاين به پروژه ديگه پرامتر ارسال ميكنه در جايي مثلا كامپيوتر ديگه يا نسخه ديگه اي از ويندوز مشكلي پيش بياد؟
خیر مشکلی نداره ، هر سیستم عاملی که به درستی بتونه فایل exe شما رو اجرا کنه دیگه در مورد روابط Command Line مشکلی نداره .
 
از راهنماييهاتون ممنون.
حقيقتش يه فكر ديگه هم به ذهن ناقصم خطور كرد اونم اينه كه آيا موقع باز شدن يك فايل اگزه ميشه چك كنه كه اگه فايل اصلي تو ليست پروسه ها بود فايل زير مجموعه باز بشه و اگه فايل اصلي باز نشده بود و در پروسه هاي ويندوز نبود از باز شدن فايل زير مجمو عه جلوگيري بشه؟ در واقع اينكاري رو كه از طريق كامندلاين كرديد از طريق چك كردن پروسه ها بشه انجام داد؟
آيا ممكنه كه اين راه بهتر و با امنيت تر باشه؟
 

Silver Soft

کاربر متخصص مولتی مدیا بیلدر
بله میشه ولی این کار در کل در بیلدر فایده ای نداره ، کارش یه Memory Dumper هست که سورس رو در بیاری و یه حالی بهش بدی !

ولی اگر از IDE برنامه نویسی مثل دلفی استفاده میکردی ، باید بهت میگفتم این کار امنیت رو پایین هم میاره ، چون کاربر میتونه یه برنامه رو یه Rename بزنه و به اسم اون پروسه اجراش کنه و بعد برنامه شمارو دور بزنه ، ولی همون CommandLine چون در دلفی نمیشه سورس رو دراورد امنیتش بیشتره چون کسی نمیتونه پیدا کنه که برنامه با چه پارامتری اجرا میشه .

موفق باشید.
 

evil_gates

اين نيز بگذرد ...
از راهنماييهاتون ممنون.
حقيقتش يه فكر ديگه هم به ذهن ناقصم خطور كرد اونم اينه كه آيا موقع باز شدن يك فايل اگزه ميشه چك كنه كه اگه فايل اصلي تو ليست پروسه ها بود فايل زير مجموعه باز بشه و اگه فايل اصلي باز نشده بود و در پروسه هاي ويندوز نبود از باز شدن فايل زير مجمو عه جلوگيري بشه؟ در واقع اينكاري رو كه از طريق كامندلاين كرديد از طريق چك كردن پروسه ها بشه انجام داد؟
آيا ممكنه كه اين راه بهتر و با امنيت تر باشه؟

منم با نظر جناب Silver Soft موافقم اما اگه قصد داريد با mmb اين كار رو انجام بديد من يه مثال با پلاگين MicrobeProcesses براتون تو اين مبحث درست كرده بودم. ميتونيد با يكم تغييرات كاري كه مد نظرتون هست رو انجام بديد

http://forum.majidonline.com/showthread.php?t=136914&page=2
 
آخرین ویرایش:
sarbedaronline

کد زیر رو درون اسکیپت صفحه اول پروژتون قرار بدید :
کد:
Pass$=CmdLineParam$[1]
If (Pass$<>'123') Then
  Exit()
End
حالا فایل پروژتون رو به صورت exe در بیارید ، از این به بعد برای اجرای پروژه باید کد ( که در اینجا 123 هست ) رو به فایل اجرایی بفرستید وگرنه فایلتون اجرا نمیشه ، برای اجرا درون Run اینطور بنویسید :
کد:
"D:\Test.exe" 123
اگر هم بخواین فایل اجرایی برنامتون رو با یک برنامه دیگه صدا بزنید باید کد رو به صورت پارامتر براش ارسال کنید .

من هركاري كردم كه موقع اجراي فايل زير مجموعه كه ران ميشه پارامتر wait رو هم به دنبال كد 123 بنويسم اما نشد.
مثالي كه ساختي واسم، حرف نداشت.
فقط يه مشكل دارم اونم اينه كه ميخوام پنجره اول به حالت wait بره ولي خودم نتوستم درستش كنم اگه حلش كني ممنون ميشم
بازم ممنون ميشم اگه كسي حلش كنه.
 
آخرین ویرایش:

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

بالا