PDA

View Full Version : Serial Me:MN



Mahmood_M
جمعه 14 اسفند 1388, 01:01 صبح
با سلام ...
ما هم به جرگه ي كرك شوندگان پيوستيم !
اين اولين CrackMe من هست كه در اينجا قرار مي دم ...
توضيح :
بايد رمز عبور صحيح رو به برنامه بديد تا پيغام " Login " نمايش داده بشه ، اگر رمز صحيح نباشه پيغام " Failed " نمايش داه مي شه ...
اگر از راه ديگه اي هم برنامه رو دور زديد و پيغام Login نمايش داده شد لطفا توضيح كوتاهي در مورد كاري كه كرديد بديد ...
يك نكته ي ديگه : فايل Pack نشده و هيچ چيز اضافه اي روش نيست ! ، هدف فقط پيدا كردن رمز عبور هست ، براي اجرا هم فكر نمي كنم مشكلي داشته باشه

لطفا درجه امنيت يادتون نره !

با تشكر ، موفق باشيد ...

Raham
جمعه 14 اسفند 1388, 09:24 صبح
بلد نبودم پسورد رو پیدا کنم :لبخند: اخه تازه کارم اما تونستم کرکش کنم (واقعا خیلی ساده بود)
نحوه کرک هم تو عکس معلومه
آدرس (0045861A)

Securebit
جمعه 14 اسفند 1388, 15:23 عصر
خیلی عالی بود :تشویق:

درجه امنیت : 10/4

Mahmood_M
جمعه 14 اسفند 1388, 16:21 عصر
خیلی عالی بود

درجه امنیت : 10/4
ممنون ...
رمز اصلي اين بود : M3N2O1
احتمالا روشي كه باهاش رمز رو كد مي كنم براي " 2O1 " و " rg + فلش رو به بالا ! "‌ ( شرمنده نتونستم فلش رو نمايش بدم ! ) يك كد مي سازه ... !
ميشه توضيح كوتاهي بديد كه چطور الگوريتم رو تشخيص داديد ؟ يا اينكه اصلا چطور به رمز رسيديد ، چون من هيچ جاي برنامه رمز رو قرار نداده بودم و الگوريتم هم يك الگوريتم كاملا ساختگي بود ... ! ، ببخشيد ، كنجكاو شدم بدونم ! ، البته چون رمز پيدا شده با رمز اصلي كمي تفاوت داره حدس مي زنم كه الگوريتم تشخيص داده شده باشه ، درسته ؟
باز هم ممنون ...

بلد نبودم پسورد رو پیدا کنم اخه تازه کارم اما تونستم کرکش کنم (واقعا خیلی ساده بود)
نحوه کرک هم تو عکس معلومه
آدرس (0045861A)
ممنون ، ولي فكر كنم اگر برنامه رفتار ديگه اي غير از نمايش پيغام داشته باشه ، نشه اينطوري دورش زد ، درسته ؟ يا مشكل از شرطي بود كه قرار دادم ؟!

باز هم ممنون از دوستان ...

Securebit
جمعه 14 اسفند 1388, 16:52 عصر
بله همان طور که فرمودید بعد از آنالیز روند تولید کد به الگوریتم برای دکد کردن پسورد دست پیدا کردم البته به این سادگی ها هم نبود چون دیدم اولین کرک می شماست و کار جدیدیست من هم وقت بیشتری گذاشتم.
موفق باشید.

Mahmood_M
جمعه 14 اسفند 1388, 17:05 عصر
براي اينكه بحث شكل مفيدتري به خودش بگيره روش كد كردن پسورد رو توضيح مي دم :
نحوه ي ذخيره ي رمز اصلي :
يك آرايه ايجاد كردم كه تعداد عنصرش برابر تعداد حروف رمز اصلي يعني 6 تا بود ، در عناصر اين آرايه يك عدد قرار مي گيره كه به شكل زير ساخته ميشه ، براي تك تك حروف رمز به صورت زير عمل ميشه و براي هر كدوم يك عدد ايجاد ميشه :
مقدار كد ASCII حرف رو گرفتم و اون رو تبديل به عددي در مبناي دو ( Binary ) كردم ، حاصل رو به رشته تبديل كردم و برعكسش كردم ، يك عدد رندوم در بازه ي [9..2] به رشته اضافه كردم و رشته ي نهايي رو به عدد تبديل كردم براي اينكه اعداد صحيحي بدست بياد ابتداي هركدوم يك عدد بين 2 تا 9 اضافه كردم تا اولين رقم صفر نباشه ( به خاطر باينري بودن ممكنه صفر ايجاد بشه ) ، اعداد بدست آمده براي حروف M 3 N 2 O 1 كه حروف رمز هستند رو در آرايه قرار دادم ... ( البته چند نكته ي كوچيك ديگه هم توي كد كردن رمز وجود داشت كه لازم نيست بيان بشه ! )

