ايران ويج

نسخه‌ی کامل: یک Crack Me سخت!
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
با سلام خدمت دوستان گل و زحمت کش سایت و تشکر بابت زحماتشون!.راستش من علاقه شدید به کرک دارم و کرکهای خیلی ساده رو هم میتونم کرک کنم.ولی راستش این گونه قفلها رو که نمونش به صورت crackme که خودم نوشتم رو در زیر قرار دادم رو نمیتونم کرک کنم.اگر کسی چگونگی کرک این نوع قفل ها رو که در اون از مسیج باکس هم استفاده نشده رو به من بگه بی نهایت ممنون میشم![attachment=812]
بالاخره هر قفلی یه جائی داخل برنامه چک می شه. و بعدش هم مجبوره یه عکس العملی رو نشون بده.
اگه اون عکس العمل نشون دادن پیغام باشه باید متن پیغام رو پیدا کرد، اگه نمایش فرم باشه باید لود فرم رو کنترل کرد، اگه ساخت فایل باشه باید ساخت فایل رو کنترل کرد و ..... تا به نتیجه رسید.

[attachment=821]
چقدر طول کشید کرکش کردی؟
اگه ممکنه یه آموزش بزار
معمولا اول باید با برنامه ور بری تا ببینی چه عکس الاملی نسبت به ورودی اشتباه نشون میده در قدم بعد با استفاده از ollydbg میتونی دنبال text ها و توابعی که برنامه فراخونی میکنه بگردی و جاهایی رو که مشکوکی break point بگزاری و حافظه برنامه رو برای مقادیر مختلف چک کنی
سلام خوب هستيد فكر كنم اين كمك كنه

به اميد ديدار
کد:
File: crackme3.zip
DownloadLink: http://rapidshare.com/files/98376776/crackme3.zip
File-Size: 0.76 MB
Uploaded: 2008/03/10, 10:55:09
آقای saeedsmk ممنون عالی بود
برنامه توی این مسیر یه کلید با نام CrackTest می سازه که اگه مقدار اون برابر 20 بود یعنی کرک نشده و اگر 25 یعنی کرک شده
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\CrackTest\CrackTest
بسیار ممنون از تلاش شما!
فقط آیا راهی وجود داره که بدون رجیستر نرم افزار از باز شدن آن فرم جلوگیری بکنه؟
و آقای محسن چطوری مسیر رجیستری و مقداری که چک میکنه رو فهمیدی؟
این هم سورسش به vb شاید به درد خورد!
با تشکر از لطف همه دوستان مخصوصا از آموزش saeedsmk و دیگر دوستان!
surpriser نوشته است:بسیار ممنون از تلاش شما!
فقط آیا راهی وجود داره که بدون رجیستر نرم افزار از باز شدن آن فرم جلوگیری بکنه؟
بله مقدار 20 رو به 25 تغییر بده Wink
surpriser نوشته است:بسیار ممنون از تلاش شما!
و آقای محسن چطوری مسیر رجیستری و مقداری که چک میکنه رو فهمیدی؟
حدس زدم Amaze
شما در این برنامه از نمایش پیغام خودداری و به جای اون از نمایش فرم دوم استفاده کردید. حتی در فرم دوم هم در صورت اشتباه بودن (یا نبودن) کلمه رمز باز هم از دادن پیغام خودداری کردید. این کار باعث شد تا هیچ پیغام متنی در ریفرنس ها بدست نیاد تا کرکر از طریق اون قفل رو رد زنی کنه.
ولی متاسفانه در کل قضیه هیچ تغییری ایجاد نشده و باز هم خیلی ساده می شه این قفل رو کرک کرد اما چرا ؟!

رویه چک کردن قفل در فرم لودینگ مثل پوشیدن شلوار لی خمره ای می مونه!! خیلی قدیمی و جواته! بهتره در جاهای دیگه برنامه این کار رو انجام بدید.

خوندن مقداری توسط رجیستری و بلافاصله چک کردن اون و بلافاصله نمایش فرم دوم ........... و بلافاصله کرک شدن برنامه!!!

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

منظورم از صحبتهای بالا ، فقط مواردی بود که اگه رعایت می کردی برنامه ات تو 6 دقیقه کرک نمی شد و می تونست چند ساعت وقت نازنین من رو بگیره . به هیچ وجه استفاده از این روش نمی تونه راه حل مناسبی برای محافظت از برنامه ها باشه.
جطوري حدس زدي!؟
آقاي Di Di‏ شما جطوري كركش كردي؟
اول دکامپایلش کردم ( vb decompiler تو بخش ابزارهای کرک هست )

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

این برنامه رو با روش سریال فیشینگ ( بدست آوردن سریال درست از برنامه ) هم می شه کرک کرد.

این برنامه رو با روش حذف نگ اسکرین ( حذف صفحه رجیستری ) و فعال کردن فرم اول می شه کرک کرد.

این برنامه رو با مانیتور کردن رجیستری و بدست آوردن یک کد صحیح می شه کرک کرد.

حتی می شه این برنامه رو در صفحه ثبت طوری تغییر داد که خودش مقدار صحیح رو در رجیستری ثبت کنه.

اگه این برنامه از کد واحد استفاده نمی کرد ( یعنی برای هر کامپیوتر کد مخصوصی لازم داشت ) می شد با اضافه کردن دوتا جامپ و نشون دادن مقدار صحیح کد از اون یک کیجن ساخت.

در ضمن شما در برنامه از SaveSetting استفاده کرده بودید که این تابع در دیسمبلر به وضوح مشخص هست و می شد خیلی راحت اسم کلید ساخته شده رو در رجیستری پیدا کرد و احتیاج به حدس و گمان هم نداره!
صفحه‌ها: 1 2 3