ورود

View Full Version : سوال: محافظت از فایل دیکریپت شده در حافظه



saied7468
پنج شنبه 19 دی 1387, 17:38 عصر
با سلام
یه فایل فلش داریم که اینکریپت شده و اون فایل اینکریپت شده رو با یه فایل دلفی ادغام کردیم برای استفاده از فایل فلش اونو داخل یه Stream می ریزیم و Stream رو دی کریپت می کنیم و بعد توی پلیر برنامه نشون میدیم و بعد حافظه رو آزاد می کنیم. سوال آیا توی این فاصله ای که فایل رو دیکریپت کردیم تا توی برنامه نشون بدیم فایل دیکریپت شده قابل بیرون کشیدن از حافظه هست؟؟
اگه هست لطفا توضیح بدین که چطور می تونم فایل دیکریپت شده رو تا زمانی که کامل در پلیر لود بشه و حافظه آزاد شه رو محافظت کنم.

با تشکر

HadiDelphi
پنج شنبه 19 دی 1387, 18:33 عصر
بله میشه از stream بیرون کشید
راه حل : بی خیال محافظت شو
اگه تو رم لود بشه به هر حال میشه بیرون کشید

saied7468
پنج شنبه 19 دی 1387, 21:05 عصر
من این بحث رو تو بخش دلفی مطرح کردم و آقای کشاورز راهنمایی زیر رو کرد :


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

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

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

Nima NT
پنج شنبه 19 دی 1387, 23:35 عصر
اگر فایل شما یه فایل اجرایی بود قضیه فرق میکرد ولی برای فایلهای فلش رمزنگاری بخشی از اون در حافظه میتونه به کل فایل رو از کار بیاندازه.
اصل مساله اینه که کسی نتونه از پروسه راه انداز دامپ بگیره پس باید به فکر تکنیک های آنتی دامپ باشی که برای پروسه خودت امنیت فراهم کنه.
دراین باب هم میتونم بگم راه طولانی در پیش داری , چرا که آقای هادی دلفی هم زیاد به این بحث پرداختند , با مطالعه پست هاشون میتونید به این مساله که هیچ کدوم به نتیجه نرسیدن پی ببرید.
حالا فایل آقای هادی دلفی فایل اجرایی بود , اون همه بلا ملا سرش اومد چه رسد به فایل فلش که کارهایی مثل پاک کردن هدر و ... رو نمیشه روی اون انجام داد.

saied7468
جمعه 20 دی 1387, 00:01 صبح
با این تفاسیر فکنم بهترین راه اینه که تا موقعی که برنامه من در حال اجراست نزاره هیچ برنامه دیگه ای اجرا بشه یا برنامه های در حال اجرا رو ببنده . برای سخت تر شدن کراک این بخش که نزاره برنامه ای اجرا بشه بنظرم بهترین راه استفاده از چند تا ترد هست که هم چک کنن برنامه ای اجرا نشه و هم همدیگه رو چک کنن و در صورت از کار افتادن یک یا دو ترد بمب منطقی رو فعال بشه. نظر شما چیه این راه بدرد می خوره

vcldeveloper
جمعه 20 دی 1387, 00:48 صبح
با این تفاسیر فکنم بهترین راه اینه که تا موقعی که برنامه من در حال اجراست نزاره هیچ برنامه دیگه ای اجرا بشه یا برنامه های در حال اجرا رو ببنده .
همچین کاری ممکن نیست، چون از یک طرف باید برنامه های دیگه ایی در حال اجرا باشند تا سیستم عامل شما در حال اجرا باشه، و بتونه به برنامه شما سرویس بده. از طرف دیگه، برنامه شما نهایتا میتونه برنامه هایی رو ببنده که سطح دسترسی پایین تری از خودش را داشته باشند، نه برنامه هایی که سطح دسترسی بالاتری دارند.

