الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حان الوقت لحماية برامجك من النسخ الغير قانونى!

رائج
بدأه hanysaad في 20 يوليو 2005 · 317 رد · 89,133 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#151

احب اوضح حاجة علشان بس منظلمش هاني

هاني فعلا يعكف الان على تنفيذ خطته لحماية البرامج

بس الموضوع يحتاج وقت

على فكرة المعلومة دي مصدرها شخصي

وشكرا

#152

الموضوع مش سهل فنحن نعلم ان شركات برمجية كبيرة تم شرخ برامجها

يعني هاني مطلوب منه ان يتفوق على هذه الشركات

ايه رأيكم في هذه السهوله !!!!

#153

السلام عليكم

اهلا بك ياوائل فى قسم الفيجوال :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

---

اسألكم الدعاء بظهر الغيب

#154

خوارزمية RSA - Reivest, Shamir & Aselman

مقدمة:

RSA عبارة عن خوارزمية تشفير تستعمل ارقام اولية كبيرة بهدف توليد المفتاح العام -وهو مفتاح غير سري يستخدم في التشفير- والمفتاح الخاص - وهو مفتاح سري نستخدمه في فك التشفير - ونلاحظ استعمال RSA مع DES حيث يتكفل DES بتشفير كامل البيانات بواسطة مفتاح محدد ونستخدم RSA في تشفير المفتاح السري لـ DES بشكل مشابه لما يلي:

15_08_05_06_20_30_1124155230ppk.gif

الخوارزمية:

في البداية نختار عددين اوليين وليكونا p و q ونعتبر ان حاصل الجداء n = p*q هو قيمة عامة public غير سرية.

يعلم المختصون بالرياضيات ان العدد O(n) = (p-1) * (q-1) يمثل العدد الكلي للاعداد الاصغر من n والاولية بالنسبة له.

اود ان اشير هنا الى ان تنسيق الموضوع لا يدعم ادخال رموز رياضية.. بالتالي فقد مثلت العملية المسماة Euler totient (الفاي Phi) التي رمزها 15_08_05_06_21_21_1124155281et.gif بالشكل 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).. في النهاية سنصل الى ما يشبه:

15_08_05_06_22_01_1124155321damn.gif

اعرف انه التحليل محبط ويحتاج الى وقت كبير في حال كان الهدف التشفير.. او فك التشفير.. لكن هناك ناحية ايجابية, في حالة التشفير انت بتعرف اي خوارزمية عم تعتمد وشو هي القوانين الرياضية المستخدمة والثوابت كلها لكن في حالة فك التشفير العكس تماما :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 في برنامج لكني سادعه الى حين كتابة المزيد عن امور الحماية.

تحياتي

RSA tools.zip

تم تعديل هذه المشاركة بواسطة 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

#155

ساقوم في هذا الشرح المبسط بعرض افكار جدا مهمة في عالم القرصنة الرقمية 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

#156

شكرا لك اخى Xacker شرح اكثر من رائع الله يزيدك من علمه و الى الامام

127gq4.png
#157

العفو اخي hichamchak هاد من واجبي.. تحياتي لك.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#158

السلام عليكم..

شكرا لك أخي الكريم هاني كلام رائع لا غبار عليه و لكني سأتوجه إلى ++C و سأترك موضوع الأسمبلي حاليا لأخذ عنه فكرة فيما بعد .

يارجل أنا واقع بنفس مصيبتك طار هاردي القديم و فيه كل ملفاتي و اشتريت واحد 80 و لكن هيهات يحمل ملفاتي التي تعبت فيها 3 سنوات ^.^

أخي الكريم Xacker و الله شرح رهيب بالفعل لا نستطيع القول إلا ألف شكر فعلا الكل يقول ال ++C أفضل من الVB و اليوم عرفت السبب الحقيقي(غير أسباب الأداء) ..

و لكن هذه الجملة (اما بالنسبة للقدرة على التصدي لهجمات القراصنة فبرايي الشخصي اللغتين على حد سواء.)أحبطتني بعد ما كنت منغر بال++c على كل حال هكذا حال الدنيا ^.^

هو أنا لا أحتاج الأسمبلي في صناعة برنامج طالما لغة سهلة مثل الVB أو ++C تقدم لي برامج رهيبة بكل سهولة و لكن الي اتضح من كلامك أنها هامة في فهم التعامل بين الHradWare و الSoftWare و في عملية فهم أداء البرنامج إعدادا لحمايته أو اختراقه.

الحقيقة أيضا كلامك و كلام الأخ هاني يطمئن فالخسارة المعنوية أكبر بكثير من الخسارة المادية ..أي طالما الهارك لن يستطيعوا سرقة كودي الذي ربما يكون صعب و متعب و مرهق فأنا مرتاح ^.^

على فكرة يا جماعة لم تناقشوا موضوع برامج الاختراق مثل برنامج (الذي سموه عندنا برنامج تعريب)Resource Hacker أو هناك واحد أقوى منه..ربما هذه تشكل أيضا خطر على برامجنا لأن هذا البرنامج قادر على التحكم بالبرنامج مثل اللعبة تغير أزرار و عناصر تحذف و تضيف على كيفك تغيير أسماء لون حتى أنه يحذف اسمك و يضع اسمه مكانك..يجب أن نجد لها حلا و لكن الذي لاحظته أن هذه البرامج لا تفتح برامج الVB و برامج الMicrosoft و لا برنامج 3DS MAX و لا برنامج ال Photo Shopو الFlash باختصار لا تفتح هذه البرامج برامج الشركات الضخمة ..معقول في طريقة معينة ؟؟؟؟

تحياتي لكم

إيــاس

#159
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

#160

الاخوة الاعزاء لا يوجد برنامج لا يكسر ابدا سوى برنامجين Propel Accelerator لانه يعتمد على التغذية الدائمة من الموقع وهذا تحدي

والبرنامج الثاني برنامج اليسير وهو مصمم بالاكسس mde ولا يمكن كسره الا بارجاع تاريخ الجهاز فقط الى تاريخ النسخة كل ثلاثة اشهر وهذا ليس تحدي

#161

السلام عليكم ورحمة الله و بركاته

احب ان اوضح شىء حول برنامج ResHacker وهو يفتح عدة ملفات شرط ان لا تكون مضغوطة او مشفرة

وهى هذه الملفات

exe.dll.ocx.cpl.scr) win32pe file) و يمكن تغير فيها كل ما تريد

اما هذا البرنامج فهو من الطراز الرفيع multilizer 6.1.11 22.5MO فهو يفتح جميع البرامج المبرمجة بجميع الغات حتى و ان كانت مشفرة ويفتح التشفير وتغير كل ما تريد به و يشمل جميع قواميس لوغات العالم.. ويمكن تحميل القوميس من MICROSOFT عند فتح البرنامج الذى تريد التغير فيه يبين لك ماهية اللوغة التى برمج بها

وبه ميزات اخرى اكتشفها بنفسك

تم تعديل هذه المشاركة بواسطة hichamchak في 16 أغسطس 2005 في 23:47

127gq4.png
#162

وعليكم السلام ورحمة الله وبركاته

هذا اختبار لمدي حماية البرنامج المرفق..

البرنامج استغرق مني 5 ساعات كي أجد فكرته - العبيطة - وأنقيها من العيوب..وأطبقها .. وقد وضعت البرنامج غير مشفر.. كي يسهل عمل Debugging عليه..

الصراحة ده كان تحدي بيني وبين نفسي كي اعمل برنامج يتم كسره بصعوبة..

لأن جميع برامج الفيجول بيسيك التي قمت باختبار حمايتها .. للأسف لم تأخذ معي أكثر من دقيقة للكسر..

لكن هناك بعض القصور في تلك النسخة..ثلاث نقاط بالتحديد.. والتي تستطيع أن تصل عبرهم لكيفية عمل البرنامج .. ومن ثم طريقة كسرالبرنامج وبسهوله شديدة ..

ولكنني سأعالج تلك النقاط قريبا..ولن يتم استخدامها مرة أخري في كسر البرنامج ..

لكنني فقط أريد أن أختبر مدي الحماية الآن علي تلك النسخة..

ويا ريت من الأخوة الأعزاء الذين سيقومون بكسر البرنامج.. ذكر الوقت الذي تم أخذه لكسره, ومدي الصعوبة.. ولو أنني سأحبط إذا لم يكن هناك ولو شيء بسيط من الصعوبة..

هذا والسلام عليكم ورحمة الله وبركاته..

TryTOCrack.zip

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 17 أغسطس 2005 في 00:20

#163
اقتباس
والبرنامج الثاني برنامج اليسير وهو مصمم بالاكسس mde ولا يمكن كسره

ولكن صار الحلم حقيقة.....

كان كل هكر يحلم ان يرى برنامج سهل لفك تشفير MD5 .MDE بسرعة فائقة

