سؤال حول كتابة Plugin لتجاوز دالة IsDebuggerPresent
#10
في حالتي ، تتحقق الوظيفة مما إذا كانت process is Being Debugged ، لذا إذا كان صحيحًا ، فيمكنك محاولة فصلها عن Debugger
هذه ترجمة C ++ ، في دلفي PVOID = POINTER
لجعلها تعمل حاولRunAsAdmin
اجعله يعمل تحت المؤقت (Timer)
فيمكنك محاولة فصلها ب NtRemoveProcessDebug

آسف للغتي ، لدي لوحة مفاتيح ,qwerty
هل يمكنني النشر باللغة الإنجليزية أو لغات أخرى

(03-04-2020, 10:07 PM)حسن لطفى كتب :
(03-04-2020, 01:56 PM)Hs32-Idir كتب :
كود :
function GetProcessIsBeingDebugged(ProcessHandle: THandle; var IsBeingDebugged: Boolean): Boolean; var   DebugPort: PVOID;   TargetProcessHandle: THandle;   SourceProcessHandle: THandle;   DuplicateResult: BOOL;   DesiredAccess: ACCESS_MASK; begin   Result := False;   try     if (@NtQueryInformationProcess <> nil) then     begin       DuplicateResult := False;       TargetProcessHandle := 0;       DuplicateResult := DuplicateHandle(GetCurrentProcess(), ProcessHandle, GetCurrentProcess(), @TargetProcessHandle, 0, False, DUPLICATE_SAME_ACCESS);       if DuplicateResult then       begin         try           if NtQueryInformationProcess(             TargetProcessHandle,             7,             @DebugPort,             SizeOf(PVOID),             nil             ) = 0 then             Result := True;           if DebugPort <> nil then             IsBeingDebugged := True;         finally           if TargetProcessHandle <> 0 then             CloseHandle(TargetProcessHandle);         end;       end;     end;   except   end; end;

شكرا استاذ
لماذا ضاعفت الهاندل ؟
لجعلهم same access
مناسب للعمل في process المستهدفة.
الرد


الردود في هذا الموضوع
RE: سؤال حول كتابة Plugin لتجاوز دالة IsDebuggerPresent - بواسطة Hs32-Idir - 04-04-2020, 02:26 AM

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


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