从挂起进程内存中获取干净的ntdll副本,使用syscall绕过AV/EDR
简体中文说明 | English README
- 20220315:获取ntdll中syscall地址,然后调用。能够绕过对syscall指令执行的位置的检查
- 创建一个挂起的进程
- 获取ntdll的基址
- 从挂起的进程中获取ntdll内容复制到本进程
- 保存syscall的调用代码
- 执行syscall调用
- 下载仓库到本地
- 将需要syscall调用的函数写到
functions.txt
文件中 - 执行
python3 NimSysCalls.py
生成一个syscalls.nim
文件 - 编译并执行,例子在
example.nim
.
>> nim c -d:strip --opt:size -d:release -f -r example.nim
[*] Create process notepad.exe
[*] Read clean copy of ntdll from notepad.exe and kill the process
[*] Get export function from clean copy of ntdll
[*] Start create C:\Users\pw.log
[*] Syscall code: 85
[*] NtCreateFile return: 0
[*] Create file C:\Users\pw.log success