حقن ملف تنفيذى و جعله يحمل مكتبة من صنعنا
#31
السلام عليكم

هذه طريقة اخرى اخى me&delphi احسن من الاولى و اوضح Smile

PHP كود :
procedure MSG;
 
asm
   PUSHAD
   PUSH 0
   PUSH $FFFFFFFF
   PUSH $FFFFFFFF
   PUSH 0
   MOV EAX
, $7E3D07EA //@MessageBoxA
   
CALL EAX
   POPAD
   PUSH $FFFFFFFF
   RET
 end
; 

كود :
CopyMemory(@bFile[Pos_code_injection], @[color=Red]MSG[/color], _SizeOfProc);

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


الملفات المرفقة
.rar   MSG_ASM.rar (الحجم : 2.43 ك ب / التحميلات : 18)
الرد
#32
توصلت لطريقة لكتابت العناوين فى الاجراء MSG ... ثم كتابت الاجراء ككل فى الملف المحقون .. هذه الطريقة مؤخوذة من المثال AHPacker

تخزين العناوين فى الاجراء
PHP كود :
procedure PatchMyProc(Proc: Pointer; NewValue: Pointer; OffsInProc: Dword; Size: Dword );
var
  
Writ: cardinal;
begin
  asm
    MOV EAX
, Proc         // EAX نخزين عنوان الاجراء  فى
    
ADD EAX, OffsInProc    //استخراج عنوان بايت معين فى هدا الاجراء
    
MOV Proc, EAX         // تخزين العنوان الاخير فى متغير نتمكن من تعامل معه
  
end;
  
WriteProcessMemory(GetCurrentProcess, Proc, NewValue, Size, Writ);
end; 

الاستعمال .. مثلا تخزين عنوان ذو حجم 4 بايت مكانه يبدء من البايت 9
كود :
PatchMyProc(@MSG, @Adresse,{Pos Byte In Proc}9, 4);


الملفات المرفقة
.rar   PatchMyProc.rar (الحجم : 2.51 ك ب / التحميلات : 25)
الرد
#33
جيد أخي hanipino من خلال البحث يتعلم الانسان الكثير

بالنسبة للحصول على عنوان MessageboxA تلقائيا فقد عدلت على المرفق الدي طرحت الحل بسيط بدون استعمال أي اجراءات أخري

بالتوفيق أخي .


الملفات المرفقة
.rar   MSG_ASM_OK.rar (الحجم : 2.57 ك ب / التحميلات : 13)
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم