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

Disable Ctrl+Alt+Del under WinNT/2K/XP/2K3

مغلق
بدأه cipher في 28 يناير 2006 · 12 رد · 2,619 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

النقاش في الموضوع هذا تكرر كثيراً سواء في الفريق العربي او في منتديات أخرى عربية أو غيرها ...

هناك الكثير من الطرق التي تعتمد على النظام فان كان Win9x فالعملية سهلة وتزداد تعقيداً في NT family , من تلك الطرق عمل KeyboardHook ولكنها ليست ناجحة في WinXP وأظنها غير ناجحة أيضا في Win2K3 . وهناك طريقة استخدام Gina و ذكرت الطريقة في موضوع في هذا القسم ...

طريقة اخرى لا أعمل ان كان تم ذكرها مسبقاً :-

هذه طريقة ناجحة في WinNT/2K/XP/2K3 (شخصياً جربتها على XP وتمت العملية بنجاح) ..

شكراًً للأخ -المبدع- SadJackal لارشادي لوصلة الموضوع ..

الموضوع الأصلي بالصينية هنا :

http://blog.csdn.net/ly_liuyang/archive/20.../04/569798.aspx

كاتب المقال Liu Yang ..

الطريقة :

علينا بعمل DLL وإضافة الكود الآتي :

لمن لا يعلم كيفية عمل DLL الخيارت كثيرة :

-مراجعة Delphi Help

- احد الموضوعات القديمة لواحد من الشباب -عذراً نسيت اسمه , ربما Madi - .

- google

library SASWinHook;

{
  SASWinHook
  copyrights by Liu Yang LYSoft http://lysoft.7u7.net 2006.1.1

  usage: only need to inject this dll to WinLogon.exe
}

uses Windows, Messages;

{$R *.res}

var
  FHandle: THandle;
  OldAppProc: Pointer;

function HookProc(hHandle: THandle; uMsg: Cardinal;
  wParam, lParam: Integer): LRESULT; stdcall;
var K, C: Word;  // wndproc
begin
  if uMsg = WM_HOTKEY then
     begin
        K := HIWORD(lParam);
        C := LOWORD(lParam);
        // press Ctrl + Alt + Del
        if (C and VK_CONTROL<>0) and (C and VK_MENU <>0) and ( K = VK_DELETE)
           then Exit;   // disable Ctrl + Alt + Del
     end;
  Result := CallWindowProc(OldAppProc, hHandle,
    uMsg, wParam, lParam);
end;

procedure EntryPointProc(Reason: Integer);
begin
  case reason of
    DLL_PROCESS_ATTACH:
      begin  // hook SAS window wndproc
        FHandle := FindWindow('SAS window class', 'SAS window');
        if not IsWindow(FHandle) then Exit;  // is window found?
        // save old wndproc
        OldAppProc := Pointer(GetWindowLong(FHandle, GWL_WNDPROC));
        // set new wndproc
        SetWindowLong(FHandle, GWL_WNDPROC, Cardinal(@HookProc));
      end;
    DLL_PROCESS_DETACH:
      begin
        if FHandle > 0 then
           begin  // unhook
             if Assigned(OldAppProc) then
                SetWindowLong(FHandle, GWL_WNDPROC, LongInt(OldAppProc));
             OldAppProc := nil;
           end;
      end;
    end;
end;

begin
  OldAppProc := nil;
  FHandle := 0;
  DllProc := @EntryPointProc;
  EntryPointProc(DLL_PROCESS_ATTACH);
end.

لاستخدام هذا الملف الطريقة كما ذكر صاحب المقال هي :

اقتباس
usage: only need to inject this dll to WinLogon.exe

طبعاً صاحب المقال لم يذكر كيف يتم ذلك - وهذه عادة الكثيرين- لانه لا يريد ان يعطينا كل شئ جاهز ونحن نائمين في العسل ..

أظن الكثيرين يعلمون ان هناك عدة طرق لعمل dll injection .. انا كنت كتبت عنها قبل كم سنة ..

بامكاننا الرجوع لموضوع للأخ deltaziz هنا:

http://204.157.36.16/index.php?showtopic=82896

سنجد أكثر من طريقة ..

أيضا هناك ملف لـ MS-Rem وضع فيه dll injection .. اعتقد انه مرفق في احدى مشاركات deltaziz او Romanof

طبعاً من تلك الطرق سنجد طريقة تستخدم CreateRemoteThread ..

هذه الطريقة كنت وضعت مثال عنها في موضوع قديم Jan 14 2002, 01:59 AM (فيه اخطاء) نجده هنا

http://204.157.36.16/index.php?showtopic=7657&hl=inject

من ذلك المقال سنستفيد من الدالة injectmydll وهنا بامكاننا تمرير target process handle لها ... وبامكاننا تغيير ذلك بتمرير Process ID لتصبح الدالة بهذا الشكل

procedure injectmydll(dwRemoteProcessId:DWORD);//hParent : hwnd);
//dwRemoteProcessId: target process ID
//hParent : the handle of the process you want to inject dll into
var
hRemoteThread,hkernel32,{dwRemoteProcessId,}hRemoteProcess : integer;
cb,pcb : dword;
pfnStartAddr,pszLibFileName,pszLibFileRemote : pchar;
begin
cb :=256;

// Get processID of the target program
//GetWindowThreadProcessId(hParent,@dwRemoteProcessId);

//Get target process handle
hRemoteProcess :=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwRemoteProcessId);

//calculate required memory for DLL pathname 
getmem(pszLibFileName,cb);
strcopy(pszLibFileName,pchar(ExtractFilePath(ParamStr(0))+'SASWinHook.dll')); 
//Assign DLL file name buffer in the remote process memory address space
//more about virtualallocex go http: //msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/memman_8ptk.asp
pszLibFileRemote :=VirtualAllocEx(hRemoteProcess,NIL,cb,MEM_COMMIT,PAGE_READWRITE);
// copy DLL path name to the remote process memory
WriteProcessMemory(hRemoteProcess,pszLibFileRemote,pszLibFileName,cb,pcb);
Freemem(pszLibFileName);

//Get the address of LoadLibraryA function in kernel32.dll
hkernel32 :=GetModuleHandle('Kernel32.dll');
pfnStartAddr :=GetProcAddress(hkernel32,'LoadLibraryA');

//run the remote process thead ,
hRemoteThread :=CreateRemoteThread(hRemoteProcess,NIL,0,pfnStartAddr,pszLibFileRemote,0,pcb);
//waiting for the end of the thread
WaitForSingleObject(hRemoteThread,INFINITE);
TerminateThread(hRemoteThread,0);
end;

طريقة معرفة handle or PId لـ winlogon متروكة للقارئ ...

لعمل dll injection لـ winlogon process قد نحتاج لـ SeDebugPrivilege ... ما المقصود ؟ متروك للقارئ ...

طبعاً يفضل عمل تغييرات في الكود بحيث تسمح لبرنامجك بامكانية ارجاع Ctrl+Alt+Del للعمل بشكل صحيح ... متروك للقارئ

* ملحوظة :

يرجى الإبقاء على حقوق الكاتب الأصلي Liu Yang ....

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#2

بارك الله فيك أخي الكريم على الموضوع

وبإنتظار تفاعل باقي الإخوة...

d4baa0.gif
#3

بارك الله فيك أخي cipher موضوع ممتاز،

وفيه معلومات مهمة وضرورية، ليست فقط لعمل disable ، ولكن يمكن الاستفادة من المعلومات التي في هذا الموضوع في عمل أشياء أخرى كثيرة وكثيرة جداً.

جزاك الله خيراً..

#4

شكرا لك على المعلومات القيمة

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

هناك طريقة سهلة لتوقيف العمل عن طريق قيمة فى الريجيسترى :)

طبعا طريقة سهلة الكثير يعلمها لا تحتاج غير بضع سطور

لى سؤال

لماذا ملف الWinLogon.exe ? وهل ممكن مثلا عمل Inject فى بروسيس اخر مثل Explorer.exe مثلا؟ :rolleyes:

{ربى زدنى علما}

#5
اقتباس
هناك طريقة سهلة لتوقيف العمل عن طريق قيمة فى الريجيسترى

أخي JuStNiCk , تلك الطريقة تختلف في عملها ...

ما تقصده أنت Disable TaskManager وموضوعنا هنا Disable Ctrl+Alt+Del لهذا لم أتكلم عن تلك الطريقة مطلقاً ..

فالضغط على Ctrl+Alt+Del أساساً لا يعني اظهار TaskManager

راجع ما قيل في هذا الموضوع ربما تعرف السبب

http://204.157.36.16/index.php?showtopic=85551

اقتباس
لماذا ملف الWinLogon.exe ?

راجع الوصلة السابقة ستعلم السبب وستدرك حينها ماذا تعني Ctrl+Alt+Del ولماذا اختير SASWinHook كاسم لمكتبة الـ DLL ...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#6

وهذا هو رابط الموضوع الذي تحدثت عنه يا اخي cipher

http://204.157.36.16/index.php?showtopic=82896

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

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

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#7
cipher كتب:
أخي JuStNiCk , تلك الطريقة تختلف في عملها ...

ما تقصده أنت Disable TaskManager وموضوعنا هنا Disable Ctrl+Alt+Del لهذا لم أتكلم عن تلك الطريقة مطلقاً ..

فالضغط على Ctrl+Alt+Del أساساً لا يعني اظهار TaskManager

راجع ما قيل في هذا الموضوع ربما تعرف السبب

http://204.157.36.16/index.php?showtopic=85551

راجع الوصلة السابقة ستعلم السبب وستدرك حينها ماذا تعني Ctrl+Alt+Del ولماذا اختير SASWinHook كاسم لمكتبة الـ DLL ...

