Breakme رقم 03

تم تحميل الصفحة في 0,8861788 ثانية
Breakme رقم 03
الحالة
مغلق و غير مفتوح للمزيد من الردود.

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
السلام عليكم
اقدم لكم ثالث و آخر تحدي من سلسلة 3 تحديات متدرجة الصعوبة..
في Breakme رقم 03 المطلوب هو الحصول على ترخيص خاص بك يتيح اظهار رسالة النجاح.
لا يوجد ترخيص مرفق مع التحدي، حلل التحدي لكي تفهم هيكل ملف الترخيص.

مستوى الصعوبة 3.5/5 (صعب).
مدة التحدي 3 ايام، قابلة لتمديد.



كل الطرق مقبولة (التعديل على الملف التنفيذي او ملف الترخيص او كلاهما)، مع شرح سريع لمراحل الكسر خصوصا خوارزمية الترخيص و هيكل ملف الترخيص (مهم جدا).
طبعا، كما جرت العادة تشفر الحلول (مع تفعيل خيار عدم اظهار اسماء ملفات محتوى حزمة zip, rar او غيرها لتفادي حرق التحدي) و تنشر باصات فك الضغط بعد انتهاء المدة.

روابط التحميل:
breakme#03 تحميل ● مركز رفع ملفات نقطة التطوير [ Dev-Point ]
او
breakme#03 | تحميل

بالتوفيق لجميع المشاركين.
 
إنضم
20 ديسمبر 2013
المشاركات
1,876
الإعجابات
4,206
النقاط
113
الإقامة
المغرب
و عليكم السلام و الإكرام

تحدٌي ممتاز، لكن يمكن وصفه ب "المُزعِج" :15:

و الله انتهيت منذ مدة، لكن لا أعرف سبب التصاق عنوان الفورم بالنصٌ ؟

اصطدمت بدالة strcat !

لا أدري هل لضعفي في اللغة البرمجية، أم لإرهاقي لأنني صراحة أشعر بالدوار ..

وصلت هنا، حين حدث الاصطدام :



Some hints for this problem :30:

سأحاول إصلاحها بعد أخذ راحة أو بعد عودتي من العمل ليلا :25:
 
إنضم
20 ديسمبر 2013
المشاركات
1,876
الإعجابات
4,206
النقاط
113
الإقامة
المغرب
و عليكم السلام و الإكرام

تحدٌي ممتاز، لكن يمكن وصفه ب "المُزعِج" :15:

و الله انتهيت منذ مدة، لكن لا أعرف سبب التصاق عنوان الفورم بالنصٌ ؟

اصطدمت بدالة strcat !

لا أدري هل لضعفي في اللغة البرمجية، أم لإرهاقي لأنني صراحة أشعر بالدوار ..

وصلت هنا، حين حدث الاصطدام :



Some hints for this problem :30:

سأحاول إصلاحها بعد أخذ راحة أو بعد عودتي من العمل ليلا :25:
بعد إعادة التحليل تبيٌن لي أنٌني خربطت في بعض الأمور ..
سأعيد المحاولة ليلا ..
 

wolf-sy

مُشرف قسم الهندسة العكسية
rankrank
إنضم
28 يوليو 2014
المشاركات
407
الإعجابات
566
النقاط
133
الإقامة
syria
تحدٌي ممتاز، لكن يمكن وصفه ب "المُزعِج" :15:
تماما +1
بس أنا ما توصلت للحل بعد :286:
دوخني و أنا بجرب كل شوي واعيد بالمحاولات :350:
 
إنضم
26 أكتوبر 2012
المشاركات
12,507
الإعجابات
16,380
النقاط
215
الإقامة
In YouR MinD
ههههه من الواضح انها لعينة جداً ,
انا انسحبت من المستوى الاول لضعفي باللغة و عرفت انو التحديات رح تكون كاسرة حقيقةً ,,
الله يوفقكم جميعاً و شكراً صاحب التحديات ,,
 

nose21

Beginner Developer
rank
إنضم
10 مايو 2013
المشاركات
87
الإعجابات
129
النقاط
33
وأنا كنت أتمنى لوكان التحدي عبارة عن سيريال مثلا مشفر بخوارزمية تروض التفكير لكن يبدو أن الأمر مرهق جدا
أخذت لمحة عنه أمس لكن لشدة البرد لم أستطيع المواصلة أمام الحاسوب لي محاولة ثانية إن شاء الله
 

nose21