شما می تونید در بهترین حالت با استفاده از روتین های Anti-dump فقط کار کرکر را سخت تر کنید، و مانع از این بشید که کرکرهای تازه کار، یا کم تجربه محتوای حافظه پروسس شما را دامپ کنند. برای کرکرهای قوی استفاده از روتین های Anti-dump موجب میشه که وقت بیشتری صرف دامپ کردن بکنند، و معمولا اگر این وقت بیشتر توجیه مالی یا فنی برایشان نداشته باشه، بی خیال دامپ کردند میشند.
انتظار نداشته باشید که به روشی برسید که دست هیچکس به داده های شما نرسه!

thelastphoenix
جمعه 20 دی 1387, 10:46 صبح
با سلام

دوستان عزیز امنیت نسبی و هیچ وقتامنیت 100% وجود نداره..

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


حرف شما تا حدودی درسته اول می تونه سروسس هایی که در زمان اجرا نرم افزار اجرا می شن یا فعال میشن رو کیل کنه که این ربتی به دسترسی نداره اگه اشتباه کبل کنه سیستم میریزه بهم یک بحث شنات سایی پروسس های غریبه هست که تا حدودی ممکن ...
من این روش هارو رو یک پروزهتجاری امتحان کردم جواب می ده..

vcldeveloper
جمعه 20 دی 1387, 15:31 عصر
حرف شما تا حدودی درسته اول می تونه سروسس هایی که در زمان اجرا نرم افزار اجرا می شن یا فعال میشن رو کیل کنه که این ربتی به دسترسی نداره
برای اینکه یک پروسس بتونه در شرایط عادی پروسس های دیگه ایی که سطح دسترسی هم سطح یا بالاتر از خودش را دارند kill کنه، باید Permission های لازم را داشته باشه. از طرف دیگه لازم نیست برنامه دامپ کننده بعد از اجرای هدف برنامه اجرا بشه، بلکه میشه اول برنامه دامپ کننده را اجرا کرد، بعد برنامه دامپ کننده برنامه هدف را اجرا کنه.

در هر حال، هدف فقط سخت تر کردن کار کرکر هست، نه جلوگیری از هرگونه کرک!

Sir.V65j
شنبه 21 دی 1387, 23:38 عصر
سلام
خوب اینجا یه سوال فیزیوتراپی و انژکتوری مطرح میشه اونم اینکه چرا باید فایل فلش دامپ نشه؟ اگه دلیل فقط محافظتش هست و بعد اجرا شدنش (دلیل جلوگیری از دامپ اینه که لودر یه کدی چک کنه) خوب بیشتر مواقع کرکر میاد با چند بایت تغییر یا چند بایت تزریق برنامه رو یه جوری به جایی منتقل میکنه که فایل مورد نظر توی حافظه دیکریپت بشه و اجرا بشه.
ولی اگه دلیل از جلوگیری از دامپ یه چیز دیگست که اونموقع باید کلاً بگین چی می خواین انجام بدین و هدفتون از اینکار چیه تا بهتر بشه راهنماییتون کرد ! شاید با راه های دیگه بهتر بشه از فایل فلشتون محافظت کرد.

saied7468
یک شنبه 22 دی 1387, 00:59 صبح
دلیل جلو گیری از دامپ کردن محافظ از فایل فلش هست نه چیز دیگه فقط می خوام یه کاری کنم که فلش از طریق برنامه خودم قابل اجرا باشه برای اینکه نتونن برنامم رو پچ کنن یا به گفته شما چند بایت رو تغییر بدن یا چند بایت رو تزریق کنه که به قسمت دیکریپت کردن فایل برسه هم راههایی پیدا کردم البته می دونم اگه یه کراکر حرفه ای رو یه قفل کلیک کنه بلاخره قفل رو می شکنه ولی می خوام تا اونجایی که می تونم از فایل فلش محافظت کنم آخه رو این فایل 3 ماه تمام زحمت کشیده شده و این فایل یه مرجع هست و برای دانشجو ها ساخته شده (البته نه برای دانشجو های رشته کامپیوتر ) . این مرجع برای سطح دکترا ساخته شده .