ولقد حققة شركة OXID المتخصصة في برامج التشفير تحقيق هذا الحلم

وانا اليوم اضع امامكم البرنامج الحصري المميز الذي لم يصدر في أي منتدي عربي

اسمه: cain

وظيفته: فك تشفير.mde. md5 بطرق عديدة منها الوورد ليست البحث العشوائي

وغيرها.....

وهذه وصلة التحمبل انقر هنا

127gq4.png
#164

شكرا اخى Pharaonic_Guy

هذا المثال لم ارى اسهل منه فى تكسير حمايته

الكراك هو ArabTeam2000.com

"It Can't be easy like that"

127gq4.png
#165

أخي العزيز...

كلمة ArabTeam2000 وكلمات أخري وضعتها علي سبيل الترفيه عن قصد ولم أشفرها...وبالتالي تستطيع الحصول عليها Unicode من الملف التنفيذي

والرسالة تقول it Can't be easy like that

أي أن كسر البرنامج ليس سهل إلي درجة أنك تضع كلمة ArabTeam2000

فائدة تلك الكلمات تضييع الوقت ليس إلا وراء جمل شرطية..لا فائدة منها..

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 17 أغسطس 2005 في 01:46

#166

ملحوظة مهمة ..

عند النجاح في كسر البرنامج..

ستخرج رسالة Registration Successed..

#167

أخي hanysaad

انت تقول ان البرنامج الذي سيكون معمول ب password باستخدام الجملة if

سيتم كشفة عن طريق الاسيمبلي

هل اذا كان الكود المستخدم لعمل ال password في البرنامج باي جملة اخري غير if

سيتم معرفتها من قبل الاسيمبلي

أرجوافادتنا

#168

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته ...

أخي العزيز :: Pharaonic_Guy ::

بعدد تحليلي للملف ( Try To Crack.exe ) اكتشفت أنه يعتمد في عمله على الملف Final.exe الموجود في مجلد النظام ، ولكي تصعب المسألة قليلاً قمت باستخدام دالة IsDebuggerPresent .

الرسالة التي من المفروض أن تظهر عندما تكون كلمة المرور صحيحة هي :

17_08_05_09_03_36_1124294616ahMSG.jpg

سبحان الله وبحمده ... سبحان الله العظيم

#169

انا كدة اطمنت تماما :blink: :wacko: :blink:

بالفعل احنا معانا اساتذة اسيمبلى فى الموضوع

ربنا يستر :unsure:

البرنامج اللى وعدتكم به ساضعه غذا ان شاء الله

وشدوا حيلكم :)

عموما الهدف فى مش فى ان البرنامج سيكسر ام لا

ولكن الهدف الاول والاخير هو الاستفادة وتطوير طرقنا وتفكيرنا

تم تعديل هذه المشاركة بواسطة hanysaad في 17 أغسطس 2005 في 21:25

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#170

عظيم اخي احمد (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

#171

السلام عليكم

اخى المبرمج أحمد واخى Xacker

زادكم الله من علمه

اريد فقط الاستفسار عن تعليمة IsDebuggerPresent التى تحدثتم عنها

اخى Pharaonic_Guy

اقترح ان تضع البرنامج المحمى بالسورس كود لكى يستفيد الكل

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#172
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

#173

أخي العزيز :: hanysaad ::

وظيفة الدالة "IsDebuggerPresent" تحدد ما إذا كان البرنامج يعمل بواسطة إحدى برامج التنقيح ( debugger ) .

وبواسطة هذه الدالة يمكننا معرفة هل كود برنامجنا يتم تنقيحه ( debugging ) الآن .

وتعيد هذه الدالة القيمة صفر إذا لم تكن تعمل تحت سيطرة إحدى برامج التي تقوم بعملية التنقيح للبرنامج .

أما في حالة عمل البرنامج بواسطة برامج التنقيح فإنه يعيد قيمة غير صفرية .

أحد أشهر برامج التنقيح هو : OllyDbg

سبحان الله وبحمده ... سبحان الله العظيم

#174

و الان يوجد Plugin جديد يضاف الى ال Olly debug وذلك لاخفائه من هذه التعليمات :)

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

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

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#175

السلام عليكم

اخى الكريم المبرمج أحمد

شكرا جزيلا على التوضيح

بس ممكن معلومات اكثر عن هذه الدالة وكيفية استخدامها لانى بحثت عنها ولم اجدها

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…