Beginner Developer
rank
إنضم
10 مايو 2013
المشاركات
87
الإعجابات
129
النقاط
33
و عليكم السلام و الإكرام

تحدٌي ممتاز، لكن يمكن وصفه ب "المُزعِج" :15:

و الله انتهيت منذ مدة، لكن لا أعرف سبب التصاق عنوان الفورم بالنصٌ ؟

اصطدمت بدالة strcat !

لا أدري هل لضعفي في اللغة البرمجية، أم لإرهاقي لأنني صراحة أشعر بالدوار ..

وصلت هنا، حين حدث الاصطدام :



Some hints for this problem :30:

سأحاول إصلاحها بعد أخذ راحة أو بعد عودتي من العمل ليلا :25:
نتيجة جيدة أخي بانجو مادام أظهرت الفورم
الباقي سهل على ما أظن
 

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
وأنا كنت أتمنى لوكان التحدي عبارة عن سيريال مثلا مشفر بخوارزمية تروض التفكير لكن يبدو أن الأمر مرهق جدا
أخذت لمحة عنه أمس لكن لشدة البرد لم أستطيع المواصلة أمام الحاسوب لي محاولة ثانية إن شاء الله
اهلا اخي الكريم.
معكم حق، التحدي مزعج :) و التحليل ممتع! ايضا.
سير تنفيذ اوامر التحدي سهل التتبع و التحليل:
اولا، كشف اسم ملف الترخيص و الكيفية التي اتبعها التحدي في تحميله.
ثانيا، كشف طريقة تحميل لمحتواه.
ثالثا، كشف خوارزمية المعالجة المسؤولة على انتاج Serial انطلاقا من Username (بسيطة جدا مع خدعة تافهة :)) Serial == RegAlgo(Username)
و اخيرا فهم بعض شروط التحقق لاظهار رسالة النجاح دون الحاجة الى التعديل على الملف التفيذي.
 

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
ههههه من الواضح انها لعينة جداً ,
انا انسحبت من المستوى الاول لضعفي باللغة و عرفت انو التحديات رح تكون كاسرة حقيقةً ,,
الله يوفقكم جميعاً و شكراً صاحب التحديات ,,
اظنه لو كان دوت نت لكان لك كلام آخر :)
كل التقدير لك اخي الكريم.
 
إنضم
26 أكتوبر 2012
المشاركات
12,507
الإعجابات
16,380
النقاط
215
الإقامة
In YouR MinD
اظنه لو كان دوت نت لكان لك كلام آخر :)
كل التقدير لك اخي الكريم.
القلب و ما يهوى :174:
كل التحية لك على التحديات الجميلة عزيزي :38:
 

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
آسف اخي banjoo لو طلب عضو آخر Hint لوضعته له، لكنك اخي تملك (الله يبارك و يزيد) كل ما تحتاجه لكسر راس ابو التحدي.
 
إنضم
20 ديسمبر 2013
المشاركات
1,876
الإعجابات
4,206
النقاط
113
الإقامة
المغرب
إنضم
20 ديسمبر 2013
المشاركات
1,876
الإعجابات
4,206
النقاط
113
الإقامة
المغرب
قمت ببعض المحاولات لكنٌي لم أنجح في وضع العنوان مكانه رغم أنٌه مكتوب في الملف..
لا أدري ربما لأنني لا أفقه شيئا عن بنية ذلك الملف أو ربما لم يكن تحليلي دقيقا كفاية..

على العموم سأكتفي بذلك القدر :



ملف الترخيص موجود بأرشيف محمي :

banjoo تحميل ● مركز رفع ملفات نقطة التطوير [ Dev-Point ]

و أكيد هناك أمور فاتتني، لكنٌي سجٌلتُه باسمي على كل حال :83:

مع شكري وتقديري لصاحب التحدٌي و لكل من شارك :210::233:
 
إنضم
24 ديسمبر 2014
المشاركات
7,688
الإعجابات
11,497
النقاط
113
الإقامة
[الجزائر]

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
و أكيد هناك أمور فاتتني، لكنٌي سجٌلتُه باسمي على كل حال :83:
اخي العزيز لقد انجزت كل العمل اللازم و نعم! سجلته باسمك بكل جدارة :)

الان الكيجن يدعم النسختين
32 + 64
عمل رائع اخي الكريم، و شكرا لك على مشاركتك التحدي.

و لا هيك اسرع! خط سريع على طريقة :) Jigsaw

من التالي ؟
 