مع احترامى لشخصك الكريم انا لم اجد اجابة لسؤالى فى هذه الوصلة التى وضعتها مش مهم سؤال disable taskman انا فقط اريد الاجابة على سؤال "لماذا ملف الWinLogon.exe ?

"

شكرا لك

{ربى زدنى علما}

#8

لا أعلم ان كنت قرأت ما كتب هنا ام لا

http://msdn.microsoft.com/library/default....curity/gina.asp

http://support.microsoft.com/kb/281980/en-us

Ctrl+Alt+Del هو عبارة عن default hot key لما يعرف بـ SAS event في نظام الويندوز (بالامكان تغييره) ..

في الاساس عن الضغط عليها مجتمعة ستظهر Windows Security window . في الوصلة الثانية ستجد لماذا تظهر الـ Task Manager ...

لماذا يتم حقن winlogon process ؟

المتحكم بـ SAS هو winlogon process ... راجع تعريف Gina في الوصلة الأولى ...

ان كنت تريد معلومات أكثر راجع ما كتب هنا

http://msdn.microsoft.com/library/default....on_and_gina.asp

بالذات ما كتب هنا

http://msdn.microsoft.com/library/default....ng_winlogon.asp

تعريف SAS

اقتباس
secure attention sequence

(SAS) A key sequence that begins the process of logging on or off. The default sequence is CTRL+ALT+DEL.

إن راجعت الطريقة التي تستخدم Gina والمذكورة في احدى المواضيع هنا في قسم الدلفي ستدرك هذا الشئ أكثر ...

تحياتي

تم تعديل هذه المشاركة بواسطة cipher في 30 يناير 2006 في 05:15

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#9

cipher مع ان معلوماتك تسد النفس وتخلي الواحد يحس انة مش فاهم حاجة .. ( طبعآ من قوتها ) .. مع ذالك اتابع كل ما تكب .. :D

ما شاء الله عليك .. واسئل الله ان يزيدك اكثر واكثر وان ينفع بك الأسلام والمسلمين.

#10

source code

أهذا ما يسمى " مدحٌ بما يشبة الذمُ " :s

اقتباس
معلوماتك تسد النفس

ما انا بحاول اقلل منها بحيث ما نسد النفوس كل يوم :D

===

ملحوظة بسيط على كود injectmydll :

يفضل إضافة Parameter آخر يمرر اليه مسار مكتبة الـ DLL المراد حقنها وحينها سنحتاج لعمل تعديلات منها

strcopy(pszLibFileName,pchar(ExtractFilePath(ParamStr(0))+'SASWinHook.dll'));

وربما تغييرها من procedure الى function تقوم بارجاع قيمة ما مثلا bool سيكون افضل ...

ما كتبته في الموضوع فقط مثال والتغيير يعتمد على كل شخص حسب ما يحلو له ...

من يريد فهم ما حصل في كود الـ DLL عليه مراجعة Remarks الخاصة بـ SetWindowLong ..

http://msdn.microsoft.com/library/default....twindowlong.asp

ثم الإطلاع على شرح WM_HOTKEY لفهم ماجرى في HookProc ...

كما نقول دائماً , ما كُتِبَ في MSDN على الرغم من أنه مختصر -لكنه موجز -إلا انه في اللب غالباً ...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#11

trhank you sir

{ربى زدنى علما}

#12

مرحبااااااا cipher يعطيك العافيه موضوعك ممتاااااز ويهمّني

سؤالين :)

1: أنا أحاول أجرب جزء من الكود على نظامي xp الكود هو

FHandle := FindWindow('SAS window class', 'SAS window');
       if not IsWindow(FHandle) then Exit;  // is window found?

ماأعرف ليش البرنامج مو قادر يحصل النافذه. هل بيانات النافذه 100% صحيحه ؟

2: بالنسبه لحقن الملف في winlogon ياليت يكون فيه موضوع خاص فيه لأنه شاغل بالي بصراحه تعرف لما يكون حقن الملف بالمتصفح ولا المفكره الموضوع سهل لكن winlogon.exe صعب المراس ورسائل الأخطاء حين الدمج كثيره:D

شكررررررررا

#13
اقتباس
ماأعرف ليش البرنامج مو قادر يحصل النافذه. هل بيانات النافذه 100% صحيحه ؟

هل تقوم بتجربة ذلك الجزء في برنامجك ام في DLL تم حقنه في WinLogOn process ؟

على العموم في شئ أقدم من مقالة Liu Yang تجده هنا :

http://www.codeproject.com/win32/AntonioWi...&select=1116239

اقتباس
لكن winlogon.exe صعب المراس ورسائل الأخطاء حين الدمج كثيره

ما الذي صادفته من أخطاء ... اعرض لنا تجربتك مع جزء من الكود ورسائل الأخطاء ...

تم تعديل هذه المشاركة بواسطة cipher في 7 فبراير 2006 في 04:55

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

هذا الموضوع مغلق.

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