PDA

View Full Version : اجرای مستقیم یک فایل از یک Stream ؟



fire-wizard
سه شنبه 02 بهمن 1386, 00:33 صبح
سلام .

دوستان ایا راهی هست که بشه محتوای یک TmemoryStream یا هر نوع دیگه از Stream رو که یک فایل اجرای *.exe هست بدون ریختن توی هار مستقیما اجرا کرد ؟؟؟

من از چندین نفر این سوال رو کردم ولی متاسفانه اونها هم از جواب دادنش عاجز موندن .

گفتم اینجا مطرح کنم تا شاید دوستان و اساتید بتونن جواب بدن . :متفکر:

fire-wizard
سه شنبه 02 بهمن 1386, 01:38 صبح
دوست عزیز ایا گفته ی شما ربطی به دلفی داشت ؟؟

هر متغییر در Ram حافظه ای بهش اختصاص داده میشه درسته یا نه ؟؟؟

خوب وقتی ما از یک TMemoryStream استفاده میکنیم و یک فایل رو توش بارگذاری میکنیم اون هم اون فایل رو توی حافظه ی Ram نگهداری میکنه . البته تا موقع ای که با FREE ازادش نکنیم .....

پس نتیجه میگیریم که فایل بارگذاری شده در حافظه ی RAM مقیم شده و فقط مونده بفرستیمش به CPU تا برامون اجراش بکنه . !!!!

خوب من در این مورد سوال کردم و شما چی جواب دادین ......

در کل از اساتید با تجربه درخواست دارم به این سوال پاسخ بدن ....

با تشکر .....

vcldeveloper
سه شنبه 02 بهمن 1386, 01:38 صبح
دوستان ایا راهی هست که بشه محتوای یک TmemoryStream یا هر نوع دیگه از Stream رو که یک فایل اجرای *.exe هست بدون ریختن توی هار مستقیما اجرا کرد ؟؟؟
خیر.

-------

fire-wizard
سه شنبه 02 بهمن 1386, 01:59 صبح
بنده این سوال رو به این خاطر پرسیدم که شاید بتونم با این روش یک الگوریتم رو پیاده سازی کنم تا بتونم برنامه های ساخته شده با دلفی رو یکم امن تر بکنم . حالا که هیچ راهی نیست برای این کار یک سوال از اقای کشاورز مدیر محترم انجمن دارم در مورد امنیت فایلهای دلفی .

هر برنامه ی ساخته شد یک ریسورس با نام RC Data داره که میشه گفت کلا فایل Unit1.dfm که حاوی اطلاعات پرژه هست داخلش وجود داره .

به صورت عادی و معمولی میشه با نرم افزارهای Res Editor به راحتی تغییرات عمده و چشمگیری رو در برنامه های ساخته شده توسط دلفی انجام داد . حتی اگه ما فایلمون رو با Packer ها فشرده و امن کنیم بازم میشه با کمی تلاش اون رو از حالت Pack بیرون اورد و تغییرات رو انجام داد .

حالا از اقای کشاورز میخوام بپرسم که ایا راهی رو برای مقابله با این امر پیشنهاد میکنن ؟

ایده ی من که به بنبست خورد ....

با تشکر ...

scorpion_man
سه شنبه 02 بهمن 1386, 09:37 صبح
دوست عزیز ایا گفته ی شما ربطی به دلفی داشت ؟؟

هر متغییر در Ram حافظه ای بهش اختصاص داده میشه درسته یا نه ؟؟؟

خوب وقتی ما از یک TMemoryStream استفاده میکنیم و یک فایل رو توش بارگذاری میکنیم اون هم اون فایل رو توی حافظه ی Ram نگهداری میکنه . البته تا موقع ای که با FREE ازادش نکنیم .....

پس نتیجه میگیریم که فایل بارگذاری شده در حافظه ی RAM مقیم شده و فقط مونده بفرستیمش به CPU تا برامون اجراش بکنه . !!!!

خوب من در این مورد سوال کردم و شما چی جواب دادین ......

در کل از اساتید با تجربه درخواست دارم به این سوال پاسخ بدن ....

با تشکر .....

سلام
راست میگی ها اصلا جواب من چه ربطی به سوال داشت
ساعت 2 نصفه شب فکر نمیکنم آدم بهتر از این بتونه فکر بکنه بکلی hang کرده بودم الان که reset شدم میفهمم چی به چیه
خوب شرمنده دوست عزیز میبخشی

Valadi
سه شنبه 02 بهمن 1386, 09:50 صبح
من در مورد فایل های فلش این کار را می کنم

Inprise
سه شنبه 02 بهمن 1386, 09:56 صبح
خیلی از Protector ها همینطوری کار میکنن .
من قبلا یک سورس گذاشته بودم که الان پیداش نکردم . اینم همون کار رو میکنه :
http://www.delphipages.com/threads/thread.cfm?ID=187975&G=187946&SAR=TRUE
بجای خواندن exe ات از فایل میتونی از ریسورس بخونی ، یا حتی مستقیما از وب داونلود کنی و بریزی در memorystream و همونجا اجراش کنی .

fire-wizard
چهارشنبه 03 بهمن 1386, 00:04 صبح
خیلی از Protector ها همینطوری کار میکنن .
من قبلا یک سورس گذاشته بودم که الان پیداش نکردم . اینم همون کار رو میکنه :
http://www.delphipages.com/threads/thread.cfm?ID=187975&G=187946&SAR=TRUE
بجای خواندن exe ات از فایل میتونی از ریسورس بخونی ، یا حتی مستقیما از وب داونلود کنی و بریزی در memorystream و همونجا اجراش کنی .

دوست عزیز واقعا ممنون .....

والا اینقدر ممنون که فقط تشکر کردن را با دکمه ی تشکر جایز ندونستم .

خیلی عالی بود .......

انشاالله بشه جبران کنیم .....

یا حق ....

scorpion_man
چهارشنبه 03 بهمن 1386, 01:02 صبح
Inprise جان حقشه یه 5-6 تا مدال افتخار به خودت بدی هر جا میری گرد و خاک میکنی