Check if ASLR is enabled
#1
السلام عليكم
إجراء للتحقق من Address space layout randomization مفعلة أم لا

PHP كود :
unit uCheckASLR;

// Original C++ Source: https://stackoverflow.com/questions/47105480/how-to-check-if-aslr-is-enabled-for-a-process
// Converted to Delphi by Agmcz 28-12-2017 2:25:32

interface

uses
  Windows
;

function 
CheckASLR(dwProcessId: ULONG; out bASLR: Boolean): ULONG;

implementation

const
 
 PROCESS_QUERY_LIMITED_INFORMATION = $1000;

type
 TSectionImageInformation  
= record
    TransferAddress
: Pointer;
 
   ZeroBits: ULONG;
 
   MaximumStackSize: ULONG;
 
   CommittedStackSize: ULONG;
 
   SubSystemType: ULONG;
 
   MinorSubsystemVersion: Word;
 
   MajorSubsystemVersion: Word;
 
   GpValue: ULONG;
 
   ImageCharacteristics: Word;
 
   DllCharacteristics: Word;
 
   Machine: Word;
 
   ImageContainsCode: Boolean;
 
   ImageFlags: Byte;
 
   LoaderFlags: ULONG;
 
   ImageFileSize: ULONG;
 
   CheckSum: ULONG;
 
 end;

 
 PROCESSINFOCLASS = (
 
   ProcessBasicInformation,
 
   ProcessQuotaLimits,
 
   ProcessIoCounters,
 
   ProcessVmCounters,
 
   ProcessTimes,
 
   ProcessBasePriority,
 
   ProcessRaisePriority,
 
   ProcessDebugPort,
 
   ProcessExceptionPort,
 
   ProcessAccessToken,
 
   ProcessLdtInformation,
 
   ProcessLdtSize,
 
   ProcessDefaultHardErrorMode,
 
   ProcessIoPortHandlers,
 
   ProcessPooledUsageAndLimits,
 
   ProcessWorkingSetWatch,
 
   ProcessUserModeIOPL,
 
   ProcessEnableAlignmentFaultFixup,
 
   ProcessPriorityClass,
 
   ProcessWx86Information,
 
   ProcessHandleCount,
 
   ProcessAffinityMask,
 
   ProcessPriorityBoost,
 
   ProcessDeviceMap,
 
   ProcessSessionInformation,
 
   ProcessForegroundInformation,
 
   ProcessWow64Information,
 
   ProcessImageFileName,
 
   ProcessLUIDDeviceMapsEnabled,
 
   ProcessBreakOnTermination,
 
   ProcessDebugObjectHandle,
 
   ProcessDebugFlags,
 
   ProcessHandleTracing,
 
   ProcessIoPriority,
 
   ProcessExecuteFlags,
 
   ProcessResourceManagement,
 
   ProcessCookie,
 
   ProcessImageInformation,
 
   MaxProcessInfoClass);

type
  NTSTATUS 
= LongWord;

function 
NtQueryInformationProcess(ProcessHandle: THandle; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: Pointer; ProcessInformationLength: ULONG; ReturnLength: PULONG ): LongInt; stdcall; external 'ntdll.dll';
function 
RtlNtStatusToDosError(Status: NTSTATUS): Integer; stdcall; external 'ntdll.dll';

function 
CheckASLR(dwProcessId: ULONG; out bASLR: Boolean): ULONG;
var
 
hProcess: THandle;
 
sii: TSectionImageInformation;
 
status: NTSTATUS;
begin
  hProcess 
:= OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, False, dwProcessId);
 
 if (hProcess <> 0) and (hProcess <> INVALID_HANDLE_VALUE) then
  begin
    status 
:= NtQueryInformationProcess(hProcess, ProcessImageInformation, @sii, SizeOf(sii), 0);
 
   CloseHandle(hProcess);
 
   if 0 <= status then
    begin
      bASLR 
:= Boolean(sii.ImageFlags);
 
     Result := NOERROR;
 
     Exit;
 
   end;
 
   Result := RtlNtStatusToDosError(status);
 
   Exit;
 
 end;
 
 Result := GetLastError;
end;


end. 


الملفات المرفقة
.zip   uCheckASLR.zip (الحجم : 1.28 ك ب / التحميلات : 52)
سبحان الله وبحمده سبحان الله العظيم
[-] كل من 2 users say قال شكرا ل Agmcz على المشاركة المفيدة
  • محمد عبد العزيز, h-farid
الرد


الردود في هذا الموضوع
Check if ASLR is enabled - بواسطة Agmcz - 28-12-2017, 03:18 AM
RE: Check if ASLR is enabled - بواسطة مبرمج حر - 07-01-2018, 02:17 PM
RE: Check if ASLR is enabled - بواسطة Agmcz - 07-01-2018, 11:34 PM
RE: Check if ASLR is enabled - بواسطة Agmcz - 08-04-2018, 01:34 PM
RE: Check if ASLR is enabled - بواسطة Agmcz - 01-05-2018, 02:52 AM
RE: Check if ASLR is enabled - بواسطة Agmcz - 01-05-2018, 03:31 PM
RE: Check if ASLR is enabled - بواسطة Agmcz - 16-05-2018, 01:16 AM
RE: Check if ASLR is enabled - بواسطة Agmcz - 30-05-2018, 06:45 PM
RE: Check if ASLR is enabled - بواسطة Agmcz - 11-06-2018, 02:04 AM
RE: Check if ASLR is enabled - بواسطة AX302 - 11-06-2018, 05:11 AM
RE: Check if ASLR is enabled - بواسطة Agmcz - 11-06-2018, 05:22 AM
RE: Check if ASLR is enabled - بواسطة Agmcz - 05-10-2019, 12:40 AM

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


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