PDA

View Full Version : اجرای یک برنامه از داخل حافظه



Hajivandian
جمعه 18 آذر 1390, 22:09 عصر
سلام
من می خوام یه فایل exe رو بیارم تو ram بعد اونو اجرا کنم
اینجا یه لینک در این مورد هست
http://www.codeproject.com/KB/cs/LoadExeIntoAssembly.aspx
ولی فقط رو فایلهایی کار میکنه که با سی شارپ نوشته شده باشه
ولی من می خوام رو هر فایلی کار کنه، کسی میتونه راهنماییم کنه ؟

Nima NT
جمعه 18 آذر 1390, 22:58 عصر
در واقع برای اینکار باید با ساختار PE آشنا باشید که بتونید هم فایل های دات نتی رو به نحوی در حافظه اجرا کنید و هم فایلهای غیر دات نتی رو ، کد موجود تو لینک فوق برای کلیه فایلهای دات نت کاربرد داره ولی برنامه های Native رو پشتیبانی نخواهد کرد ، پیشنهاد میکنم اول در مورد Native PE Files تحقیق کنید و مواردی از جمله Memory Execution رو هم جستجو کنید.

Hajivandian
جمعه 18 آذر 1390, 23:09 عصر
اگه بتونید یه راه پیشنهاد کنید که فایل اجراییم رو بعد از اجرا کردن برنامم پاک کنم هم مشکلم حل میشه

Nima NT
جمعه 18 آذر 1390, 23:11 عصر
این زمانی امکان پذیر هست که فایل شما از روی حافظه اجرا بشه یعنی کاملا" به حافظه منتقل بشه و از اونجا اجراش شروع بشه در غیر این صورت در حالتی که برنامه شما در حال اجرا هست ویندوز اجازه پاک کردن فایل اجرایی شما رو نخواهد داد.

سوداگر
جمعه 18 آذر 1390, 23:24 عصر
اگه بتونید یه راه پیشنهاد کنید که فایل اجراییم رو بعد از اجرا کردن برنامم پاک کنم هم مشکلم حل میشه

این سوال رو در سایت StackOverflow پرسیده بودند که Delete application files after it runs (http://stackoverflow.com/questions/5230061/delete-application-files-after-it-runs)
در نهایت به این لینک CodeProject منتهی شد که How To Make Your Application Delete Itself Immediately (http://www.codeproject.com/KB/threads/HowToDeleteCurrentProcess.aspx)

Hajivandian
شنبه 19 آذر 1390, 18:10 عصر
مشکل من حل نشد، کسی پیشنهاد دیگه ای نداره ؟