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

[ تمت الإجابة ]فلترة الحروف الإنكليزية والرموز من ملف

بدأه وليد سمرين في 31 ديسمبر 2008 · 15 رد · 2,373 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

وشكراا لتعاونكم

#2

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

بشكل عام بما أنك لم تحدد تحت أي بيئة تكتب..

افتح الملف وقم بقراءة ما بداخله إلى الذاكرة.

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

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

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

يمكن تجاوز موضوع حجز الذاكرة سلفاً خصوصاً عندما تتعامل مع 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

#3

اغلبك معي يا اخي Xacker لو تسطيع كتابة ذلك الشيء عن طريق برنامج اسمبلي ضروري

تم تعديل هذه المشاركة بواسطة Xacker في 31 ديسمبر 2008 في 19:11

#4

ضع محاولتك أولاً أخي الكريم ووضح ما الذي تبحث عنه أساساً.

Do as I say, not as I do

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

#5

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

#6

هذا مثال سريع اختبرته على 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

#7

شكرا جزيلا على مساعدتي ولن اخيب املك بل سأسعى سعي جاد لكتابة البرنامج كاملا

بس لو سمحتلي اخوي اكس هاكر لو تتكرم وطعطيني معلومة عن تأليف موسيقى بلغة الاسمبلي

#8

* Xacker وليس اكس هاكر

* تأليف موسيقى؟

Do as I say, not as I do

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

#9

اسف بالنسبة لللسم من سرعتي للكتاب لم انتبه للاسم وانتا على كل الاسماء تبقى كبير بعيني

المهم انا بدي اعرف عن تاليف الموسيقى بلغة الاسمبلي

#10

وأنا أعود لأسألك:

* تأليف موسيقى؟

اقتباس
المهم انا بدي اعرف عن تاليف الموسيقى بلغة الاسمبلي

عذراً منك هذا ليس بسؤال، هذا كأن ترمي نفسك في بحر وأنت لا تعرف السباحة، ما الذي تريد معرفته حول هذا الموضوع، موسيقى ماذا؟ تنسيقات موسيقى ماذا، تستخدم فيها تقنيات ماذا؟

كل شئ ممكن لكن حقاً تريد أن تقوم بتأليف موسيقى بالأسمبلي والناس تواجه صعوبة في تشكيل نافذة باستخدام API :blink:

Do as I say, not as I do

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

#11

المهم لا تقس عليه يا X :lol:

الرجل يريد ان يتعلم و انا احس فيه ريحة كراكر او هاكر ان شاء الله

ادا كنت تريد ان تشغل ملفات موسيقية فقط

فقد كتبت لك هدا الكود على عجالة يحوي المفاهيم الاساسية لتشغيل ملف صوتي

تعلم الاسمبلي و مبادئه قبل ان تهاجم البرمجة 32 بت ;)

جميع حقوق هدا التكنيك منسوبة لي وحدي فقط و ادا تجرات يا ????? على سرقته فسوف :angry:

Play_Midi.rar

تم تعديل هذه المشاركة بواسطة fkugd2003 في 1 يناير 2009 في 21:41

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

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

#13

اظن انه كان يقصد تشغيلها او تحويل ملف من صيغة معينة الى صيغة XM....

اما بخصوص صناعة موسيقى خاصة :(

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

من هو المجنون الدي يسمع metal, gothic rock :lol:

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#14

والله معاك حق بس الدكتور الي بعطيني اسمبلي قال بدي برنامج يقوم بالتعامل مع الريجيستر الذي يقوم بتأليف الموسيقى (او الذي يصدر اصوات موسيقيى )

بس ما اعطانا اي فكرة عن هذا الشيء وانا مشان هيك مستصعب هذا الامر فاذا بتقدر تعطيني فكرة عن هذا الشيء او كود معين او برنامج وعلي الباقي

وانا ممنون الك كثيييييييييييييير وشكرا الك

#15

اظن ان هدا سوف يغطي احتياجاتك

البرنامج غير كامل يجب عليك ان تكمل المناطق الفارغة ليعمل جيدا

كما قال "من طلب العلا سهر الليالي يسمع ام كلثوم" :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

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#16

شكراااااااااا جزيلا الكم والله انتم تاج على راسي وانا ما راح اخيب امالكم فيا والكم مني جزيل الشكر وانا ممنون الكم كثيير

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

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

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

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

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