الفريق العربي للهندسة العكسية

نسخة كاملة : كيف يمكن حقن تعليمه القفز مع العنوان [jump + address] داخل Process أخر بشكل صحيح ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
(04-01-2023, 10:42 PM)lionking كتب : [ -> ]كيف تم حساب هذا 0xAD ؟

أنا لم أحسب شيء...قمت بالتعديل في المنقح على عنواين مشابهة للعناوين التي طرحتها و نسخت OpCode 
باختصار المنقح هو الذي يحسبها، و نحن ننسخها و نستعملها في بناء باتش أو لودر أو هوك...

هناك برامج تقوم بالحساب بدون اللجوء للمنقح من بينها:
https://www.at4re.net/f/thread-3425.html
بالإضافة للبرنامج المرفق
هل العناوين في الذاكرة او الملف

جرب ان تستخدم
Push 0x00000000
ret

بدلا من
JMP

فقط تحتاج 6 بيتات
(04-01-2023, 10:42 PM)lionking كتب : [ -> ]كيف تم حساب هذا 0xAD ؟

بعد تنقيح البريمج Jump2Hex

في حالة JMP SHORT
 
0048D9B2 - 0048DA03 = FFFFFFAF - 2 = FFFFFFAD

تسحب آخر بايت من النتيجة لإستعماله مع أمر القفز EB

أو تحول النتيجة من DWORD إلى Byte و تساوي AD ثم تستعمله مع أمر القفز EB

في حالة JMP Long

نفس العملية و لكن تطرح 5 بدل 2 
 
0048A512 - 0048DA03 = FFFFCB0F - 5 = FFFFCB0A

الناتج لازم يعكس قبل الإستعمال مع أمر JMP Long أي E9 0A CB FF FF

* الأرقام المطروحة في العمليات السابقة (2 و 5) أرقام ثابتة فهي تمثل حجم الأمر JMP SHORT يحتاج 2 بايت في عملية الكتابة  و JMP Long يحتاج 5 بايت للكتابة

شاركنا ما توصلت إليه لتعم الفائدة  victory
(05-01-2023, 07:27 AM)aijundi كتب : [ -> ]int addr = 0x0048DA03;int jumpFarToAddr = 0x0048A512;
unsigned char hex[5];
const unsigned char command = 0xE9;
*hex = command;
int offset = jumpFarToAddr - addr - sizeof(hex);memcpy(&hex[1], &offset, sizeof(offset));
VirtualProtectEx(hProcess, (void*)addr, 20, PAGE_READWRITE, &oldProtect);
WriteProcessMemory(hProcess, (void*)addr, (void*)hex, sizeof(hex), NULL);
VirtualProtectEx(hProcess, (void*)addr, 20, oldProtect, &oldProtect);

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

 
(05-01-2023, 08:55 PM)Newhak كتب : [ -> ]هل العناوين في الذاكرة او الملف

جرب ان تستخدم
Push 0x00000000
ret

بدلا من
JMP

فقط تحتاج 6 بيتات

أشكرك أخي العزيز على إضافتك المفيدة.

 
(06-01-2023, 05:09 AM)M!X0R كتب : [ -> ]بعد تنقيح البريمج Jump2Hex

في حالة JMP SHORT
 
0048D9B2 - 0048DA03 = FFFFFFAF - 2 = FFFFFFAD

تسحب آخر بايت من النتيجة لإستعماله مع أمر القفز EB

أو تحول النتيجة من DWORD إلى Byte و تساوي AD ثم تستعمله مع أمر القفز EB

في حالة JMP Long

نفس العملية و لكن تطرح 5 بدل 2 

0048A512 - 0048DA03 = FFFFCB0F - 5 = FFFFCB0A

لناتج لازم يعكس قبل الإستعمال مع أمر JMP Long أي E9 0A CB FF FF

* الأرقام المطروحة في العمليات السابقة (2 و 5) أرقام ثابتة فهي تمثل حجم الأمر JMP SHORT يحتاج 2 بايت في عملية الكتابة  و JMP Long يحتاج 5 بايت للكتابة

أشكرك أخي العزيز أنك وضحت هدة الجزئية لأنها مهمة, وفعلا أفادتني.
.
.
.
.
الحمد لله اللغز أصبح مفهوم الآن, وكل أخ رد عليا وضح لي جزئية من الموضوع وفى النهاية اتضحت كل النقاط وتم حقن الكود بشكل صحيح كما كنت أريد. أشكركم جميعا...........
(07-01-2023, 01:00 AM)lionking كتب : [ -> ]الحمد لله اللغز أصبح مفهوم الآن, وكل أخ رد عليا وضح لي جزئية من الموضوع وفى النهاية اتضحت كل النقاط وتم حقن الكود بشكل صحيح كما كنت أريد. أشكركم جميعا...........

طيب يااخي جميل انك وصلت للحل لكن وضح ايش سويت بالضبط حتى يستفيذ غيرك
(07-01-2023, 01:00 AM)lionking كتب : [ -> ]تم حقن الكود بشكل صحيح

ساعد غيرك يساعدك غيرك كان توقيع أحد الأعضاء المخضرمين سابقا

لو تكرمت ضع الكود الصحيح الذي تمت تجربته بنجاح حتى يتسنى غيرك بالإستفادة منه nice
الكود النهائي:

[صورة مرفقة: QjJjc8S.png]

والناتج بهذا الشكل:

[صورة مرفقة: 3WP9X90.png]


أتمنى الفائدة للجميع.
(07-01-2023, 08:00 PM)lionking كتب : [ -> ]واللهى يا إخواني كل الخطوات مكتوبة فى نفس هذا الموضوع من بدايتة عل هيئة ردود من الإخوة اللي ردو عليا يعنى أنا ما جبت شئ من الخارج لكن كلة موجود في نفس الموضوع.
وعلى العموم أنا سوف أقوم بتلخيص الموضوع.

اخي الكريم لاتاخذ الامور بحساسية لان الاخوة هنا قامو بوضع اقتراحات لحل مشكلتك فكان من الافضل ان تضع ردك بماتوصلت له بالشرح وليس بصورة عامة ان فلان ساعدك وفلان اقترح وووو

بارك الله فيك انك استدركت ووضعت ماتوصلت له
بعد إذنك تم تعديل المشاركة لإعادة تكرار الردود و هذا مخالف !

نعلم أن الجميع ساعدك بفكرة و نحن طلبنا منك كتابة الكود المجرب حتى يكون مرجع لمن يواجه نفس المشكلة.

شكرًا لتفهمك  Smile
الصفحات : 1 2