| 169 | } |
| 170 | |
| 171 | PUCHAR DetourGenBrk(PUCHAR pCode, PUCHAR pLimit) { |
| 172 | ULONG count = pLimit - pCode; |
| 173 | Brk* pBrk = (Brk*)ExAllocatePoolWithTag(NonPagedPool, sizeof(Brk) + count, 'oted'); |
| 174 | if (pBrk != nullptr) { |
| 175 | MapLockedCopyMemory(pCode, pBrk->int3, count); |
| 176 | ExFreePool(pBrk); |
| 177 | while (pCode < pLimit) { |
| 178 | pCode++; |
| 179 | } |
| 180 | } |
| 181 | return pCode; |
| 182 | } |
| 183 | |
| 184 | PUCHAR DetourSkipJmp(PUCHAR pCode, PVOID* ppGlobals) { |
| 185 | if (pCode == nullptr) { |
no test coverage detected