![]() |
|
حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا (/showthread.php?tid=3234) |
حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - hanipino - 28-06-2011 نعم صح بارك الله فيك اخى me&delphi حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - hanipino - 29-06-2011 قمت باضافة قفزتين حتى لا تصدر رسائل خطاء بسبب عدم وجود المكتبة او الدالة غير موجودة ... . الاولى اذا كان مقبض المكتبة = 0 اى (EAX = 0 ) هنى نقفز 25 بايت اى بالهاكس = 19 PHP كود : $83, $F8, 0, {CMP EAX, 0}اذا كان كان عنوان الدالة = 0 هنى نقفز 07 بايت فقط ![]() PHP كود : $83, $F8, 0, {CMP EAX, 0}حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - me_delphi - 30-06-2011 نعم أخي Hanipino فكرة جيدة وأقترح عليك الأداة AsmToMachineCode لتتحويل الأسمبلي الى لغة الآلة...ستجدها ان بحتت في المنتدىان كانت لديك أفكار أخرى اطرحها لنحاول معا حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - me_delphi - 30-06-2011 هل جربت أن تقفز للخلف !! ...لم يسبق لي أن فعلتها حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - hanipino - 30-06-2011 إقتباس :هل جربت أن تقفز للخلف !! ...لم يسبق لي أن فعلتها لا ادرى كيف ... لاكن يمكن استعمال إقتباس : push xxxx xxxx يؤشر على عنوان ما فى الخلف . حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - hanipino - 30-06-2011 كمثال اذا كان مقبض المكتبة يختلف عن الصفر سيكمل العمل عادى فى غير ذالك سيقفز للخلف و يحاول تحميل المكتبة من جديد . حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - me_delphi - 30-06-2011 إقتباس :اذا كان مقبض المكتبة يختلف عن الصفر سيكمل العمل عادى هنا سيدخل البرنامج في حلقة غير منتهية ...سيحاول دائما تحميل المكتبة اذا كانت قيمة المقبض صفر. نعم أخي Hanipino بالنسبة للعنوان لا يوجد مشكل...فقط عندما رأيت المثال أي القفز للأمام بعدد معين من البيتات فكرت في القفز للخلف بنفس الطريقة أي بالبايت و ليس العنوان..هل لديك فكرة ? حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - hanipino - 30-06-2011 ليست لدى فكرة عن القفز للخلف بعدد معين من Bytes ------------------------ انا الان احاول حقن مكتبة معينة مثلا ب MessageBox بنفس طريقة حقن ملف تنفيذى ... لاكن حدث بعض المشاكل حاول معى اخى me&delphi . حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - me_delphi - 30-06-2011 سأحاول أخي رغم ان الملفات exe تختلف عت المكتبات بغض النظر أن كليها يحمل وينفد في الداكرة حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا - me_delphi - 02-07-2011 بالنسبة للقفز للخلف بعدد معين من البايتات...فكرت وقبل أن أبحث توصلت لهده الطريقة من خلال المحاولات لنعتبر هدا هو الشيل او اللودر المراد حقنه (فقط مثال لتوضيح الفكرة) PHP كود : \x40ومقابله بالأسمبلي PHP كود : inc eaxو نحن نريد أن نقفز للخلف وبالضبط الىinc eax وبالتالي سنستبدل القيمة 00000033 بالقيمة التى تمكننا من القفز الى المكان المطلوب ادا قمنا بعد مجموع البايتات ابتداءا من FF والتي هي 00000033 الى البايت x40 الدي مقابله inc eax سنجدها تساوي 13 بايت وما دمنا نريد القفز للخلف أي القيمة سالبة 13- ويبقى فقط تحويل القيمة 13- من Decimal الى Hex وسأشرح الطريقة هنا للمبتدئين نفتح الألة الحاسبة الخاصة بالوندوز تم نقوم بعملية حسابية ناتجها 13- مثلا 13- = 26-13 ثم نحول ل Hex و ستعطينا F3 وهكدا نضع مكان البايت FF القيمة F3 بالنسبة لحقن Dll ب MessageBoxA لم أتو صل لحل فعال أخي Hanipino وأتمنا أن أكون أفدت اخواني في المنتدى ولو بالقليل. بالتوفيق. |