delphi4arab منتديات دلفي للعرب
كيف ابرمج Plugin اضافة للبرامج - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف ابرمج Plugin اضافة للبرامج (/showthread.php?tid=4647)

الصفحات: 1 2


كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 17-10-2012

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

كيف ابرمجة ملفات dll تعمل على إخفاء البرنامج الذي يستعمل الـ dll التي ابرمجها
مثال لمن يعرف برنامج التنقيح OllyDbg ... لديه Plugins كثير منها من يقوم بإخفاء البرنامج بشكل كامل
مثل هذه الـ dll لكن لبرامج اخرى غير OllyDbg مثل Cheat Engine
.....
علماً اني لا اعرف كيف ابرمج ملف dll
فقط اعرف انه يتم فيه تخزين الدوال ويتم استدعائها من البرنامج الذي اربتط مع الـ dll متى ما اراد

واشكر لكم حسن قرائتكم


كيف ابرمج Plugin اضافة للبرامج - محمد عبد العزيز - 17-10-2012

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

هل للبرنامج امكانية اللإضافة أو pdk اختصارا لPlugin Development kit ؟

كمثال ذكرتOllyDbg هناك موضوع:OllyDbg Plugins+Source
http://delphi4arab.net/forum/showthread.php?tid=1922
وحتما تعرف PEiD فهناك موضوع:PEiD Plugins+Sources
http://delphi4arab.net/forum/showthread.php?tid=1676

اما ان كانت الإضافة لبرنامج الخاص يمكنك مراجعة: دورة دلفي للعرب- الدرس السابع: إنشاء الإضافات وبرمجة مكتبات الربط الديناميكية
http://delphi4arab.net/forum/showthread.php?tid=578
تتعلم بنفس الموضوع برمجة مكتبتك الخاصة DLL

بالنسبة للإخفاء الأمر متعلق بمعرفة كيفية الكشف ثم بعدها القيام بالمضاد! يمكن مراجعة:
كيف اجعل بروسيس برنامجي لا يظهر في task manager -مديرالمهام
http://delphi4arab.net/forum/showthread.php?tid=370
كيف اضهر كلProcesses المخفية في جهازي

http://delphi4arab.net/forum/showthread.php?tid=3684

ولا تنسى موضوع: Anti-RCE & Anti-Debugger
http://delphi4arab.net/forum/showthread.php?tid=2042
راجع كل ما سبق وبعدها لنا حديث ان شاء الله Big Grin



كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 17-10-2012

اشكر لك ردك السريع اخي الغالي [ B.M.AbdelAziZ ] توقعت ان تجيب علي Smile

جاري متابعه ما ذكرت Smile


كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 19-10-2012

إقتباس : هل للبرنامج امكانية اللإضافة أو pdk اختصارا لPlugin Development kit ؟

انا اعتقد انه يوجد مثل ما يسمى بـ PDK في Cheat Engine
لكن هل لك ان توضح اكثر عنها لان جميع الروابط التي وضعت لم يتكلم فيها احد عن PDK
وبالنسبة للسورس كود للمكتبات اضن اني لن افهم شيء إذا ما عرفت كيف يتخفى البرنامج اصلاً ( اطلعت عليها )
والمقالة التي كتبها المبرمج Ms تعطي امثلة بالـ ASM + C وانا غير جيد البتة في C ولا افهم بالـ ASM
عندما تتعلق بالنظام والتعامل معه @@"


كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 23-10-2012

انتهيت من قرائت جميع الروابط وملحقاتها
وبعضها فهمت منها والآخر اشك اني فهمت شيء منها

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

رغم ذلك اجد المبرمجين العرب لديهم Plugin في Olly ومشهورة لدرجة وصولها إلى المنتديات الاجنبية .( ما شاء الله ). ... لكن للاسف كالمعتاد الباحث العربي آخر ما نفكر فيه ... طبعا ربما تضن او يضن اغلبكم انه كما وجدت المعلومة انت يستطيع اي احد آخر إيجادها

واعتقد ان هذا من اهم الاسباب التي تجعل المجتمع العربي متأخر عن المجتمعات الآخرى

الآن انتهيت من معرفة بعض الاساليب في كشف المنقح olly نأخذ على سبيل المثال ابسط طريقة
وهي عن طريق استعمل الدالة FindWindow
كود :
procedure TForm3.Button1Click(Sender: TObject); Var FW_Olly: HWND; begin FW_Olly := FindWindow('OllyDbg','OllyDbg - [CPU]'); if FW_Olly <> 0 then ShowMessage('OllyDbg is Run') else ShowMessage('OllyDbg is not Run'); end;
ولكي اعمل مضاد لها استعمل الدالة SetWindowText
مثال :
كود :
SetWindowText(FW_Olly,'Example');

إذا بعد ان عرفت طريقة ومضاد لها .. كيف ابرمج لها ملف Dll يتوافق مع الـ Olly او Cheat Engine

انا اعرف ان ملف الـ Dll مكون من دوال استدعيها من البرنامج الذي يستعمل هذه الـ Dll لكن ليست عندي
اي فكرة عن كيفية ربطها في Olly وخصوصاً انه تظهر في قائمة الـ Plugins في Olly لاني اعرف انها دوال فقط

انتظركم اخواني ولا زلت ابحث


كيف ابرمج Plugin اضافة للبرامج - محمد عبد العزيز - 23-10-2012

إقتباس :لكن هل لك ان توضح اكثر عنها لان جميع الروابط التي وضعت لم يتكلم فيها احد عن PDK
الPDK هو ما يعطيه صاحب البرنامج لغيره لتطوير اضافات لبرنامجه والروابط السابقة بها امثلة تحتوى ترجمة PDK لدلفي
كمثال OllyDbg تجد الPDK بموقع هنا
كود :
http://www.ollydbg.de/pdk.htm
اما الاصدار الثاني فهو قيد التطوير يمكن استخدام أخر Bookmark plugin
كود :
http://www.ollydbg.de/version2.html
هنا انتبه نقطتين :
1- عليك قرأة كل ما بالPDK خاصة Plugins.hlp
2- الPDK الموجود بالموقع بلغة السي فقط وما تجده بلغات اخرى هو اجتهاد اشخاص قامو بتحويله الى لغات البرمجة المفضلة لديهم (مثل مرفقات الروابط السابقة هنا بالمنتدى)

إقتباس :امثلة بالـ ASM + C وانا غير جيد البتة في C ولا افهم بالـ ASM
انصحك بتعلمها، ليس شرطا ان تتقنها على الأقل لتفهم مغزاها وتحولها الى لغة البرمجة المفضلة لديك

إقتباس :لم اجد اي موضوع عربي يتكلم عن برمجة Plugin
المحتوى العربي التقني صفر فاصل صفر شيئ من المائة من محتوى الأنترنت
قبل ان تنتظر ان يفهم غيرك ويكتب لك مقالات بالعربية تعلم وكن انت كاتبها Big Grin ان شاء الله تجد توجيه هنا او هناك

ذكرت برنامج Cheat Engine
http://delphi4arab.net/forum/showthread.php?tid=2020
لو نظرت بموقع البرنامج أول صفحة تجد Plugin
كود :
http://cheatengine.org/plugins/forcedinjection.rar
هو اضافة لحقن مكتبات dll بالألعاب مبرمج بدلفي و مفتوح المصدر يمكنك تفقده
الPDK موجود
كود :
http://code.google.com/p/cheat-engine/source/browse/#svn%2Ftrunk%2FCheat%20Engine%2Fplugin
+ امثلة بدلفي ،Lazarus ولغة السي

نعود لمسألة الاخفاء، اخفاء ماذا وعن ماذا ؟
اخفاء المنقح OllyDbg ؟ عن ماذا (ما هي طرق الكشف)؟
يجب وضع قائمة لكل الطرق وبرمجة المضاد، يمكن الاستفادة من مما سبق
كود :
http://www.woodmann.com/collaborative/tools/index.php/Category:Tool_Hiding_Tools

إقتباس :نأخذ على سبيل المثال ابسط طريقة الدالة FindWindow ...و SetWindowText
حسنا مثال على السريع ليس هدفه الاخفاء بل فقط التوضيح، لضيق الوقت ناخذ مثال جاهز WinMax2
كود :
http://bob.droppages.com/Projects/OllyDbg2/WinMax2
نعدل عليه ونضيف ما ذكرته
كود :
FW_Olly: HWND; begin FW_Olly := FindWindow('OllyDbg','OllyDbg - [CPU]'); if FW_Olly <> 0 then SetWindowText(FW_Olly,'Example');
مرفق، جربه مع اخر اصدار OllyDbg2.01g
كود :
http://www.ollydbg.de/odbg201g.zip



كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 23-10-2012