sakabato

software analysis addict
rank
إنضم
29 يونيو 2016
المشاركات
103
الإعجابات
250
النقاط
63
الإقامة
الجزائر
السلام عليكم و رحمة الله
قربنا على انتهاء مدة التحدي، يرجى من الاخوة نشر باصات فك الضغط اليوم مساءا مع شرح سريع لما تم عمله من مراحل التحليل و المشاكل التي صادفوها.

تحياتي الخالصة.
 
إنضم
15 أغسطس 2010
المشاركات
963
الإعجابات
1,602
النقاط
93
الان الكيجن يدعم النسختين
32 + 64


يمكن انشاء ملف لكل منهم

CryptoBin - The Ultimate Secure Pastebin
باسورد الحل
I+PUTFvPL42j6tRTstEaCnrCSz5Y4HHMbPzToUCDjc+j/IVYTj4T3SEqWpDD34JL

اما بالنسبة للشرح

البرنامج بداية لما يفتح يكون فى loop منتظر اى عمليه
Drag & Drop

لاى ملف من اى نوع

بعدها يبدأ العمل على الملف عن طريق الداله

SHELL32.DragQueryFileA

يكون من ضمن برامترات الدالة عنوان الفنكشن المسؤولة عن التحقق من السيريل


فى البداية يتم عمل
KERNEL32.CreateFileA

لفتح الملف باستخدام OPEN_EXISTING للتأكد من وجود الملف

بعد التأكد من وجود الملف يتم فتحة باستخدام SHLWAPI.SHCreateStreamOnFileA فى مود read-only

وال stream يتم استخدامة عن طريق دالة
XmlLite.CreateXmlReader

ثم يتم إرجاع اوبجكت من نوع XML Reader لاستخدامه فى قرائة محتوى الملف

بداية لازم يكون فى بداية الملف

<?xml version="1.0"?>

للتأكد من انه XML File طبعا دا يعتبر مثل header للملف او مثل علامة تأكد من انه XML

بعدها يتم عمل loop باستخدام Reader->Read

فى كل مره يتم القرائة فيها يتم التاكد من ال nodeType

اولا دعنا نرى ملف XML سليم لكن ليس خاص بالكيجن

كود Java Script
<?xml version="1.0"?>
<Key xmlns:dt="urn:schemas-microsoft-com:datatypes">
<serialnum title="Serial">11111111</serialnum>
<username title="User">Coldzer0</username>
</Key>


بداية دعنا نوضح ال nodeType الذى نحتاجه او ما يبحث عنه البرنامج
اولا البرنامج لا يهتم بال Main Key الى هو Key

هو يهتم بال nodes التى داخلة مثل serialnum و username

اولا عند القرائه يحدث التالى يقراء

<serialnum title="Serial">11111111</serialnum>
بعد التحقق من انه باستخدام
XmlNodeType_Element

ثم يتحقق بعدها من ال ElementName باستخدام
Reader->GetLocalName

اول node يتأكد انها تحتوى النص "x" ( بدون علامات التنصيص )

ثم يعمل continue ويكمل قرأة ال node الى بعده
ويتحقق بنفس الخطوات السابقة انه يحمل الاسم "i" ( بدون علامات التنصيص )

يجب أن يتم إكمال هاتين الخطوتين من اجل ان نكمل التحليل

دعنا نعدل الملف

كود Java Script
<?xml version="1.0"?>
<Key xmlns:dt="urn:schemas-microsoft-com:datatypes">
<x title="Serial">11111111</x>
<i title="User">Coldzer0</i>
</Key>


الان عند التحقق يجد أن أول ElementName يحتوى x والاخر i

بعدها يتأكد من variable ان قيمة اصبحت 6

اولا هذا المتغير يكون 0 فى البداية وبعد التحقق من x و i فى كل لوب يتم زيادة 1

اذا نحن نحتاج الى 6 من ال Elemets باسم x و i

دعنا نعدل

كود Java Script
<?xml version="1.0"?>
<Key xmlns:dt="urn:schemas-microsoft-com:datatypes">
<x title="Serial">11111111</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">222222222</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">33333333</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">444444444</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">55555555</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">Coldzer0</x>
<i title="User">abcdefghijQ29sZHplcjA=wxyz1234567890</i>
</Key>


الى هنا البرنامج يصل الى اخر x و i
وهنا نصل الى 6 ثم بعدها يتم استخدام
Reader->GetValue