نحوه ي كد كردن رشته هاي ورودي هم مانند روش بالا هست با كمي تفاوت :
حروف رمز به كد اسكي تبديل مي شن ، حاصل به باينري تبديل ميشه و اعداد باينري به رشته تبديل مي شن ، يك عدد بين 2 تا 9 به اونها اضافه ميشه و از تركيبشون يك رشته ي رمز شده بدست مياد كه شامل كد اسكي رشته ها در مبناي دو اما برعكس شده هست ...

براي مقايسه هم رشته ي كد شده ي رمز اصلي و رشته ي كد شده ي رمز ورودي رو مي سنجيم ، البته براي توليد يك رشته رمز شده ي قابل قبول از عناصر موجود در آرايه بايد اون عددي كه در آخر به ابتداي عناصر اضافه مي كرديم رو حذف كنيم ....
...

يك نكته ي مهم در اينجا وجود اعداد رندوم هست كه بين 2 و 9 هستند و اگر رمز هم درست وارد شده باشه ممكنه مقايسه ، يك نتيجه ي اشتباه بدست بده ، مثلا به دو رشته ي زير دقت كنيد :


1. 101100161100117011100130100116111100161000112
2. 101100181100116011100140100118111100121000116

اين دو رشته مربوط به يك رمز هستند ( M3N2O1 ) ولي تفاوت دارند و تفاوت در اعداد رندومي هست كه بين اعداد باينري قرار دارن ...
براي مقايسه بايد اعداد بزرگتر از يك رو از رشته حذف كرد و اعداد باينري حاصل رو با هم مقايسه كرد ...

اعداد رندوم رو به خاطر گمراه كردن كركر قرار دادم ! :شیطان: كه اگر چند رشته ي رمز شده به دستش افتاد ! گرفتن نتيجه ي درست كمي سخت تر بشه ...

اين روش كلي بود ، DeCode كردنش هم فكر كنم با توضيحات داده شده راحت باشه ...

باز هم ممنون از جناب StrongBytes و جناب Delta-Hacker

موفق باشيد ...

Raham
جمعه 14 اسفند 1388, 17:32 عصر
براي اينكه بحث شكل مفيدتري به خودش بگيره روش كد كردن پسورد رو توضيح مي دم :
نحوه ي ذخيره ي رمز اصلي :
يك آرايه ايجاد كردم كه تعداد عنصرش برابر تعداد حروف رمز اصلي يعني 6 تا بود ، در عناصر اين آرايه يك عدد قرار مي گيره كه به شكل زير ساخته ميشه ، براي تك تك حروف رمز به صورت زير عمل ميشه و براي هر كدوم يك عدد ايجاد ميشه :
مقدار كد ASCII حرف رو گرفتم و اون رو تبديل به عددي در مبناي دو ( Binary ) كردم ، حاصل رو به رشته تبديل كردم و برعكسش كردم ، يك عدد رندوم در بازه ي [9..2] به رشته اضافه كردم و رشته ي نهايي رو به عدد تبديل كردم براي اينكه اعداد صحيحي بدست بياد ابتداي هركدوم يك عدد بين 2 تا 9 اضافه كردم تا اولين رقم صفر نباشه ( به خاطر باينري بودن ممكنه صفر ايجاد بشه ) ، اعداد بدست آمده براي حروف M 3 N 2 O 1 كه حروف رمز هستند رو در آرايه قرار دادم ... ( البته چند نكته ي كوچيك ديگه هم توي كد كردن رمز وجود داشت كه لازم نيست بيان بشه ! )

نحوه ي كد كردن رشته هاي ورودي هم مانند روش بالا هست با كمي تفاوت :
حروف رمز به كد اسكي تبديل مي شن ، حاصل به باينري تبديل ميشه و اعداد باينري به رشته تبديل مي شن ، يك عدد بين 2 تا 9 به اونها اضافه ميشه و از تركيبشون يك رشته ي رمز شده بدست مياد كه شامل كد اسكي رشته ها در مبناي دو اما برعكس شده هست ...

براي مقايسه هم رشته ي كد شده ي رمز اصلي و رشته ي كد شده ي رمز ورودي رو مي سنجيم ، البته براي توليد يك رشته رمز شده ي قابل قبول از عناصر موجود در آرايه بايد اون عددي كه در آخر به ابتداي عناصر اضافه مي كرديم رو حذف كنيم ....
...

يك نكته ي مهم در اينجا وجود اعداد رندوم هست كه بين 2 و 9 هستند و اگر رمز هم درست وارد شده باشه ممكنه مقايسه ، يك نتيجه ي اشتباه بدست بده ، مثلا به دو رشته ي زير دقت كنيد :


1. 101100161100117011100130100116111100161000112
2. 101100181100116011100140100118111100121000116

اين دو رشته مربوط به يك رمز هستند ( M3N2O1 ) ولي تفاوت دارند و تفاوت در اعداد رندومي هست كه بين اعداد باينري قرار دارن ...
براي مقايسه بايد اعداد بزرگتر از يك رو از رشته حذف كرد و اعداد باينري حاصل رو با هم مقايسه كرد ...

اعداد رندوم رو به خاطر گمراه كردن كركر قرار دادم ! :شیطان: كه اگر چند رشته ي رمز شده به دستش افتاد ! گرفتن نتيجه ي درست كمي سخت تر بشه ...

اين روش كلي بود ، DeCode كردنش هم فكر كنم با توضيحات داده شده راحت باشه ...

باز هم ممنون از جناب StrongBytes و جناب Delta-Hacker

موفق باشيد ...

دوست عزيزم كار جالبي كردين اما اكه ميخواين رمزتون ديكد نشه يه راه حل ميكم بهتون

از قبل رمز خودتون رو همراه با ٢٠ كاراكتر اضافي از قبل تعيين شده كه با روش خاص باهم مخلوط شدن رو باmd5 هش كنيد براي مقايسه كردن هم رمز ورودي را با همون تكنيك خودتون با ٢٠ كاراكتر مورد نظر تركيب و مقايسه كنيد

بزودي يه كرك مي اينطوري ميزارم
ببخشيد دوستان با موبايل اومدم نت نميتونم الان كامل توضيح بدم

Nima NT
جمعه 14 اسفند 1388, 18:07 عصر
من هم جسارتا" یه پیشنهاد دارم ؛ اگر به همراه استفاده از اعداد رندم از پترن هم استفاده میکردید فکر کنم خیلی خوب میشد ؛ برای مثال میتونستید یه پترن ( درخت ) تعریف کنید که که در صورت پیمایش برعکس همواره به مثلا" کاراکتر 1 برسه ؛ حالا پیمایش این درخت برای برنامه زیاد سخت نیست ولی درک روش کلی پیمایش و کلا" الگوریتم اون میتونه برای کراکر سخت باشه ( البته بیشتر برای نوشتن keygen ).

CYCLOPS
جمعه 14 اسفند 1388, 18:23 عصر
من هم جسارتا" یه پیشنهاد دارم ؛ اگر به همراه استفاده از اعداد رندم از پترن هم استفاده میکردید فکر کنم خیلی خوب میشد ؛ برای مثال میتونستید یه پترن ( درخت ) تعریف کنید که که در صورت پیمایش برعکس همواره به مثلا" کاراکتر 1 برسه ؛ حالا پیمایش این درخت برای برنامه زیاد سخت نیست ولی درک روش کلی پیمایش و کلا" الگوریتم اون میتونه برای کراکر سخت باشه ( البته بیشتر برای نوشتن keygen ).

نیما جان میشه خواهش کنم در مورد این روش لینکی یا مثالی معرفی کنی تا قضیه رو روشن تر کنه ؟
پیشاپیش ممنون :چشمک:

vcldeveloper
جمعه 14 اسفند 1388, 18:45 عصر
دوست عزيزم كار جالبي كردين اما اكه ميخواين رمزتون ديكد نشه يه راه حل ميكم بهتون

از قبل رمز خودتون رو همراه با ٢٠ كاراكتر اضافي از قبل تعيين شده كه با روش خاص باهم مخلوط شدن رو باmd5 هش كنيد براي مقايسه كردن هم رمز ورودي را با همون تكنيك خودتون با ٢٠ كاراكتر مورد نظر تركيب و مقايسه كنيدبه این تکنیک میگن Salted Hash، و برای پیچیده کردن رمز استفاده شده، و مقابله با Dictionary Attack و Brute Force استفاده میشه.

Nima NT
جمعه 14 اسفند 1388, 18:58 عصر
نیما جان میشه خواهش کنم در مورد این روش لینکی یا مثالی معرفی کنی تا قضیه رو روشن تر کنه ؟
پیشاپیش ممنون :چشمک:
راستش رو بخواهید منبعی نمیشناسم چون این روش رو یکی از دوستانم به من توضیح داد ( بدون ذکر منبع ) ولی چیزی که من ازش متوجه شدم این هست که اساس این کار برمیگرده به درس نظریه زبان و ماشین و زبانها و گرامرها ( البته زیاد مطمئن نیستم ولی فکر میکنم منظور از این که یک درخت پیمایش بشه شاید همون بررسی حالات اشتقاق یک رشته هست که مطمئن بشیم جزو گرامر مخصوص و مورد نظر ما هست یا خیر ).
دقیق ترش رو میپرسم و همینجا پست میکنم.