|
Algorithm 2: Reimplementation of Heaven’s Gate |
-
1:
function BypassHG
-
2:
esp ← GetCurrentStackPointer()
-
3:
IncreaseStackPointer(esp, 8)
-
4:
processId ← GetCurrentProcessID()
-
5:
processHandle ← OpenProcessWithAllAccess(processId)
-
6:
scanAddress ← ApplicationAddressLowerBound
-
7:
lastSectionAddress ← ApplicationAddressUpperBound
-
8:
while scanAddress < lastSectionAddress do
-
9:
ChangeMemoryProtection(processHandle, scanAddress, ExecuteWriteCopy)
-
10:
scanAddress ← scanAddress + MemoryPageSize
-
11:
end while
-
12:
CloseProcessHandle(processHandle)
-
13:
end function
|