يتم قراءة القيمة x و i فى كل لوب اذا لدينا اخر قيمه موجود فى اخر x و i

وتحتوى
Coldzer0
و
abcdefghijQ29sZHplcjA=wxyz1234567890

يوجد داله اخرى فى البرنامج يتم اعطاء تلك الداله نص وطول النص

اولا عند اللوب رقم 6 يتم إعطاء الدالة نص ال i وطولة

لكن قبل اعطاء الدالة النص يتم التحكم فى بداية النص بمعنى

ان النص هنا abcdefghijQ29sZHplcjA=wxyz1234567890

فى اللوب رقم 6 يتم ارسال النص من بداية + 10 يعنى ما سيتم ارساله فقط هو
من بداية الحرف ال 11 الى نهاية النص
Q29sZHplcjA=wxyz1234567890

اولا الدالة هي Base64Decode
وفى الدالة هة يتأكد من نهاية نص ال base باستخدام

ان الحرف اصغر من او يساوى 0x3F ويساوى "?"

النص
Q29sZHplcjA=
يفك الى Coldzer0
بعدها يقارنه بالنص الموجود فى x وهو Coldzer0

اذا اول تحدي فى الخوارزمية تم تخطيه

بعدها نجد انه يتم التأكد من من أن المتغير الى يزيد كل مرة بواحد يساوى 8

اذا يجب ان نزيد ال x و i مرتين ليكون لدينا 8 من x و i

لكن يوجد شروط ايضا وهى
كود Java Script
<x title="Serial">AT4RE</x>
<i title="User">abcdefghQVQ0UkU=opwxyz1234567890mjhc</i>


يتم اخر النص فى i من بعد الحرف ال 8 الى نهايته ويتم الفك نجد انه
QVQ0UkU=
وهو يساوى AT4RE وطبعا بعد الفك يتم المقارنة بينهما
ويكمل

عند العدد 9 من المتغير الذى يزيد كل مره بواحد

كود Java Script
<x title="Serial"> Coldzer0</x>
<i title="User">abcdefgho123IENvbGR6ZXIw=sasopwxyz123456</i>

هنا يتخطى 12 حرف من بداية النص الموجود فى i ويتم الفك والمقارنه بالنص فى x
IENvbGR6ZXIw=
الى Coldzer0 ويقارن ويكمل

عند العدد 10 من المتغير الذى يزيد كل مره بواحد
كود Java Script
<x title="Serial">1234567890S2V5Z2Vu=</x>
<i title="User">abcdefgho12S2V5Z2VuIEJ5=asdaopwxyz123456</i>


عند الرقم 10 يحصل الاتى

يتم تخطى 10 حروف من بداية قيمة x
ويتم فكها
S2V5Z2Vu= الى Keygen

يتم تخطى 11 حرف من بداية قيمة i
يتم فكها من S2V5Z2VuIEJ5= الى Keygen By

لا تتم أى مقارنات هنا فقط يتم ضم قيمه الناتج من التحقق رقم 9 مع قيمة i فى التحقق رقم 10

ويصبح

Keygen By Coldzer0

ويتم اخذ القيمة الناتجة من x فى التحقق رقم 10
ويتم استخدامة ك title

الناتج النهائى يكون

كود Java Script
<?xml version="1.0"?>
<Key xmlns:dt="urn:schemas-microsoft-com:datatypes">
<x title="Serial">11111111</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">222222222</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">33333333</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">444444444</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">55555555</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">Coldzer0</x>
<i title="User">abcdefghijQ29sZHplcjA=wxyz1234567890</i>
<x title="Serial">777777777</x>
<i title="User">abcdefghijklmnopqrstuvwxyz1234567890</i>
<x title="Serial">AT4RE</x>
<i title="User">abcdefghQVQ0UkU=opwxyz1234567890mjhc</i>
<x title="Serial"> Coldzer0</x>
<i title="User">abcdefgho123IENvbGR6ZXIw=sasopwxyz123456</i>
<x title="Serial">1234567890S2V5Z2Vu=</x>
<i title="User">abcdefgho12S2V5Z2VuIEJ5=asdaopwxyz123456</i>
</Key>


تكون النتيجة النهائية
كود Java Script
MessageBoxA(0,'Keygen By Coldzer0','Keygen',$40)



وبالنسبه للتحدى x64 bit يوجد فقط بعض التغييرات فى القيمة التى يتم قرائه النصوص من بدايتها

اتركها لكم

اتمنى ان تكونوا استفدتم
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل