احب اوضح حاجة علشان بس منظلمش هاني
هاني فعلا يعكف الان على تنفيذ خطته لحماية البرامج
بس الموضوع يحتاج وقت
على فكرة المعلومة دي مصدرها شخصي
وشكرا
احب اوضح حاجة علشان بس منظلمش هاني
هاني فعلا يعكف الان على تنفيذ خطته لحماية البرامج
بس الموضوع يحتاج وقت
على فكرة المعلومة دي مصدرها شخصي
وشكرا
الموضوع مش سهل فنحن نعلم ان شركات برمجية كبيرة تم شرخ برامجها
يعني هاني مطلوب منه ان يتفوق على هذه الشركات
ايه رأيكم في هذه السهوله !!!!
السلام عليكم
اهلا بك ياوائل فى قسم الفيجوال :D
وشكرا على تشجيعك :)
بالفعل يا جماعة انا الخطوات الاخيرة من البرنامج الان وربما اتأخرت شوية ولكن ذلك بسبب اننى كنت مشغول وبسبب انى اريد وضع طريقة حماية قوية بالفعل
ولا اريد ان اضع البرنامج اليوم ويكسر غدا :wacko:
وان شاء الله اعتقد من شكل البرنامج حتى الان انه سيكون منيع الى حد كبير وكسره سيكون صعب جدا جدا جدا
(وربنا يستر :wacko: )
اخى هشام
شكرا جزيلا على هذا الشرح الرائع جدا :D وجزاك الله خيرا
اخى اياس
شكرا جزيلا على متابعتك للموضوع ورأيك فيه
بالنسبة لاسألتك
اقتباس- حاليا أنا أعمل في ++C هل تعتقد أن برامج هذه اللغة أقوى من برامج لغة الVB.وهل طرق حمايتها أقوى من طرق حماية الvb..
معروف ان برامج ++C اقوى من برامج الفيجوال بيسيك واسرع بكثير ولكن بالطبع اصعب فى برمجتها
وبالنسبة لطرق حمايتها
اعتقد ان كسر برنامج محمى بالفيجوال اصعب من فك برنامج محمى بال++C (راجع جيدا المشاركة رقم 100 للاخ Xacker)
اعتقد ان الاخ Xacker يمكنه ان يفيدك اكثر فى هذه النقطة
اقتباس2-سؤال خارجي(هل أستطيع كمبرمج فيجوال ) أن أتعلم لغة الأسمبلي و كم ستكون سهلة
اعتقد انها صعبة بعض الشىء (اصعب من الفيجوال) ولكن لا صعب مع المحاولة
اقتباس..و هل هي هامة لهذا الحد لدرجة اختراقها للبرامج أم هناك طرق معينة لاستخدامها
فكرة كسر حماية البرامج بالاسيمبلى كالتالى :
عندما نكتب برنامج باى لغة عالية المستوى مثل الفيجوال بيسيك الكمبيوتر عند تنفيذ البرنامج لا يفهم هذا الكود على الاطلاق لان الكمبيوتر فى الاساس لا يفهم الا لغة واحدة وهى لغة الالة (من ضمن اللغات منخفضة المستوى) اى لغة الكهرباء (0 يعنى مفيش كهرباء و1 يعنى فى كهرباء)
لذلك يوجد فى كل لغة من هذه اللغات العالية المستوى حاجة تسمى compiller اى مترجم يقوم بترجمة الكود الذى نكتبه الى لغة يفهمها الكمبيوتر وهى لغة الالة او لغة الاسيمبلى
برامج كسر الحماية تقوم بمراقبة تشغيل البرنامج وتحوله الى كود اسمبلى مع امكانية تعديل هذا الكود وذلك لان لغة الاسيمبلى الاقرب الى لغة الالة
اى ان لغة الاسيمبلى لا تكسر البرامج من نفسها ولكنها هى اللغة الوحيدة التى يمكن تحويل البرنامج اليه( بالاضافة الى لغة الالة طبعا) ولكن لغة الالة صعبة جدا جدا فى التعامل معها لذلك برامج كسر الحماية تترجم تنفيذ البرنامج الى لغة اسيمبلى مع امكانية التعديل فيه
بعد ذلك من عنده خبرة فى الاسيمبلى يستطيع التعرف على كود الاسيمبلى المقابل لكود فيجوال بيسيك مثل الاتى
if (password = hhh)then
frmmain.show
else
msgbox("password is not true")
end if
وبالتالى يستطيع اما التعرف على الباسوورد او تغيير جملة if هذه
وبالطبع كل هذا الكلام يستطيع اخى Xacker افادتك فيه بصورة اكبر وارجو منه ان يصحح اى اخطاء اكون قد وقعت فيها فى الكلام السابق لانه بالفعل استاذ اسيمبلى وانا خبرتى فيها قليلة جدا
واعتقد انك لو قرأت الموضوع كاملا ستجد شرح افضل من هذا لهذه النقطة للاخ Xacker
(راجع جيدا المشاركة رقم 100 للاخ Xacker)
اقتباس..باختصار هل تنصحني أن أتعلمها من أجل دعم برامجي التفاعلية.
انصحك بأخذ فكرة عنها لان تعلمها واتقانها سيتطلب منك وقتا كثيرا على ما اعتقد
ولكن خد فكرة عنها لكى تكون على دراية بما يجرى
وهى بلا شك لغة قوية جدا وتستطيع بها عمل ما لا يمكنك تنفيذه فى اى لغة اخرى لانك تتعامل مع الهاردوير مباشرة (تقريبا) وليس من خلال لغة وسيطة لا تغطى كل احتياجاتك
اقتباس-هل حماية البرنامج في نظركم تعني حمايته بكلمة سر أم حمايته من سرقة كوداته ..لأن الثانية أخطر بملايين المرات من الأولى .
اولا : حماية البرنامج عندى اقصد بها حماية البرنامج من النسخ الغير قانونى هذه النقطة يمكن الا تعنى لك الكثير حاليا كما قلت ولكنك ستفهم مدى خطورتها عندما تتعب فى برنامج ضخم وتفاجىء بوجود نسخ غير قانونية منتشرة منه عند كل الناس
ثانيا : لا احد يستطيع سرقة الكود الذى كتبته ابدا
بمعنى انه لا احد يستطيع حتى الان الاطلاع على كود الفيجوال بيسيك الذى كتبته ابدا ولا توجد برامج تستطيع عمل هذا
ما تفعله برامج فك الحماية هى ترجمة البرنامج للاسيمبلى كما قلت وكود البرنامج بالاسيمبلى مختلف تمام الاختلاف عن كود الفيجوال بيسيك الذى كتبته
حتى محترفى الاسيمبلى لن يستطيعوا ابدا فهم كل كود الاسيمبلى الذى يفتحه البرنامج ولكنهم يستطيعوا فهم بعض الاكواد المشهورة منه
فمثلا يستطيعوا تمييز جملة if التى تستخدم للتأكد من صحة الباسوورد
او يستطيعوا تمييز انك وضعت قيمة فى الريجيسترى باستخدام الدالة save settings ولكنها لن تظهر امامهم بنفس الكود اللى انت كتبته ولكن بكود اخر مقابل للكود بتاعك (راجع جيدا المشاركة رقم 100 للاخ Xacker)
وارجو ان اكون قد اجبت عن كل اسألتك :rolleyes:
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
خوارزمية RSA - Reivest, Shamir & Aselman
مقدمة:
RSA عبارة عن خوارزمية تشفير تستعمل ارقام اولية كبيرة بهدف توليد المفتاح العام -وهو مفتاح غير سري يستخدم في التشفير- والمفتاح الخاص - وهو مفتاح سري نستخدمه في فك التشفير - ونلاحظ استعمال RSA مع DES حيث يتكفل DES بتشفير كامل البيانات بواسطة مفتاح محدد ونستخدم RSA في تشفير المفتاح السري لـ DES بشكل مشابه لما يلي:

