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

برمجياً كيف يتم التعامل مع النص التالي؟

بدأه السندبااد في 14 مارس 2009 · 10 رد · 945 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أريد أن أعرف كيف يتم برمجياً معاملة النص التالي:

أضع نصاً فيه مربع نص وأريد أن تجري عليه العملية التالية:

1- طول النص يجب أن لا يقل عن خمسة خانات (هذه أعرفها)؛ مثلاً : sndybad

2- اعكس لي النص ، يجب أن يصبح هكذا: dabydns

3- بعد أن عكست النص خذ منه فقط أربع خانات تبدأ من الخانة الثالثة، فيصبح هكذا: bydn

4- اجمع خانات النص وأضف عليه العدد 7، يجب أن يصبح هكذا: bydn14

5- قم بعكس النص مرة أخرى، يصبح هكذا: bydn14dabydns

6- بعد أن عكسته أضف إليه أول خانتين حصلت عليهما من الاسم المعكوس، فيصبح هكذا: bydn14dabydnsda

النتيجة في مربع نص آخر

تم تعديل هذه المشاركة بواسطة السندبااد في 14 مارس 2009 في 03:07

فاعلم أنه لا إله إلا الله

#2

تم تعديل هذه المشاركة بواسطة mrx_ta7ady في 14 مارس 2009 في 04:55

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#3

جزاك الله خيراً وزوّجك بكراً وأكرمك في الدنيا والآخرة

أخي الحبيب: ما مهمة الدالة CStr ؟ أعرف Str ولكن ما مهمة CStr ؟

هل لك أن تعطيني توضيح بسيط عن الدالتين Left و Right ؟

بقي لي طلب واحد فيما يتعلق بالتعامل مع النصوص :

لدي مربع النص هذا sndybad-arabteam2000 والمطلوب:

1- استبدل الخانة الأولى بالحرف w

2- احذف الخانة الثالثة نهائياً

3- انظر للخانة الرابعة إن كانت حرفاً فحولها للعدد أربعة وإن كانت رقماً فاضربها بـ 3.

4- انسخ الخانة السابعة والصقها في الخانة الخامسة؛ أي يجب أن تكون الخانة 5 = الخانة7

5- احذف كل الخانات الموجودة بعد الخانة الثانية عشر ولا تضعها في النتيجة.

6- انظر لمربع النص هل يحوي الرقم 7 إن كان لا فأضف الرقم 7 في أوله وإن كان يحويها فانقلها لآخره( قص من مكانها ولصق في الآخر)

النتيجة تكون في مربع نص آخر

غلبتك معي وعذراً منك لكني أطمع بكرمكم

فاعلم أنه لا إله إلا الله

#4
السندبااد كتب:

3- بعد أن عكست النص خذ منه فقط أربع خانات تبدأ من الخانة الثالثة، فيصبح هكذا: bydn

أخي الكريم في المثال الذي وضعته لي لم تعالج هذه الجزئية بشكل صحيح

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

ولكن إذا كان أقل أو أكثر سيكون الناتج خاطئاً

مثلاً:

sndybad

بعد تطبيق الجزئية الثالثة ستصبح

bydn14dabydnsda

وهذا صحيح

ولكن مثلا : sndybad9

بعد التطبيق ستصبح

bydn159dabydns9d

انظر لم يتغير شيء وهذا خطأ فيجب أن تصبح

abyd159dabydns9d

فالشرط كان أن يبدأ الأخذ من الخانة الثالثة بعد العكس

أيضاً مثال أخير 12345

ستصبح

5432125432154

وهذا خطأ والصواب

321125432154

أتمنى معالجة هذه النقطة في هذا المثال

فاعلم أنه لا إله إلا الله

#5

الكثيرين يدخلون هنا من AT4RE أنت بهذا تكشف سر الـ crackme :D

بالتوفيق

Do as I say, not as I do

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

#6
السندبااد كتب:

أخي الكريم في المثال الذي وضعته لي لم تعالج هذه الجزئية بشكل صحيح

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

ولكن إذا كان أقل أو أكثر سيكون الناتج خاطئاً

مثلاً:

sndybad

بعد تطبيق الجزئية الثالثة ستصبح

bydn14dabydnsda

وهذا صحيح

ولكن مثلا : sndybad9

بعد التطبيق ستصبح

bydn159dabydns9d

انظر لم يتغير شيء وهذا خطأ فيجب أن تصبح

abyd159dabydns9d

فالشرط كان أن يبدأ الأخذ من الخانة الثالثة بعد العكس

أيضاً مثال أخير 12345

ستصبح

5432125432154

وهذا خطأ والصواب

321125432154

أتمنى معالجة هذه النقطة في هذا المثال

السلام عليكم

تم حل هذه النقطة باستبدال هذا السطر

TMPStr = Mid(TMPStr, Len(TMPStr) - 4, 4

بهذا السطر

TMPStr = Mid(TMPStr, 3, 4)

تحياتي لك بقي الاستفسار المطلوب في المشاركة 3

تم تعديل هذه المشاركة بواسطة السندبااد في 14 مارس 2009 في 13:32

فاعلم أنه لا إله إلا الله

#7
Xacker كتب:
الكثيرين يدخلون هنا من AT4RE أنت بهذا تكشف سر الـ crackme :D

بالتوفيق

هلا بالمعّلم

على فكرة أنا أبعد الناس عن حماية البرنامج بمعادلة معقدة

بالعكس أعرف نقاط ضعف المهندس العكسي فأسعى لتشتيته

بالمناسبة سؤال أخ Xacker:

هل ييمكن تطبيق crc على جزء من الكود في فيجوال بيسك 6

إن كان الجواب نعم فليتك توضح الطريقة وأجرك على الله

فاعلم أنه لا إله إلا الله

#8

بخصوص استفسارك في المشاركة #3 انظر هذا الرابط:

http://www.aivosto.com/vbtips/stringopt2.html

ربما تفيدك المعلومات فيه.

أما بخصوص سؤالك عن CRC فيجب أن يكون هذا ممكناً لكني لست مبرمج VB

هل تريد حسابه على جزء من الملف قبل التشغيل؟ سهلة، تقرأ محتوى الملف ومن ثم تخصم منه ما تريد وصولاً للجزء الذي تريد حساب CRC عليه.

هل تريد حسابه على جزء من الملف بعد التشغيل؟ ربما ستحتاج حينها إلى التعامل مع الـ PE image حتى تحصل على العنوان الدقيق في الذاكرة الخاص "مثلاً" بالقطعة .text ثم تضيف إليها الإزاحة عن بداية القطعة وصولاً للجزء المطلوب (هذا تستطيع إيجاده من خلال Olly مثلاً) حينها تستطيع تمرير العنوان لخوارزمية حساب CRC.

وربما يكون هناك طريقة أسهل من خلال الحصول على Pointer للمكان الذي تريد حساب CRC بدءاً منه حينها يمكنك تمرير القيمة للخوارزمية فوراً حتى لو اضطررت إلى تغيير الملف لاحقاً.

بكل الأحوال بحثت قليلاً أعتقد هذا المثال سيفيدك

http://www.planetsourcecode.com/vb/scripts...27&lngWId=1

Do as I say, not as I do

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

#9

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

جزاك الله خيرا أخ X وزادك علماً

بالنسبة لــ aivosto : فعلاً هذا ما أريده ، بارك الله بك.

أما بالنسبة لــ CRC : والله لقد حمّلت بعض الأمثلة وقرأت عنها ولكن بحاجة لشرح عملي

فقد مللت الأمثلة المعلبة والموضوع مهم ولم يعالج سابقاً

فما أريده هو تطبيقها على جزء الكود المسؤول عن التسجيل بحيث لا يتم عمل باتش له أو أي تعديل

تم تعديل هذه المشاركة بواسطة السندبااد في 15 مارس 2009 في 02:13

فاعلم أنه لا إله إلا الله

#10

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

السندبااد كتب:

جزاك الله خيراً وزوّجك بكراً وأكرمك في الدنيا والآخرة

أخي الحبيب: ما مهمة الدالة CStr ؟ أعرف Str ولكن ما مهمة CStr ؟

هل لك أن تعطيني توضيح بسيط عن الدالتين Left و Right ؟

بقي لي طلب واحد فيما يتعلق بالتعامل مع النصوص :

لدي مربع النص هذا sndybad-arabteam2000 والمطلوب:

1- استبدل الخانة الأولى بالحرف w

2- احذف الخانة الثالثة نهائياً

3- انظر للخانة الرابعة إن كانت حرفاً فحولها للعدد أربعة وإن كانت رقماً فاضربها بـ 3.

4- انسخ الخانة السابعة والصقها في الخانة الخامسة؛ أي يجب أن تكون الخانة 5 = الخانة7

5- احذف كل الخانات الموجودة بعد الخانة الثانية عشر ولا تضعها في النتيجة.

6- انظر لمربع النص هل يحوي الرقم 7 إن كان لا فأضف الرقم 7 في أوله وإن كان يحويها فانقلها لآخره( قص من مكانها ولصق في الآخر)

النتيجة تكون في مربع نص آخر

غلبتك معي وعذراً منك لكني أطمع بكرمكم

دالة الـ CStr تعني Convert To String ..اي التحويل الى نص .. وغالبا ما تستخدم لقراءة الارقام كنصوص

ودالة Left هي لمعرفة جزء من جملة بدايتا من اليسار .. وعكسها Right حيث تقطع من اليمين

Left("Sndybad", 3) = "Snd"

Right("Sndybad", 3) = "bad"

sndybad.rar

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#11

أسأل الله أن يجعلك مباركاً أينما كنت

وأن يرزقك العمر المديد والعمل الصالح الرشيد

أضفت لقائمة المبدعين mrx_ta7ady

تحية لك

فاعلم أنه لا إله إلا الله

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

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

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

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

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