ايران ويج

نسخه‌ی کامل: CrackMe مبتدی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من هیچ چیزی درباره کرک نمیدونم فقط پیش بینی میکنم توی ذهنم ،
یه مدتی یه چیزایی توی ذهنم بود فرصت نمیکردم اجرا کنم تا اینکه امروز فقط 15 دقیقه روش کار کردم و میخام نتیجش رو ببینم.
چون از کرک هیچی نمیدونم برنامه رو حتی پک هم نکردم. یه کارایی کردم فقط میخوام ببینم اذیت کردن کرکر به همین راحتی که من فکرشو کردم هست یا نه.
ممنون میشم اگه کرکر های سایت برنامه رو کرک کنن و یه نمره بدن.
توضیح : اگر کد رو درست وارد کنید فرم به رنگ سبز و اگر اشتباه وارد کنید فرم صورتی می شود.
با سلام
چون عنوان تاپيك بود CrackMe كرك كردم ولي سريال رو هم ميشه در آورد (البته يه كلك رشتي زدم بهش )
يا علي
حسین جان به عنوان اولین CrackMe تلاشتون قابل تقدیر هست اما اگه چند نکته رو بدونید مطمئنا کارهای بعدیتون خیلی قوی تر خواهند شد.

* یک دستور IF یا هزار تا ، مهم اون آخریه هست. در واقع برای کرکر فقط یدونش مهمه!

* درست بلا فاصله بعد از اینکه فهمیدی سریال درست یا غلط هست واکنش نشون نده.

* یه برنامه ای هست به نام Reflector ( برای برنامه های دات نتی )، به کد پائین نگاه کن :

کد:
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim text As String = Me.textBox1.Text
    Dim num As Long = &H6ADE
    Dim num2 As Long = &H21B0D435D
    Dim num3 As Long = &H20F766C
    Dim flag As Boolean = False
    If ([text].Chars(0) = "]"c) Then
        num = (num2 * num3)
        If Not flag Then
            num2 = 0
            num = (num2 * num3)
            num3 = (num * num2)
سلام
کفم برید Biggrin

Sh4DoVV این کلک رشتیتون چی بود؟ سریال هم اگه میشه بدست بیارید.
DiDi اینا که گذاشتی خیلی آشناس Biggrinشما کد رو در آوردی تونستی سریالشم رد کنی؟
نقل قول: * یک دستور IF یا هزار تا ، مهم اون آخریه هست. در واقع برای کرکر فقط یدونش مهمه!
در اینجا همشون به یک اندازه مهمن چون یکیشون اشتباه باشه میاد بیرون...
نقل قول: * درست بلا فاصله بعد از اینکه فهمیدی سریال درست یا غلط هست واکنش نشون نده.
آهان، این نکات شبیه به این رو از کجا باید بفهمم ؟ آخه من که کرکر نیستم oly هم تا به حال از نزدیک ندیدم.
نقل قول: * یه برنامه ای هست به نام Reflector ( برای برنامه های دات نتی )، به کد پائین نگاه کن :
این برنامه کد دات نتو بر میگردونه؟ لینک و آموزش خدمتتون هست؟
سلام عزيز
كلك رشتي از اين قراره كه من دستورات IF رو دستكاري نكردم ، فقط اونجايي رو كه رنگ صورتي اختصاص ميدي من كردمش سبز
توسط همين Reflector
در پناه حق
يا علي
ببین حسین جان جدا از اینکه این برنامه رو به زبان Vb.Net نوشتی و من به لطف Reflector سورس کامل اون رو

در اختیار دارم و می تونم هر بلایی که خواستم سرش بیارم ( یافتن کد صحیح، ساختن Keygen )

فرض کنیم من reflector نداشتم و فقط با Ollydbg می خواستم کرکش کنم. در این صورت زمانی که برنامه رو در

محیط دیباگر اجرا کنم، برنامه می رسه به اولین دستور شرطی!

خوب حالا شرط رو چک می کنه، اگه درست بود اجرای برنامه به خط بعد منتقل می شه و در غیر این صورت به

خط شماره 200 پرش می کنه. (این خط شماره 200 مثلا همون خطی هست که رنگ فرم رو صورتی می کنه.)

شما فرض کن شماره خطی هم که دستور سبز رنگ شدن فرم رو داره 150 هست.

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

به خط 150 پرش کنه!

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

مطمئن باشی کرکر حتی یک بار هم اون دستورات رو نمی خونه!
سلام ممنونم که راهنماییم می کنید.
یه سوال دیگه
یعنی اگه نحوه اعلام کردن اینکه پسور صحیح است یا نه رو یجوری مخفی کنیم از کرکر اونوقت مجبور میشه هر 400 شرط رو بررسی کنه؟
راستی نمیگید من چقدر بیکار بودم این همه if نوشتمBiggrin
و اینکه یک پکر وقتی یک فایل رو پک میکنه عملا با اون فایل چکار میکنه؟ یعنی اگر خودمون بخایم به روش خودمون فایلیو پک کنیم باید چکار کنیم؟

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

پسورد صحیح رو اعلام می کنه رو از چشم کرکر دور کنید، اونوقت شما یک قفل نویس ماهر هستید!

برنامه نویس ها برای این کار روش های مختلفی رو استفاده می کنن:

- نوشتن مراحل تست سریال در یک یا چند ترید

- قرار دادن ماژول های تست قفل در یک فایل DLL که به شدت محافظت می شه ( توسط پروتکتور و پکر )

- استفاده از روتین های CRC و CRC32 برای چک کردن عدم تغییر در فایل ( یعنی فایل پچ نشده باشه )

- کد کردن سریال توسط الگریتم های مختلفی مثل MD5

- تست وجود قفل در مکان های مختلفی از برنامه و به صورت های مختلف

- قرار دادن بخش کوچک اما مهمی از برنامه داخل تابع تست قفل ( مثل قسمت پرینت )

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

اما چند تا روش هم هست که برنامه نویس های ایرانی خیلی ازش استفاده می کنن، درست مثل دختر بچه ای

که می خواد عروسکش رو پشت سرش قایم کنه!!

- قرار دادن ماژول تست قفل در یک فایل DLL جداگانه اما برای امنیت بیشتر پسوندد فایل رو به JPG تغییر می دن!

- برای اینکه کرکر نتونه متن پیغام خطا رو پیدا کنه از یک فایل JPG استفاده می کنن!

- شماره سریال رو 20 بار داخل برنامه چک می کنن، بعضی هم که استعداد بیشتری دارن روتین تست قفل رو

به صورت یک تابع می نویسن و 2000 بار اون تابع رو فراخوانی می کنن!!

- هدر فایل EXE رو طوری دستکاری می کنن که مثلا تو PEID معلوم نشه با VB6 نوشتن!

------------------------------------------------------------------------------------------

پکرها طبق یک الگریتم خاص میان کل فایل EXE رو به هم می ریزن طوری که اصلا نشه اون رو اجرا کرد

بعد اون رو داخل برنامه ای قرار می دن که کارش مرنب سازی فایل اصلی هست.

وقتی شما یک فایل پک شده رو اجرا می کنید ابتدا اون برنامه پکر اجرا می شه ، سپس فایل اصلی رو مرتب

و در حافظه لودش می کنه

پروتکتورها علاوه بر این دارای توابع پیشرفته ای هستن که می تونن مثلا دیباگر رو شناسایی کنن تا اگه برنامه در

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

برای اینکه خودتون دست بکار پک کردن فایل بشید بهتره اول با طرز کار پکرهای ساده ای مثل UPX و نحوه آنپک

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