انا مش فام شغلة في الاسمبلي وهي كيف يدخل الى ملف ويحذف ما بداخل ذلك الملف من كلمات او رموز ويبقي فقط كلمات مثلا عربية ارجو ان توضحولي ذلك
اذا امكن على شكل برنامج او فقط تضيح
وشكراا لتعاونكم
انا مش فام شغلة في الاسمبلي وهي كيف يدخل الى ملف ويحذف ما بداخل ذلك الملف من كلمات او رموز ويبقي فقط كلمات مثلا عربية ارجو ان توضحولي ذلك
اذا امكن على شكل برنامج او فقط تضيح
وشكراا لتعاونكم
السلام عليكم ورحمة الله وبركاته
بشكل عام بما أنك لم تحدد تحت أي بيئة تكتب..
افتح الملف وقم بقراءة ما بداخله إلى الذاكرة.
ليكن لديك ذاكرة محجوزة أو احجز ذاكره تعتقد ان الملف لن يتجاوزها.
قم بقراءة كل حرف من المحتوى ومقارنته مع مجال قيم الهكس الخاصة بالحروف العربية فلو كان منها قم بنقله إلى الذاكرة المحجوزة.
بعد الانتهاء قم بكتابة محتوى الذاكرة الجديد إلى الملف.
يمكن تجاوز موضوع حجز الذاكرة سلفاً خصوصاً عندما تتعامل مع 16بت بطرق مختلفة لكن الأمر سيكون أسهل شرحه عندما تعتمد ما تريد القيام به فعلاً من فلترة إن أمكن تسميتها.
تم تعديل هذه المشاركة بواسطة Xacker في 31 ديسمبر 2008 في 18:28
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اغلبك معي يا اخي Xacker لو تسطيع كتابة ذلك الشيء عن طريق برنامج اسمبلي ضروري
تم تعديل هذه المشاركة بواسطة Xacker في 31 ديسمبر 2008 في 19:11
ضع محاولتك أولاً أخي الكريم ووضح ما الذي تبحث عنه أساساً.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اريد برنامج اسمبلي يقوم بفتح ملف على فرض ان هذا الملف يوجد فيه كلمات ورموز من ضمنها كلمات عربية على هذا البرنامج ان يحذف هذه الكلمات ويبقي فقط الكلمات العربية ارجوك ساعدني
هذا مثال سريع اختبرته على masm16 يقوم بنزع الحروف الانكليزية والرموز من جملة ثابتة في البرنامج، عليك بالتعديل عليه حسب ما علّموك ليقوم بفتح ملف والقراءة منه بعدها يصبح التطبيق سهل لأنه يغدو مثل الجملة الثابتة في البرنامج، مجرد مصفوفة في الذاكرة.
ملاحظات:
* قمت بتعديل الخوارزمية لتقوم بإزالة الفراغات المكررة.
* التعديل سيتم في الذاكرة، حتى ترى النتائج عليك بكتابة محتوى buffer إلى ملف مثلاً لتتأكد من دقته أو استخدم debugger.
* وضعت 0 بدل $ كدلالة على نهاية السلسلة لأن هذا ما يحدث فعلاً عندما ستقوم بقراءة محتوى الملف إلى الذاكرة، الـ null terminator سيكون صفر بالتالي الخوارزمية تبقى صحيحة كما هي.
* جميع حقوق هذا الـ "تكنيك" محفوظة لـ djug ولا يحق لأحد نشره أو الاقتباس منه :P بدون الإشارة إلى ذلك
إن أردت الكود كامل كما طلبوه منك فلتتعب على نفسك قليلاً فمن طلب العلا سهر الليالي ;)
[color= #7f00ff;].model [color= #aa007f;]tiny
[color= #0000ff;].[color= #7f00ff;]code
start[color= #0000ff;]:
[color= #ff007f;]jmp main
buffer [color= #7f00ff;]db [color= #0000a0;]"أنت don't لا تريد want أن to تتعلم ! :-)"[color= #0000ff;],[color= #7f7f7f;]0
main[color= #0000ff;]:
[color= #ff007f;]push [color= #7f7f40;]cs
[color= #ff007f;]pop [color= #7f7f40;]ds
[color= #ff007f;]lea [color= #7f7f40;]di[color= #0000ff;],buffer
[color= #ff007f;]xor [color= #7f7f40;]bx[color= #0000ff;],[color= #7f7f40;]bx
@[color= #7f7f7f;]1[color= #0000ff;]:
[color= #ff007f;]lea [color= #7f7f40;]si[color= #0000ff;],buffer
[color= #ff007f;]mov [color= #7f7f40;]al[color= #0000ff;],[color= #0000a0; font-weight: bold;][[color= #7f7f40;]si[color= #0000ff;]+[color= #7f7f40;]bx[color= #0000a0; font-weight: bold;]]
[color= #ff007f;]test [color= #7f7f40;]al[color= #0000ff;],[color= #7f7f40;]al
[color= #ff007f;]jz end_of_str
[color= #ff007f;]cmp [color= #7f7f40;]al[color= #0000ff;],[color= #ff0000;]0C1h
[color= #ff007f;]jae isAccepted
[color= #ff007f;]cmp [color= #7f7f40;]al[color= #0000ff;],[color= #ff0000;]0EDh
[color= #ff007f;]jle isAccepted
[color= #ff007f;]cmp [color= #7f7f40;]al[color= #0000ff;],[color= #ff0000;]20h
[color= #ff007f;]je strip
[color= #ff007f;]jmp @[color= #7f7f7f;]2
isAccepted[color= #0000ff;]:
[color= #ff007f;]mov [color= #7f7f40;]al[color= #0000ff;],[color= #0000a0; font-weight: bold;][[color= #7f7f40;]si[color= #0000ff;]+[color= #7f7f40;]bx[color= #0000a0; font-weight: bold;]]
[color= #ff007f;]mov [color= #0000a0; font-weight: bold;][[color= #7f7f40;]di[color= #0000a0; font-weight: bold;]][color= #0000ff;],[color= #7f7f40;]al
[color= #ff007f;]inc [color= #7f7f40;]di
@[color= #7f7f7f;]2[color= #0000ff;]:
[color= #ff007f;]inc [color= #7f7f40;]bx
[color= #ff007f;]jmp @[color= #7f7f7f;]1
end_of_str[color= #0000ff;]:
[color= #ff007f;]mov [color= #0000a0; font-weight: bold;][[color= #7f7f40;]di[color= #0000a0; font-weight: bold;]][color= #0000ff;],[color= #7f7f7f;]0 [color= #007f00; font-style: italic;]; null terminator
[color= #007f00; font-style: italic;]; now write the buffer to a file
[color= #007f00; font-style: italic;];
[color= #ff007f;]mov [color= #7f7f40;]ax[color= #0000ff;], [color= #ff0000;]4C00h
[color= #ff007f;]int [color= #ff0000;]21h
strip[color= #0000ff;]:
[color= #ff007f;]cmp [color= #aa007f;]byte [color= #7f00ff;]ptr [color= #0000a0; font-weight: bold;][di[color= #7f7f7f;]-1[color= #0000a0; font-weight: bold;]][color= #0000ff;],[color= #ff0000;]20h
[color= #ff007f;]jne isAccepted
[color= #ff007f;]jmp @[color= #7f7f7f;]2
[color= #7f00ff;]end startالسلام عليكم ورحمة الله وبركاته
تم تعديل هذه المشاركة بواسطة Xacker في 1 يناير 2009 في 13:42
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
شكرا جزيلا على مساعدتي ولن اخيب املك بل سأسعى سعي جاد لكتابة البرنامج كاملا
بس لو سمحتلي اخوي اكس هاكر لو تتكرم وطعطيني معلومة عن تأليف موسيقى بلغة الاسمبلي
* Xacker وليس اكس هاكر
* تأليف موسيقى؟
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اسف بالنسبة لللسم من سرعتي للكتاب لم انتبه للاسم وانتا على كل الاسماء تبقى كبير بعيني
المهم انا بدي اعرف عن تاليف الموسيقى بلغة الاسمبلي
وأنا أعود لأسألك:
* تأليف موسيقى؟
اقتباسالمهم انا بدي اعرف عن تاليف الموسيقى بلغة الاسمبلي
عذراً منك هذا ليس بسؤال، هذا كأن ترمي نفسك في بحر وأنت لا تعرف السباحة، ما الذي تريد معرفته حول هذا الموضوع، موسيقى ماذا؟ تنسيقات موسيقى ماذا، تستخدم فيها تقنيات ماذا؟
كل شئ ممكن لكن حقاً تريد أن تقوم بتأليف موسيقى بالأسمبلي والناس تواجه صعوبة في تشكيل نافذة باستخدام API :blink:
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
المهم لا تقس عليه يا X :lol:
الرجل يريد ان يتعلم و انا احس فيه ريحة كراكر او هاكر ان شاء الله
ادا كنت تريد ان تشغل ملفات موسيقية فقط
فقد كتبت لك هدا الكود على عجالة يحوي المفاهيم الاساسية لتشغيل ملف صوتي
تعلم الاسمبلي و مبادئه قبل ان تهاجم البرمجة 32 بت ;)
جميع حقوق هدا التكنيك منسوبة لي وحدي فقط و ادا تجرات يا ????? على سرقته فسوف :angry:
تم تعديل هذه المشاركة بواسطة fkugd2003 في 1 يناير 2009 في 21:41
العمل كثير و الوقت قليل أعاننا الله
fkugd2003 كتب:المهم لا تقس عليه يا X :lol:الرجل يريد ان يتعلم
أنا أفهم كلمة "تأليف" كما نعرفها جميعاً في اللغة العربية لذلك كنت أحاول التأكد هل يقصد فعلاً صناعة الموسيقى ولا يقصد شئ آخر كتشغيلها.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اظن انه كان يقصد تشغيلها او تحويل ملف من صيغة معينة الى صيغة XM....
اما بخصوص صناعة موسيقى خاصة :(
فانا جاهل كبير بالموسيقى و تاليفها و لا املك حتى ادن موسيقية
من هو المجنون الدي يسمع metal, gothic rock :lol:
العمل كثير و الوقت قليل أعاننا الله
والله معاك حق بس الدكتور الي بعطيني اسمبلي قال بدي برنامج يقوم بالتعامل مع الريجيستر الذي يقوم بتأليف الموسيقى (او الذي يصدر اصوات موسيقيى )
بس ما اعطانا اي فكرة عن هذا الشيء وانا مشان هيك مستصعب هذا الامر فاذا بتقدر تعطيني فكرة عن هذا الشيء او كود معين او برنامج وعلي الباقي
وانا ممنون الك كثيييييييييييييير وشكرا الك
اظن ان هدا سوف يغطي احتياجاتك
البرنامج غير كامل يجب عليك ان تكمل المناطق الفارغة ليعمل جيدا
كما قال "من طلب العلا سهر الليالي يسمع ام كلثوم" :lol:
.model tiny .code org 100h main: jmp start ; stor dw 0 ; ; Turn the cursor off. ; start: call curs_off read_key: mov ah,0 int 16h cmp ah,1 je exit cmp ah,02h je musical_key_1 cmp ah,03h je musical_key_2 cmp ah,04h je musical_key_3 cmp ah,05h je musical_key_4 cmp ah,06h je musical_key_5 cmp ah,07h je musical_key_6 cmp ah,08h je musical_key_7 cmp ah,09h je musical_key_8 cmp ah,0ah je musical_key_9 cmp ah,0bh je musical_key_0 ; jmp read_key ; exit: call curs_on ;go turn cursor on int 20h ;exit to DOS ; musical_key_1: mov ax, 272 mov stor, ax call Generate_Sound jmp read_key musical_key_2: mov ax, 294 mov stor, ax call Generate_Sound jmp read_key musical_key_3: mov ax, 314 mov stor, ax call Generate_Sound ;go generate the musical_key jmp read_key ;go get another keypress musical_key_4: mov ax, 330 mov stor, ax call Generate_Sound ;go generate the musical_key jmp read_key ;go get another keypress musical_key_5: mov ax, 350 mov stor, ax call Generate_Sound ;go generate the musical_key jmp read_key ;go get another keypress musical_key_6: mov ax, 370 mov stor, ax call Generate_Sound jmp read_key musical_key_7: mov ax, 392 mov stor, ax call Generate_Sound jmp read_key musical_key_8: mov ax, 419 mov stor, ax call Generate_Sound jmp read_key musical_key_9: mov ax, 440 mov stor, ax call Generate_Sound jmp read_key musical_key_0: mov ax, 475 mov stor, ax call Generate_Sound jmp read_key ; ; Turn cursor off. ; curs_off: mov ch,10h mov ah,1 int 10h ret ; ; Turn cursor on. ; curs_on: mov cx,0506h mov ah,1 int 10h ret ; ; Generate sound through the PC speaker. ; Generate_Sound: mov al,10110110b out 43h,al mov ax,stor out 42h,al mov al,ah out 42h,al in al,61h or al,00000011b out 61h,al call delay and al,11111100b out 61h,al call clr_keyb ret delay: mov ah,00h int 01Ah add dx,4 mov bx,dx pozz: int 01Ah cmp dx,bx jl pozz ret ; ; Clear the keyboard buffer. ; clr_keyb: ; bla bla bla ; end main end
العب البيانو باستعمال الارقام 0-9 و الف الموسيقى ;)
تم تعديل هذه المشاركة بواسطة fkugd2003 في 2 يناير 2009 في 16:56
العمل كثير و الوقت قليل أعاننا الله
شكراااااااااا جزيلا الكم والله انتم تاج على راسي وانا ما راح اخيب امالكم فيا والكم مني جزيل الشكر وانا ممنون الكم كثيير
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…