الخوارزمية:
في البداية نختار عددين اوليين وليكونا p و q ونعتبر ان حاصل الجداء n = p*q هو قيمة عامة public غير سرية.
يعلم المختصون بالرياضيات ان العدد O(n) = (p-1) * (q-1) يمثل العدد الكلي للاعداد الاصغر من n والاولية بالنسبة له.
اود ان اشير هنا الى ان تنسيق الموضوع لا يدعم ادخال رموز رياضية.. بالتالي فقد مثلت العملية المسماة Euler totient (الفاي Phi) التي رمزها
بالشكل O(n) وساحاول ان انسق الموضوع بشكل ملف pdf لكن حبذا لو يعطيني احد اسم برنامج مناسب (حسب تجربته) لتشكيل ملفات pdf.
الان نختار قيمة عشوائية e بحيث تكون اولية وتحقق العلاقة e < O(n) وتكون هذه القيمة هي مفتاح التشفير ثم نحسب القيمة d التي تحقق المعادلة:
d * e = 1 (mod O(n))
وتكون d هي مفتاح فك التشفير.
هكذا نكون قد حددنا حساب كيفية حساب مفتاحي التشفير وفك التشفير.
اما بالنسبة للقيمة O(n) فهي مساوية لـ :
O(n) = n * (1 - (1 / P1)) * (1 - (1 / P2)) * ..... * (1 - (1 / Pn))
حيث تمثل P1, P2...Pn العوامل الاولية Prime لـ n .
مثال:
العدد 10 مؤلف من جداء 2 * 5 وهما عاملين اوليين له اذا هناك:
O(10) = 10 * (1 - (1 / 2)) * (1 - (1 / 5)) = 4
اربعة اعداد اصغر من 10 واولية وهي: 1 و 3 و 7 و 9
يزداد امان التشفير عبر اختيار رقمين اوليين جيدين اي انهما كبيرين ولا يكون الفارق بينهما صغيرا جدا او كبيرا مقارنة مع قيمتهما. نحتفظ بقيمة هذين العددين p و q بينما نستطيع توزيع حاصل جدائهما n.
في النهاية ننتقل الى مرحلة التشفير وفك التشفير. هناك بيانات معينة x نود تشفيرها. نحصل على البيانات بعد التشفير y عبر تنفيذ المعادلة:
Y = X^e * 1 (mod O(n))
نلاحظ ان القيمتين e و n غير سريتين وبالامكان توزيعهما على جهات مختلفة اخرى بهدف التمكن من تشفير وارسال البيانات.
الان نستطيع البرنامج على ان المعطيات السابقة تسمح باستنتاج المعادلة التالية:
X = Y^d * (mod O(n))
وبذلك نحصل على البيانات غير المشفرة x انطلاقا من المفتاح الخاص السري d والبيانات المشفرة بواسطة المفتاح العام غير السري e مع الاخذ بعين الاعتبار القيمة الخاصة لـ n .
مثال:
لنفترض p = 47 و q = 61 بذلك نحصل على:
n = 47 * 61 = 2867
و
O(2867) = (47 - 1) * (61 - 1) = 2760
نتوجه الان الى ايجاد القاسم المشترك الاكبر (GCD) للعددين q و p. نستخدم خوارزمية Euclidian التي تنص على ان المساواة:
a = b * m + c
تؤدي الى:
GCD (a, b) = GCD (b,c)
علما باننا نختار عادة ترتيب a و b بحيث a > b ونختار m بحيث تكون الجزء الصحيح لحاصل قسمة a / b بينما يكون c باقي هذه القسمة.
مثال:
كمثال على هذه الخوارزمية ساقوم بايجاد GCD العددين 6 و 9 (حيث نعلم جيدا ان القاسم المشترك الاكبر هو 3) حيث لدينا:
9 = 6 * 1 + 3
حيث ان ناتج قسمة العدد 9 على 6 هو 1.5 وبالتالي نختار الجزء الصحيح ليكون m وهو الواحد متجاهلين الـ 5.0 الباقي ويكون باقي القسمة هو 3 كون:
c = a - b * m ----> c = 9 - 6 * 1 = 3
اذا: GCD (9, 6) = GCD (6, 3) وبما ان 6 من مضاعفات 3 اذا GCD (6, 3) = 3 وهكذا نكون قد حصلنا على الاجابة الصحيحة.
كما تلاحظون فتطبيق هذه الخوارزمية الرياضية في معادلة برمجية امر سخيف.
نعود الان الى تطبيق هذه الخوارزمية من اجل 2760 = O(n) والرقم e الذي نختاره 167 بصورة عشوائية بحيث يحقق الشرط المذكور اعلاه. فيكون لدينا:
2760 = 167 * 16 + 88 (c-1) 167 = 88 * 1 + 79 (c-2) 88 = 79 * 1 + 9 (c-3) 79 = 9 * 8 + 7 (c-4) 9 = 7 * 1 + 2 (c-5) 7 = 2 * 3 + 1 (c-6)
وبذلك نستنتج ان:
GCD (2760, 167) = GCD (167, 88) = GCD (88, 79) = GCD (79, 9) = GCD (9, 7) = GCD (7, 2)
وبما ان القاسم المشترك الاكبر لـ 2 و 7 هو 1 اذا GCD (2760, 167) = 1 اي ان العددين 2760 و 167 اوليان بالنسبة لبعضهما البعض.
ننتقل الان الى ايجاد d الذي يحقق e * d = 1 (mod O(n)). بامكاننا هنا تجريب الاعداد بشكل تصاعدي حتى نحصل على قيمة d او نلجا الى خوارزمية مكملة للخوارزمية السابقة:
لدينا المساواة (c-6):
1 = 7 - 2 * 3
نلاحظ ان 2 هو باقي القسمة في (c-5) فنستبدله من قيمته من (c-5) ثم نستبدل 7 من (c-4) ثم 9 من (c-3) ومع اعتبار (c-2) واخيرا (c-1).. في النهاية سنصل الى ما يشبه:

اعرف انه التحليل محبط ويحتاج الى وقت كبير في حال كان الهدف التشفير.. او فك التشفير.. لكن هناك ناحية ايجابية, في حالة التشفير انت بتعرف اي خوارزمية عم تعتمد وشو هي القوانين الرياضية المستخدمة والثوابت كلها لكن في حالة فك التشفير العكس تماما :D
على كل بالنهاية تكون قيمة d = 1223
نتحول الان الى تشفير بعض البيانات بواسطة هذه المفاتيح.. لنفترض اننا نود تشفير العدد x = 783 ولدينا معادلة التشفير:
Y = X^e * (mod O(n)) ----> Y = 783^167 (mod O(2867)) -----> Y = 2865
اذا يمثل 2865 البيانات المشفرة.
وبالتالي يمكن الحصول على البيانات غير المشفرة بواسطة المفتاح السري d = 1223 بواسطة المعادلة:
X = Y^d * (mod O(n)) -----> X = 2865^1223 (mod O(2867)) -----> X = 783
وهي البيانات الاصلية قبل التشفير.
الخلاصة:
- تستخدم خوارزمية RSA العددين الاوليين p و q وهما سريان ونختارهما بشكل عشوائي.
- تستخدم القيمة n حاصل جداء العديين الاوليين p و q غير السرية والتي يتم توزيعها.
- تستخدم القيمة السرية لـ Phi(n) = (q - 1) * (p - 1)
-تستخدم عددين اوليين بالنسبة لـ n وهما المفتاح العام e غير السري والمفتاح الخاص d السري ويرتبط هذان العددان بالعلاقة e * d = 1 (mod Phi(n))
-البيانات غير المشفرة x ونفس البيانات المشفرة y.
الى هنا ننتهي من هذا الشرح.. في البداية ستبدو الامور معقدة.. لا باس.. في النهاية ايضا ستبدو معقدة :lol: .. لكن مع الامثلة والتكرار سيغدو المجهول مفهوما..
ارفق بعض الملفات التي ستفيد في فهم هذا الشرح وفي حال واجهتم تشفير واردتم التخلص منه :rolleyes:
كنت اريد شرح كيفية قرصنة حماية RSA في برنامج لكني سادعه الى حين كتابة المزيد عن امور الحماية.
تحياتي
تم تعديل هذه المشاركة بواسطة Xacker في 18 أغسطس 2005 في 20:46
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ساقوم في هذا الشرح المبسط بعرض افكار جدا مهمة في عالم القرصنة الرقمية Digital Crime يجب على كل مبرمج ان يضعها نصب عينيه.. كتنويع في هذا المجال ولاتاحة الفرصة لفهم مواضيع التشفير بشكل افضل من عرضها بشكل متتالي مما يؤدي الى ضياع واختلاط قسم كبير من المعلومات.
سادعو هذه النقاط المجمعة بـ: Cracking is an Art, your Art way of viewing
في البداية اشير الى حقيقتين هامتين:
- ليس هناك من قفل (حماية) لا يمكن كسره (قرصنتها).
- ليس هناك من نظام (برنامج) لا يمكن الولوج اليه (اختراقه).
من هذا المنطلق عندما نفكر بالحماية والقرصنة نفكر بالامور التالية:
- ما الذي بالامكان عمله؟ وما الذي لا يمكن عمله؟
- ما الذي يمكننا ان نتعلمه من الموارد المتاحة لنا عبر شبكة الانترنيت.
- كيف نحسن من موقفنا وكيف نجعل (اقفالنا) اعقد.
- كيف بالامكان جعل الحماية تدافع عن نفسها؟
في عالم البرمجة ينقسم الخبراء الى قسمين:
- الاشخاص الجيدين Good Guys, ولنطلق عليهم اسم (المبرمجين Programmers)
- الاشخاص السيئين Bad Guys, ولنطلق عليهم اسم (قراصنة البرامج Software Pirates a.k.a Crackers)
منطقيا يفكر المبرمجون باستراتيجية دفاعية (كما في حال معظم المشاركين في هذا الموضوع) والذين يبحثون عن طريقة لحماية برامجهم بشكل عام.. اي انهم يبحثون بـ:
- المواضع التي يجب عليهم ان يزيدوا من قوتها في برامجهم.
- المواضع التي يجب عليهم ان يمنعوا النفاذ منها.
ولكن الفكرة المبسطة تقول, لتكون مدافع جيد, يجب ان تفكر كمهاجم جيد:
- تخيل ما الذي بالامكان عمله, اين يمكن ان تتواجد نقاط الضعف.
- تخيل ما البعيد عن المنال والذي لا تستطيع تطبيقه.
- اختبر, سجل ملاحظاتك, اختبر مرة اخرى, صحح ملاحظاتك, حاول مع برامج اخرى، طبق ما توصلت اليه من نتائج!
اذاً ان كنت تريد الدفاع فاختر المهاجم المفضل بنظرك وفكر كيف يقوم بالهجوم:
- فكر بالاحتمالات الممكنة بالوسائل المتاحة.
- فكر بمنطق سليم.. ان كان لدينا المتحول X, ما الذي بامكاننا عمله؟ وما الذي بامكانه عمله ان توصل اليه!
من المهم جدا على المدافع ايضا ان يضع امام عينيه الامور التالية:
- من المهم جدا ان تقوم بمهاجمة خوارزمية الحماية الخاصة بك.
- من المهم جدا ان تعرف كيف تتم مهاجمة الحماية الخاصة بك.
- من المهم جدا ان تكون مطلعا بشكل جيد جدا على كيفية عمل الحماية الخاصة بك.
- من المهم جدا ان تكون مطلعا على محدودية الحماية الخاصة بك.
باختصار:
- لا تلزم نفسك بادوات وخوارزميات ثابتة.
- يجب ان تكون دائما على اطلاع على كل جديد في عالم القرصنة الرقمية.
- يجب ان تملك دائما اخر ما توصلت اليه التكنولوجيا من ادوات.
- يجب ان تتقن استخدام الادوات التي يستخدمها القراصنة.
- يجب ان تكون في موقف الهجوم لتتقن الدفاع.
- يجب ان تتذكر ان القراصنة يبحثون عن الجديد كل يوم وبالتالي يجب ان تسبقهم دائما بخطوة.
- يجب ان تتذكر انهم ينتجون كل يوم طرائق جديدة لتجاوز خدعك البرمجية.
- يجب ان تعلم جيدا كيف تستخدم الاداة.
- يجب ان تعلم جيدا كيف تعمل الاداة.
- يجب ان تكون منهم, ان تكون المخادع, ان تكون الاداة.
قبل ان اختم هذا الموضوع ساجيب عن بعض اسئلة الاخ eias,
اقتباسحاليا أنا أعمل في ++C هل تعتقد أن برامج هذه اللغة أقوى من برامج لغة الVB.وهل طرق حمايتها أقوى من طرق حماية الvb.
كما ذكر لك الاخ هاني, فبرامج الـ ++C اقوى بكثير من برامج الفيجوال بيسك بسبب الامكانيات المتاحة لهذه اللغة والتي كانت خيار شركات نظم التشغيل. راجع قسم البرمجة بالـ ++C واطلع على محتويات ذلك القسم.
اما بالنسبة للقدرة على التصدي لهجمات القراصنة فبرايي الشخصي اللغتين على حد سواء. لغة الـ ++C تعتمد على ما يسمى بالـ API اي الـ Application Programming Interface (برمجة واجهة التطبيقات) المضمنة في مكاتب الربط الديناميكية Dynamic Link Libraries (DLL) مثل kernel32.dll, user32.dll الخ الخ.. والتي اتاحت التحكم بمعظم موارد الحاسب اما لغة الفيجوال بيسك فانها تعتمد على وظائف خاصة بها مضمنة في مكاتب ربط خاصة مثل msvbvm60.dll الخاصة بالفيجوال بسيك6 و msvbvm50.dll الخاصة بالفيجوال5 ونظرا لان مكاتب الربط الخاصة بالفيجوال تختلف من اصدار لاخر فبالتالي تحتم تحديث ملف مكتبة الربط ان اختلف الاصدار الذي كتب به البرنامج اما بالنسبة لمكاتب الربط الخاصة بانظمة التشغيل فهي مكاتب ثابته تشترك فيها الانظمة التي نشات من خلال IBM كانظمة Windows والتي لا تختلف بنيتها بين الانظمة ونظرا لحتمية وجودها تم تفضيل لغات البرمجة مثل ++C و ASM وغيرهما الكثير على لغة الفيجوال. اعود للنقطة الخاصة بالامان واذكر نقطة هامة جدا، ان وظائف الفيجوال تعتمد في النهاية على الوظائف التي تزود بها مكتبات الربط الخاصة بالنظام وبالتالي فان مبدا عملها واحد وان اختلفت الاسماء! فان اردت ان ابحث عن مقارنة قيمتين في الاسمبلي ابحث عن الوظيفة lstrcmp اما في الفيجوال فابحث عن __vbaStrCmp وعندما ظهر الفيجوال اول مرة كانت تطبيقاته تشكل مشكلة بالنسبة للقراصنة نظرا لانهم يواجهون وظائف جديدة لم يعتادوا عليها اما اليوم فانت تعلم تماما ما استخدام كل وظيفة في ملف msvbvm60.dll مثلا! وبالتالي لم يعد هذا الموضوع يسبب اي مشكلة. اخيرا بالنسبة لهذه النقطة، ستوفر لك لغة الـ ++C حتما اريحية اكبر ومجال اوسع في مجال تطوير حماية برنامجك اكثر مما ستوفره لك لغة الفيجوال.
اقتباسسؤال خارجي(هل أستطيع كمبرمج فيجوال ) أن أتعلم لغة الأسمبلي و كم ستكون سهلة
بالطبع, فاللغتين تختلفان تماما عن بعضهما البعض ولا تحتاج الى معرفتك في الفيجوال لتعلم الاسمبلي على الاطلاق! اما بالنسبة للسهولة فلغة الاسمبلي لغة صعبة لكن ما ان تقوم بالقراءة حتى تبدا الامور بالتوضح لك ومع التطبيق ومجاولة كتابة برامج بسيطة ستزيد من قدرتك على كتابة برامج فيها على الرغم من ان شعلتها بدات بالخمود تدريجيا نظرا لانها لا تعطى حق قدرها في الجامعات التي توجهت الى اللغات الابسط مثل ++VC و Delphi و Pascal
اقتباسهل هي هامة لهذا الحد لدرجة اختراقها للبرامج أم هناك طرق معينة لاستخدامها
هي اللغة التي تستطيع من خلالها تنقيح البرامج لان لغة الاسمبلي تكتب بتعليمات يتم تحويلها مباشرة الى لغة الالة بواسطة (مجمّع assembler) وتعليماتها تمثل بصورة ست عشرية Hexadecimal اما اللغات الاخرى فان تعليماتها هي عبارة عن رموز خاصة تحول الى لغة الاسمبلي عن طريق (المترجم compiler) ومن ثم يتم تحويل التعليمات الى لغة الالة وبالتالي لقراءة تعليمات برنامج تقوم بالاطلاع على الترميز الست عشري له لتستنتج التعليمات الموافقة بلغة الاسمبلي وتبدا التنقيح.
اقتباسباختصار هل تنصحني أن أتعلمها من أجل دعم برامجي التفاعلية.انصحك بأخذ فكرة عنها لان تعلمها واتقانها سيتطلب منك وقتا كثيرا على ما اعتقد
ولكن خد فكرة عنها لكى تكون على دراية بما يجرى
كلام سليم تماما.. ان سالتني رايي, اقول لك باني اكتب برامجي بلغة مثل الـ ++VC واقوم بتنقيحها بالاسمبلي.
اقتباسمحترفى الاسيمبلى لن يستطيعوا ابدا فهم كل كود الاسيمبلى الذى يفتحه البرنامج ولكنهم يستطيعوا فهم بعض الاكواد المشهورة من
مبرمجوا الاسمبلي يستطيعون تماما فهم كل تعليمة اسمبلي يقوم البرنامج باستخدامها لكن لا يستطيعون معرفة التعليمات المقابلة (تماما) باللغة التي كتب البرنامج اصلا بها.. ابسط مثال حاول الاطلاع على برنامج مكتوب بالدلفي وستفهم ما اقصده.
والله ولي التوفيق.
تم تعديل هذه المشاركة بواسطة Xacker في 16 أغسطس 2005 في 07:22
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
العفو اخي hichamchak هاد من واجبي.. تحياتي لك.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
السلام عليكم..
شكرا لك أخي الكريم هاني كلام رائع لا غبار عليه و لكني سأتوجه إلى ++C و سأترك موضوع الأسمبلي حاليا لأخذ عنه فكرة فيما بعد .
يارجل أنا واقع بنفس مصيبتك طار هاردي القديم و فيه كل ملفاتي و اشتريت واحد 80 و لكن هيهات يحمل ملفاتي التي تعبت فيها 3 سنوات ^.^
أخي الكريم Xacker و الله شرح رهيب بالفعل لا نستطيع القول إلا ألف شكر فعلا الكل يقول ال ++C أفضل من الVB و اليوم عرفت السبب الحقيقي(غير أسباب الأداء) ..
و لكن هذه الجملة (اما بالنسبة للقدرة على التصدي لهجمات القراصنة فبرايي الشخصي اللغتين على حد سواء.)أحبطتني بعد ما كنت منغر بال++c على كل حال هكذا حال الدنيا ^.^
هو أنا لا أحتاج الأسمبلي في صناعة برنامج طالما لغة سهلة مثل الVB أو ++C تقدم لي برامج رهيبة بكل سهولة و لكن الي اتضح من كلامك أنها هامة في فهم التعامل بين الHradWare و الSoftWare و في عملية فهم أداء البرنامج إعدادا لحمايته أو اختراقه.
الحقيقة أيضا كلامك و كلام الأخ هاني يطمئن فالخسارة المعنوية أكبر بكثير من الخسارة المادية ..أي طالما الهارك لن يستطيعوا سرقة كودي الذي ربما يكون صعب و متعب و مرهق فأنا مرتاح ^.^
على فكرة يا جماعة لم تناقشوا موضوع برامج الاختراق مثل برنامج (الذي سموه عندنا برنامج تعريب)Resource Hacker أو هناك واحد أقوى منه..ربما هذه تشكل أيضا خطر على برامجنا لأن هذا البرنامج قادر على التحكم بالبرنامج مثل اللعبة تغير أزرار و عناصر تحذف و تضيف على كيفك تغيير أسماء لون حتى أنه يحذف اسمك و يضع اسمه مكانك..يجب أن نجد لها حلا و لكن الذي لاحظته أن هذه البرامج لا تفتح برامج الVB و برامج الMicrosoft و لا برنامج 3DS MAX و لا برنامج ال Photo Shopو الFlash باختصار لا تفتح هذه البرامج برامج الشركات الضخمة ..معقول في طريقة معينة ؟؟؟؟
تحياتي لكم
إيــاس
eias كتب:على فكرة يا جماعة لم تناقشوا موضوع برامج الاختراق مثل برنامج (الذي سموه عندنا برنامج تعريب)Resource Hacker أو هناك واحد أقوى منه..ربما هذه تشكل أيضا خطر على برامجنا لأن هذا البرنامج قادر على التحكم بالبرنامج مثل اللعبة تغير أزرار و عناصر تحذف و تضيف على كيفك تغيير أسماء لون حتى أنه يحذف اسمك و يضع اسمه مكانك..يجب أن نجد لها حلا و لكن الذي لاحظته أن هذه البرامج لا تفتح برامج الVB و برامج الMicrosoft و لا برنامج 3DS MAX و لا برنامج ال Photo Shopو الFlash باختصار لا تفتح هذه البرامج برامج الشركات الضخمة ..معقول في طريقة معينة ؟؟؟؟
برنامج ResHacker ليس برنامج اختراق بل هو برنامج يقوم بتعديل ال resource الخاص بالبرنامج.. برامج ال VB لها بيئة خاصة تمنع استعراضها.. او لنقل بالاحرى لم يستطع احد الى الان فهمها لتشكيل برنامج يتعامل معها.. واعتقد اغلب الظن ان ال resource الخاص بها ايضا من نوع run time يعني بتتشكل وقت التشغيل.
بالنسبة لبرامج microsoft >> مثل؟
برنامج 3d max / PhotoShop / Flash قد تكون البرامج مضغوطة ومشفرة وبالتالي لم تستطع استعراض محتوياتها.. او بكل بساطة قد تكون كل ال resource الخاصة بها عبارة عن قيم تنتج مع بدء تشغيل البرنامج وليس resource ثابتة عن طريق ملف some_name.rc <<
بالنسبة لحماية برنامجك من برامج التعريب فلن تستطيع الا ان تستخدم الضغط او التشفير.. لكن عند التخلص منه يكون برنامجك عرضة للتعديل حتى بدون هذه البرامج المختصة بل عن طريق الـ binary اي الترميز الثنائي له.. راجع هذا المقال الذي كتبته حول هذا الموضوع:
http://www.freewebtown.com/fusionrulez/dat...ineering_p1.zip
http://www.freewebtown.com/fusionrulez/dat...ineering_p2.zip
ولك اجمل التحيات
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
الاخوة الاعزاء لا يوجد برنامج لا يكسر ابدا سوى برنامجين Propel Accelerator لانه يعتمد على التغذية الدائمة من الموقع وهذا تحدي
والبرنامج الثاني برنامج اليسير وهو مصمم بالاكسس mde ولا يمكن كسره الا بارجاع تاريخ الجهاز فقط الى تاريخ النسخة كل ثلاثة اشهر وهذا ليس تحدي
من مواضيعي :
إجعل برنامجك يعمل على كل جهاز في العالم
النسخة الاحتياطية الاكثر تطورا على مستوى المنتديات
هذا الكود يحتاج لكثير من الذكاء وقليل من العمل
إليكم بعض المعلومات عن المكتبة الشاملة التي يجهلها الكثير وهي مصممة بالvb6
برنامجين مع السورس كود قديمين جداً
مثال كامل لــانشاء ملف txt*. النصي
الاداة رائعة جدا بكل المقاييس swbbtnba.ocx
كود ممتاز ؟ ومساعدة في الاضافة / الحذف
احلى حركة وجدتها اخيرا بعد وقت طويل
وأخيرا حصلت المعجزة : تحويل الفلم الى صورة متحركة وكانك تشاهد فلما Camtasia Studio
السلام عليكم ورحمة الله و بركاته
احب ان اوضح شىء حول برنامج ResHacker وهو يفتح عدة ملفات شرط ان لا تكون مضغوطة او مشفرة
وهى هذه الملفات
exe.dll.ocx.cpl.scr) win32pe file) و يمكن تغير فيها كل ما تريد
اما هذا البرنامج فهو من الطراز الرفيع multilizer 6.1.11 22.5MO فهو يفتح جميع البرامج المبرمجة بجميع الغات حتى و ان كانت مشفرة ويفتح التشفير وتغير كل ما تريد به و يشمل جميع قواميس لوغات العالم.. ويمكن تحميل القوميس من MICROSOFT عند فتح البرنامج الذى تريد التغير فيه يبين لك ماهية اللوغة التى برمج بها
وبه ميزات اخرى اكتشفها بنفسك
تم تعديل هذه المشاركة بواسطة hichamchak في 16 أغسطس 2005 في 23:47
وعليكم السلام ورحمة الله وبركاته
هذا اختبار لمدي حماية البرنامج المرفق..
البرنامج استغرق مني 5 ساعات كي أجد فكرته - العبيطة - وأنقيها من العيوب..وأطبقها .. وقد وضعت البرنامج غير مشفر.. كي يسهل عمل Debugging عليه..
الصراحة ده كان تحدي بيني وبين نفسي كي اعمل برنامج يتم كسره بصعوبة..
لأن جميع برامج الفيجول بيسيك التي قمت باختبار حمايتها .. للأسف لم تأخذ معي أكثر من دقيقة للكسر..
لكن هناك بعض القصور في تلك النسخة..ثلاث نقاط بالتحديد.. والتي تستطيع أن تصل عبرهم لكيفية عمل البرنامج .. ومن ثم طريقة كسرالبرنامج وبسهوله شديدة ..
ولكنني سأعالج تلك النقاط قريبا..ولن يتم استخدامها مرة أخري في كسر البرنامج ..
لكنني فقط أريد أن أختبر مدي الحماية الآن علي تلك النسخة..
ويا ريت من الأخوة الأعزاء الذين سيقومون بكسر البرنامج.. ذكر الوقت الذي تم أخذه لكسره, ومدي الصعوبة.. ولو أنني سأحبط إذا لم يكن هناك ولو شيء بسيط من الصعوبة..
هذا والسلام عليكم ورحمة الله وبركاته..
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 17 أغسطس 2005 في 00:20
اقتباسوالبرنامج الثاني برنامج اليسير وهو مصمم بالاكسس mde ولا يمكن كسره
ولكن صار الحلم حقيقة.....
كان كل هكر يحلم ان يرى برنامج سهل لفك تشفير MD5 .MDE بسرعة فائقة
ولقد حققة شركة OXID المتخصصة في برامج التشفير تحقيق هذا الحلم
وانا اليوم اضع امامكم البرنامج الحصري المميز الذي لم يصدر في أي منتدي عربي
اسمه: cain
وظيفته: فك تشفير.mde. md5 بطرق عديدة منها الوورد ليست البحث العشوائي
وغيرها.....
وهذه وصلة التحمبل انقر هنا
شكرا اخى Pharaonic_Guy
هذا المثال لم ارى اسهل منه فى تكسير حمايته
الكراك هو ArabTeam2000.com
"It Can't be easy like that"
أخي العزيز...
كلمة ArabTeam2000 وكلمات أخري وضعتها علي سبيل الترفيه عن قصد ولم أشفرها...وبالتالي تستطيع الحصول عليها Unicode من الملف التنفيذي
والرسالة تقول it Can't be easy like that
أي أن كسر البرنامج ليس سهل إلي درجة أنك تضع كلمة ArabTeam2000
فائدة تلك الكلمات تضييع الوقت ليس إلا وراء جمل شرطية..لا فائدة منها..
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 17 أغسطس 2005 في 01:46
أخي hanysaad
انت تقول ان البرنامج الذي سيكون معمول ب password باستخدام الجملة if
سيتم كشفة عن طريق الاسيمبلي
هل اذا كان الكود المستخدم لعمل ال password في البرنامج باي جملة اخري غير if
سيتم معرفتها من قبل الاسيمبلي
أرجوافادتنا
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته ...
أخي العزيز :: Pharaonic_Guy ::
بعدد تحليلي للملف ( Try To Crack.exe ) اكتشفت أنه يعتمد في عمله على الملف Final.exe الموجود في مجلد النظام ، ولكي تصعب المسألة قليلاً قمت باستخدام دالة IsDebuggerPresent .
الرسالة التي من المفروض أن تظهر عندما تكون كلمة المرور صحيحة هي :
سبحان الله وبحمده ... سبحان الله العظيم
انا كدة اطمنت تماما :blink: :wacko: :blink:
بالفعل احنا معانا اساتذة اسيمبلى فى الموضوع
ربنا يستر :unsure:
البرنامج اللى وعدتكم به ساضعه غذا ان شاء الله
وشدوا حيلكم :)
عموما الهدف فى مش فى ان البرنامج سيكسر ام لا
ولكن الهدف الاول والاخير هو الاستفادة وتطوير طرقنا وتفكيرنا
تم تعديل هذه المشاركة بواسطة hanysaad في 17 أغسطس 2005 في 21:25
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
عظيم اخي احمد (h)
بالفعل، حملت البرنامج من شوي وتحليله كالتالي:
يقوم البرنامج بفك تشفير عدة رسائل منها "It cant be easy like that"
ثم يقوم بادخالك بعدة عمليات IFs (مقارنات) وهمية وينتهي الامر بالمستخدم بـاظهار الرسالة على الشاشة في حال تطابق احدى المدخلات مثل Nano Soft / Pharaonic_Guy / ArabTeam2000.com / (رقم طويل شوي) / (رقم اخر)
بعدها يقوم باخذ السيريال ويجري عليه عملية فك تشفير او تشفير.. المهم انه يغير من تركيبته بواسطة معاملته مع xor وبقيمة A
يقوم بانشاء صورة من نفسه في الذاكرة وبنفس الحجم ويقوم بالقراءة منها ثم يقوم بانشاء الملف final.exe النظام ويقوم بالكتابة فيه ب string معين ويقوم باستدعائه حيث يحوي ذلك الملف على تعليمة IsDebuggerPresent وعدة تعليمات اخرى تقوم بتحديد السيريال..
الطريقة جيدة جدا في البداية لكن (الفكرة بسيطة) ان جلست عدة ساعات مع فنجانين شاي :)
طورها اكتر اخي Pharaonic Guy وبالتوفيق
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
السلام عليكم
اخى المبرمج أحمد واخى Xacker
زادكم الله من علمه
اريد فقط الاستفسار عن تعليمة IsDebuggerPresent التى تحدثتم عنها
اخى Pharaonic_Guy
اقترح ان تضع البرنامج المحمى بالسورس كود لكى يستفيد الكل
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
hanysaad كتب:اقترح ان تضع البرنامج المحمى بالسورس كود لكى يستفيد الكل
بالفعل وبالتالي نستطيع الاشارة الى اماكن الضعف بالشفرة.
اخي هاني تعليمة IsDebuggerPresent تستخدم للتاكد من وجود منقح في الذاكرة وبالتالي يمكنك اختيار طريقة عمل البرنامج عندها.. لكن ضعف هذه التعليمة انها لا تستطيع اكتشاف منقحات مثل SoftIce لكنها تستطيع اكتشاف منقحات مثل win32dasm و Olly المستخدم بكثرة.. ويمكنك تفقد مكتبة ال msdn لمعلومات عنها او اي ملف win32asm (تجده في موقع Iczelion http://win32asm.cjb.net)
بالتوفيق وبانتظار برنامجك
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
أخي العزيز :: hanysaad ::
وظيفة الدالة "IsDebuggerPresent" تحدد ما إذا كان البرنامج يعمل بواسطة إحدى برامج التنقيح ( debugger ) .
وبواسطة هذه الدالة يمكننا معرفة هل كود برنامجنا يتم تنقيحه ( debugging ) الآن .
وتعيد هذه الدالة القيمة صفر إذا لم تكن تعمل تحت سيطرة إحدى برامج التي تقوم بعملية التنقيح للبرنامج .
أما في حالة عمل البرنامج بواسطة برامج التنقيح فإنه يعيد قيمة غير صفرية .
أحد أشهر برامج التنقيح هو : OllyDbg
سبحان الله وبحمده ... سبحان الله العظيم
و الان يوجد Plugin جديد يضاف الى ال Olly debug وذلك لاخفائه من هذه التعليمات :)
1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول
2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت
3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه
4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته
5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام
6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد
7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك
8 - الابتسامة كلمة طيبة بغير حروف
9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها
10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا
طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها
من مواضيعى :
--------------
دروس تعلم كيف تصحح أخطائك بنفسك
برنامج الحائط النارى العربى ---- جديد
برنامج ساعة بالعقارب ------ جديد
غير نظرتك لل picturebox وانظر ماذا فعلت بها
حمل ملف فلاش على الفورم بكل سهولة
مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…