ايران ويج

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

نکته: از نرم افزار های پک نمی خواهم استفاده کنم.

من دو مورد به ذهنم رسید اولی این که تاریخ ساختن فایل بررسی کنم و دوم اینکه حجم فایل بررسی کنم.

راستی تو نرم افزار خیلی خیلی رشته وجود داد پس نمیتونم تمام رشته ها را در زمان اجراء نرم افزار چک کنم.

دوستان لطفا در این مورد کمک کنید.
درود دوست عزیز Happy 


ببین وقتی کرکر بتونه برنامه رو تغییر بده شما هر الگوریتمی برای چک کردن برنامه بنویسی رو هم میتونه تغییر بده

فرض کنید کاربر برنامه رو کرک میکنه و شما متوجه میشید و دیگه نمیزارید برنامه اجرا بشه اما کرکر میاد چک میکنه ببینه کدوم قسمت نمیزاره برنامه اجرا بشه و اون قسمت رو هم حذف میکنه.
(۱۵-اردیبهشت-۱۳۹۵, ۱۰:۱۰:۴۶)moderator نوشته است: [ -> ]درود دوست عزیز  :))): 


ببین وقتی کرکر بتونه برنامه رو تغییر بده شما هر الگوریتمی برای چک کردن برنامه بنویسی رو هم میتونه تغییر بده

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

درست میگی ولی وقتی تمام کد ها به هم یک جوری متصل باشه یکمی این کار سخت میشه

ممنون میشم دوستان در این مورد راهنمایی کنند.
سلام
نقل قول: MD5 یا اثر انگشت فایلها چیست

آیا می دانید در دنیای کامپیوتر هر فایل دارای یک اثر انگشت منحصر به فرد است این اثر انگشت MD5 Checksum یا ام دی 5 یا Message-Digest algorithm 5 یا کد هش /hash code نامیده می شود  MD5 معمولا در سایت های دانلود نرم افزار دیده می شود به دلیل اینکه هر تغییر کوچک و بزرگ در فایل یا برنامه سبب تغییر کلی MD5 یا اثر انگشت آن می شود.
استفاده های فراوان  MD5 Checksum
از اثر انگشت فایل استفاده های بسیاری می شود مثلا برای تست صحت فایل ها: برای اینکه بفهمیم در هنگام انتقال فایل ها آیا تغییری در اثر خطا یا عوض شدن با فایلی مخرب ایجاد شده است از md5 استفاده می شود اثر انگشت هر فایل با ام دی 5  یک کد با طول ثابت (32 کاراکتر) است مثلا اگر MD5 یا اثرانگشت  فایلی به بزرگی 100 مگابایت را با اثر انگشت فایلی به حجم چند کیلوبایت از نظر طول کد تولید شده مقایسه کنید یکسان است از این مطلب یک چیز مهم برداشت می شود : کد تولید شده توسط MD5 یک طرفه است یعنی نمی توان از کد به فایل رسید این ویژگی باعث استفاده های بیشتری از MD5 Check sum می شود مثلا بعضی برنامه نویسان برای چک کردن صحت یک رمز / پسورد از md5 استفاده می کنند یا بعضی از انتی ویروس ها کد md5 ویروس ها را در دیتابیس خود ذخیره کرده و در هنگام اسکن فایل اثر انگشت فایل را تولید و با پایگاه داده ی خود مقایسه می کنند که البته این روشهای استفاده پسندیده نیست و مثلا می توان با تغییری بسیار کوچک مثلا افزودن چند بیت بی مصرف به ویروس یا فایل مخرب کد MD5 Checksum آن را تغییر داد همچنین در سال 2007 گروهی از محققان شامل Arjen Lenstra روشی را شرح کردند که با آن می توان دو فایل با یک اثر انگشت تولید کرد ولی باید توجه داشت که مساوی شدن کد ام دی 5 دوفایل یک در عدد 3.4 در 10 به توان 34 است. در ویکیپدیا و همچنین نرم افزار هایی به نام هایی چون md5 crack یا MD5CRK برای پیدا کردن رمز های کد شده توسط md5 وجود دارند
برای استفاده از md5 و اما استفاده از md5 برای کاربران اینترنت 
برای استفاده از md5 برای چک کردن اینکه آیا فایل دانلود شده به صورت کامل است و اینکه فایل توسط ویروسی آلوده نشده و غیره باید در صفحه ی دانلود نرم افزار یا فایل به دنبال کد md5 آن بگردید و بعد از دانلود و تولید کد md5 با نرم افزاری که در ادامه توضیح داده شده است و چک کردن برابری دو کد تولید شده  اگر برابر بود فایل کاملا درست بوده و اگر برابر نیودند معلوم می شود که یا فایل ناقص دانلود شده است یا یک فایل دیگر دانلود شده یا فایل تغییر یافته و توسط
ویروسی آلوده شده است
https://social.msdn.microsoft.com/Forums...arpgeneral
http://stackoverflow.com/questions/11776...in-c-sharp
البته در خصوص اینکه از md5 استفاده بشه یه مشکلی هست! اونم اینه که مقدار هش رو باید یه جایی خارج از فایل برنامه ی اجرایی بذارید!! در غیر اینصورت به مشکل بر میخورید!!

مشکل از اونحا نشات میگیره که شما اول باید بدونید md5 فایل اجراییون چیه (که این یعنی اول برنامه رو کامپایل باید بکنید) و بعد این مقدار رو بذارید داخل برنامه!!! (که اینم یعنی دوباره کد برنامه رو تغییر بدید و کامپایلش کنید که اینم یعنی دوباره یعنی md5 فایلتون عوش میشه) و این چرخه همچنان ادامه دارد Biggrin
اگه نمیخواهید پک کنید متنها رو کد کنید مثلا base64 اینجوری کار کمی پیچیده میشه
یا متنها رو درون یک فایل Resource Dllقرار بدید و اون dll رو پک کنید
.

درود

میتوانید CheckSum پرونده (فایل) را با یکی ازالگوریتم های CRC-16 , CRC-32 , SHA-256 , SHA-512 , Adler32 , TIGER , RIPED160 یا MD5
بدست آورده و در جایی ثبت بشود.
مثلا کد اصلی برنامه در یک dll باشد و از آن CheckSum بگیریم و یک فایل exe ابتدا بررسی کند  dll تغییر نکرده تا اجازه بار شدن بدهد. مقدار CheckSum در پرونده exe یا در یک فایل دیگر و یا به صورت کد شده در رجیستری ثبت شود.

.
(۲۲-اردیبهشت-۱۳۹۵, ۰۳:۲۲:۳۲)alimogmov نوشته است: [ -> ].

درود

میتوانید CheckSum پرونده (فایل) را با یکی ازالگوریتم های CRC-16 , CRC-32 , SHA-256 , SHA-512 , Adler32 , TIGER , RIPED160 یا MD5
بدست آورده و در جایی ثبت بشود.
مثلا کد اصلی برنامه در یک dll باشد و از آن CheckSum بگیریم و یک فایل exe ابتدا بررسی کند  dll تغییر نکرده تا اجازه بار شدن بدهد. مقدار CheckSum در پرونده exe یا در یک فایل دیگر و یا به صورت کد شده در رجیستری ثبت شود.

.

درنهایت جناب کرکر با یک تغییر شرط براحتی دورش میزنه
کلا باید کار رو سخت کنید که طرف بیخیال بشه