![]() |
|
عدة أسئلة حول عمل حاقن و ملف dll - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : عدة أسئلة حول عمل حاقن و ملف dll (/showthread.php?tid=4869) الصفحات:
1
2
|
عدة أسئلة حول عمل حاقن و ملف dll - ALmuhhnad - 11-01-2013 السلام عليكم ورحمة الله وبركاتة قبل مدة ليست بالكثيرة وجدت برنامج عبارة عن DLL و EXE وضيفة البرنامج : هاك للعبة ما ... ( يتعامل مع ذاكرة اللعبة .. ) الفكرة العامة له هي ان الملف exe هو الحاقن والملف dll هو الهاك .. بحيث يقوم الحقان بتحديد ملف اللعبة ثم يقوم بتحميلها لذاكرة مع حقن ملف dll بها السؤال الاول ... ما هي الطريقة العامة لعمل مثل هذه الفكرة ؟ السؤال الثاني اي الدوال التي سأتعامل معها اثناء تحميل ملف تنفيذي إلى الذاكرة وحقنة ؟ Dll, PROCESS_ATTACH, CreateThread, CreateProcess ....etc السؤال الثالث عندما أريـ د ان احصل على Handle نافذة ما استعمل Findwindow لكن هنا في حالتي هذه سيكون الهاك عبارة عن ملف dll محقون في العملية التي أريـ د الحصول على الـ Handle الخاص بها ... فهل احصل عليها بالطريقة المعتادة FindWindow أم بطريقة آخرى ؟ وشكراً لحسن القراءة عدة أسئلة حول عمل حاقن و ملف dll - SMP3 - 11-01-2013 إقتباس :السؤال الاول ... ما هي الطريقة العامة لعمل مثل هذه الفكرة ؟سؤالين و الاجابة واحدة هده بعض الدوال التي يمكنك استخدامها OpenProcess : للحصول على مقبض البروسس VirtualAllocEx : تستخدم لعمل initializes للداكرة و تجهيزها WriteProcessMemory : للكتابة في الداكرة GetProcAddress : دالة شهيرة جدا .. ![]() CreateRemoteThread : تستخدم هده الدالة لانشاء ثريد يعمل في بروسس معين مثال بسيط PHP كود : procedure InjectDll(PID: DWORD; DLL: PChar);يمكن الحصول على ال PID بعدة طرق من بينها عن طريق مقبض النافدة PHP كود : var pid : DWORD;mdll هي المكتبة التي تريد حقنها PHP كود : library mdll;إقتباس :السؤال الثالث عندما أريـ د ان احصل على Handle نافذة ما استعمل Findwindowتحصل عليه بالطريقة المعتادة .. ليس هناك أي اختلاف !! و السلام عليكم
عدة أسئلة حول عمل حاقن و ملف dll - ALmuhhnad - 12-01-2013 اهلاً استاذي SMP3 ... جزاك الله خير على الإجابة الدالة CreateProcess لن استعملها ؟ لني أريـ د ان احقن ملف الـ dll قبل تنفيذ اي امر باللعة ... الفكرة ( احدد مسار اللعبة ... ثم اضغط على Button فيتم فتح اللعبة من مسارها وحقن ملف الـ dll ) إقتباس :تحصل عليه بالطريقة المعتادة .. ليس هناك أي اختلاف !! رأيت مثال سابقاً ... كان في Plugin لـ ollydbg وكانت هناك طريقة للحصول على الـ Handle الخاص بالعملية Olly بدون الحاجة لإستعمال FindWindow او غيرها شكراً مره اخرى عدة أسئلة حول عمل حاقن و ملف dll - SMP3 - 12-01-2013 لقد قمت مند فترة بعمل درس فلاشي يشرح تطبيق مبدأ ال Injection في كسر البرامج لقد قمت بتطبيق نفس الفكرة التي تريدها حقن الدلل في البرنامج قبل تشغيله و الحصول على المقبض الخاص بالنافدة و اجراء التغييرات المناسبة .. لقد اعتمدت على طريقتين : الأولى الحقن المباشر بالتعديل على الضحية .. بالاستعانة ب Olly الثانية : عن طريق برمجة حاقن (حاول الاطلاع على كلتا الطريقتين) Inject Dll Tut 1 Inject Dll Tut 2 عدة أسئلة حول عمل حاقن و ملف dll - ALmuhhnad - 12-01-2013 جزاك الله خير وجعله في موازين حسناتك ... استاذ SMP3 ... مثال جيد جداً تبقى السؤال الآخير ... إن لم تخني الذاكرة كان شكله هكذا تقريباً كود : HwndWindow := ???????.Handleعدة أسئلة حول عمل حاقن و ملف dll - SMP3 - 12-01-2013 almuhhnad كتب :يستطيع ملف الـ dll الحصول على ال handle الخاص بالبرنامج الذي تم حقنه بالـ dllنعم :d .. هل نجحت الفكرة معك ؟ عدة أسئلة حول عمل حاقن و ملف dll - ALmuhhnad - 12-01-2013 إقتباس :هل نجحت الفكرة معك ؟ اي فكرة ؟ ... تقصد إقتباس :الفكرة العامة له هي ان الملف exe هو الحاقننعم منطقياً لكن لدي بعض المشاكل البسيطة ... والتي يوجد لها حلول طيب دعك من كود : hwndwindow := ???????.handle____ على فكرة انا مبتدى في امور الـ التعامل مع الذاكرة لذلك لا تدقق كثيراً ![]() ( لدي احسااس غريب حيال آخر رد P: ) عدة أسئلة حول عمل حاقن و ملف dll - SMP3 - 12-01-2013 كود : ال يوجد طريقة من معرفة مقبض العملية التي ساقوم بتحميلها بإستعمال CreateProcessعدة أسئلة حول عمل حاقن و ملف dll - ALmuhhnad - 12-01-2013 العادة ان الحاقن يقوم بحقن ملف dll في عملية تعمل اثناء الحقن .... لكن ما أريـ ده هو ان اعمل برنامج يقوم بأخذ المسار الملف التنفيذي ( ليس عملية بل مسار الملف التنفيذي ) ثم يقوم بتشغيل اللملف التنفيذي الموجود بالمسار ... وبعد تحميل الملف التنفيذي اقوم بحقن ملف Dll فيه واضن اني استطيع فعل ذلك مع الدالة CreateProcess لكن لا أعلم طريقة التي سأتبعها ما أريـ ده الآن كيف احصل على الـ Handle الخاص بالعملية التي سأقوم بحقنها بملف الـ dll ... هل استطيع ان احصل عليه عند إستعمال الدالة CreateProcess ؟ ... ام استطيع ان احصل على Handle العملية التي أريـ د ان احقنها عن طريق Function معين ؟ طبعاً اعررف انك لم تفهم جيداً @@" --- هذه طريقة آخرى ربما تفهم منها ---يوجد لدي TarGetProcess MyProgram - Injection MyDll - HackGame أريـ د ان اجعل ( MyProgram ) يأخذ مسار ( TarGetProcess ) من المستخدم وبعد ذلك يوقم بتشغيل ( TarGetProcess ) ثم يقوم بحقن ( MyDll ) من خلال إستعمال الدالة ( CreateProcess ) لدي سؤالين على ما سببق : الاول : هل يمكنني تطبيق ما سبق ؟ السؤال الثاني : هل استطيع ان احصل على ( Handle ) الخاص بـ ( TarGetProcess ) اثناء إستعمالي لدالة ( CreateProcess ) ؟ إذا كان السؤال الاول جوابه ( غير ممكن ) هل توجد طريقة آخرى لعمل ذلك ؟ إذا كان السؤال الثاني جوابه ( لا تستطيع الحصول على Handle الخاص بـ TarGetProcess من خلا الدالة CcreateProcess ) هل توجد طريقة آخرى للحصول على الـ Handle الخاص بـ TarGetProcess بدون إستعمال الطرق الغير مضمونة مثل FindeWindow إذا نعم ( أريـ د مثال بيسط ) بارك الله فيك .... --- End --- اعتقد الطريقة الثانية افضل من ناحية إصال الفكرة .. بما انك مبرمج ستفهمها سريعاً ![]() ... واعتذر على عدم مقدرتي لإصال السؤال ففكري مشووش قليلاً @@" وشكراً على صبرك معي عدة أسئلة حول عمل حاقن و ملف dll - SMP3 - 12-01-2013 نعم الطريقة الثانية أفضل .. فهمتك ![]() أولا أعتقد أنك تخلط بين المقبض ال Handle الخاص بالدالة CreateProcess و الدالة FindWindow الدالة CreateProcess تستخدم للحصول على مقبض البروسس عن طريق PROCESS_INFORMATION.hProcess أما الدالة FindWindow فهي تعيد مقبض للنافدة (الفورم أو الكونترول) و ليس البروسس إقتباس :هل استطيع ان احصل عليهنعم يمكنك بالشكل التالي : PHP كود : varPHP كود : function GetProcessHandle(win:HWND):THandle;تجنب استخدام كلمة [COLOR="Navy"]عملية .. فقد دهب بالي الى Services[/COLOR] |