فإذا اخذت سروس كود انا لا اعرف مما يتكون واين اضع كودي ولا اعرف هذا الكود خاص بذاك الشيء ...إلخ
على سبيل المثال ... انت وضعت الكود الذي يبحث عن نافذة Olly
كود :
Procedure Process; Const WM_MDIGETACTIVE = $0229; Var B: Bool; H: HWnd; FW_Olly: HWND; begin FW_Olly := FindWindow('OllyDbg','OllyDbg - [CPU]'); if FW_Olly <> 0 then SetWindowText(FW_Olly,'Example'); If PluginActive Then Begin // Maximize current MDI window if not already maximized .. H := SendMessage(HWnd(HWCLIENT^), WM_MDIGETACTIVE, 0, Integer(@B)); If (Not B) And (H > 0) Then ShowWindow(H, SW_SHOWMAXIMIZED); End; End;
هنا لو قلت ضع هذا الكود ما كنت لاعرف اين اضعه وما كنت اعرف ان ذاك الجزء خاص بمعلومات المكتبة
والآخر خاص بستدعائات الدوال ...إلخ
اضن اتضحت الفكرة ...
هل هناك اي مقالة او موضوع او معلومة بهذا الخصوص بأي لغة كانت ... اشكر لك تجاوبك وصبر علي اخي [ B.M.AbdelAziZ ]

بالمناسبة لم تعمل الـ WinMax2 التي ارفقت على النسخة OllyDbg2.01g لا اعرف ما السبب ( اضفتها في مجلد الـPlugins وحددت مساره من برنامج olly )


كيف ابرمج Plugin اضافة للبرامج - محمد عبد العزيز - 23-10-2012


لم تنتبه للملاحظة 1: تجد كل شيئ بالملف Plugins.hlp
ان لم يعمل المرفق السابق عندك فهناك سبب، فكر!

في عالم البرمجة تحتاج دائما لخلفية ما للقيام بعمل ما، مثل الذي يسال عن التجميع Assembly في x86 ولم يطلع على كتب Intel



كيف ابرمج Plugin اضافة للبرامج - STRELiTZIA - 23-10-2012

السلام علكيم و رحمة الله
إقتباس :بالمناسبة لم تعمل الـ WinMax2 التي ارفقت على النسخة OllyDbg2.01g لا اعرف ما السبب ( اضفتها في مجلد الـPlugins وحددت مساره من برنامج olly )
المرفق يعمل و الـــ Plugin يتم تحميله في اوللي بدون مشاكل... Windows Xp SP3 - Delphi 7

ايضا، يوجد ملف Header كامل تم تحويله من cpp الي الــ pascal من طرف الأخ phpbb3 يدعم النسخة OllyDbg 2.00


كيف ابرمج Plugin اضافة للبرامج - ALmuhhnad - 24-10-2012

كود :
المرفق يعمل و الـــ Plugin يتم تحميله في اوللي بدون مشاكل... Windows Xp SP3 - Delphi 7
انا استعمل Delphi RAD Studio XE3 وأتتني بعض الأخطاء عند عمل كومبلير واعدلتها مثل ما طلبت رسالة الخطاء
والنتيجة كانت لم تعمل المكتبة
لكن بعد ما فتحت المكتبة بالدلفي 7 لم تظهر لي ايت اخطاء وبعد عمل كومبلير عملت المكتبة بدون مشاكل
----
إقتباس : لم تنتبه للملاحظة 1: تجد كل شيئ بالملف Plugins.hlp
للاسف الشديد اني لا اجيد إلا القليل من الانجليزية ( اعتقد اني يجب ان اتقنها اولاً )
إقتباس : في عالم البرمجة تحتاج دائما لخلفية ما للقيام بعمل ما، مثل الذي يسال عن التجميع Assembly في x86 ولم يطلع على كتب Intel
نعم انا معك في هذا ... لذلك قلت
إقتباس :لكن الكل يتكلم ولديه خبرة وساعه في هذا المجال ولم اجد اي موضوع عربي يتكلم عن برمجة Plugin لاي برنامج حتى الاسااسيات او المفاهيم والطرق التي يجب ان نمشيء عليها ...إلخ
...
هل هناك اي مقالة او موضوع او معلومة بهذا الخصوص بأي لغة كانت
واعطني من خبرتك اخي في الكتب التي تتكلم عن إنشاء ملفات dll او كتاب يتكلم عن الـ" Plugin Development kit "
حتى وان كانت باللغة الانجليزية
واعرف اني جاهل في الكثير من الامور لذلك المعذر ان ازعجتك Smile
واشكرك مره آخرى