سلام
فرض کنید که یک نرم افزار ساده نوشتید، که به صورت فایل EXE می باشد حالا این فایل در اختیار دیگران قرار میدید.
دوستان همان طور که میدونید بعضی از نرم افزار ها هستند که تمام اطلاعات رشته ای درون فایل EXE برای شما نمایش میدهند و کاربر می تواند آنها را تغییر دهد.
حالا من چطوری میتونم متوجه بشم که فایل EXE ام تغییر پیدا کرده؟؟؟؟؟
نکته: از نرم افزار های پک نمی خواهم استفاده کنم.
من دو مورد به ذهنم رسید اولی این که تاریخ ساختن فایل بررسی کنم و دوم اینکه حجم فایل بررسی کنم.
راستی تو نرم افزار خیلی خیلی رشته وجود داد پس نمیتونم تمام رشته ها را در زمان اجراء نرم افزار چک کنم.
دوستان لطفا در این مورد کمک کنید.
درود دوست عزیز
ببین وقتی کرکر بتونه برنامه رو تغییر بده شما هر الگوریتمی برای چک کردن برنامه بنویسی رو هم میتونه تغییر بده
فرض کنید کاربر برنامه رو کرک میکنه و شما متوجه میشید و دیگه نمیزارید برنامه اجرا بشه اما کرکر میاد چک میکنه ببینه کدوم قسمت نمیزاره برنامه اجرا بشه و اون قسمت رو هم حذف میکنه.
(۱۵-اردیبهشت-۱۳۹۵, ۱۰:۱۰:۴۶)moderator نوشته است: [ -> ]درود دوست عزیز :))):
ببین وقتی کرکر بتونه برنامه رو تغییر بده شما هر الگوریتمی برای چک کردن برنامه بنویسی رو هم میتونه تغییر بده
فرض کنید کاربر برنامه رو کرک میکنه و شما متوجه میشید و دیگه نمیزارید برنامه اجرا بشه اما کرکر میاد چک میکنه ببینه کدوم قسمت نمیزاره برنامه اجرا بشه و اون قسمت رو هم حذف میکنه.
درست میگی ولی وقتی تمام کد ها به هم یک جوری متصل باشه یکمی این کار سخت میشه
ممنون میشم دوستان در این مورد راهنمایی کنند.
البته در خصوص اینکه از md5 استفاده بشه یه مشکلی هست! اونم اینه که مقدار هش رو باید یه جایی خارج از فایل برنامه ی اجرایی بذارید!! در غیر اینصورت به مشکل بر میخورید!!
مشکل از اونحا نشات میگیره که شما اول باید بدونید md5 فایل اجراییون چیه (که این یعنی اول برنامه رو کامپایل باید بکنید) و بعد این مقدار رو بذارید داخل برنامه!!! (که اینم یعنی دوباره کد برنامه رو تغییر بدید و کامپایلش کنید که اینم یعنی دوباره یعنی md5 فایلتون عوش میشه) و این چرخه همچنان ادامه دارد
اگه نمیخواهید پک کنید متنها رو کد کنید مثلا 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 یا در یک فایل دیگر و یا به صورت کد شده در رجیستری ثبت شود.
.
درنهایت جناب کرکر با یک تغییر شرط براحتی دورش میزنه
کلا باید کار رو سخت کنید که طرف بیخیال بشه