1.Դ?源码???ɱ?̳?
2.免杀动态对抗之syscall[源码分析]
Դ????ɱ?̳?
您好:建议您不要使用木马软件,木马病毒会对您的免杀电脑造成损害的,如果您曾使用过此类不安全的教程木马软件的话,为了您电脑的源码安全,建议您使用腾讯电脑管家对您的免杀电脑进行一下全面的杀毒吧,打开腾讯电脑管家中的教程签章系统源码杀毒功能选择闪电查杀或者全盘查杀就可以,您可以点击这里下载最新版的源码腾讯电脑管家:最新版腾讯电脑管家下载
腾讯电脑管家企业平台:/c/guanjia/
免杀动态对抗之syscall[源码分析]
基础概念
操作系统分为内核和应用层,从R0-R3,免杀R0是教程内核,R3是源码用户层。Windows中日常调用的免杀API都是R3抽象出来的接口,虽然Win API它也是教程R3接口,但由于Windows的源码网上源码网设计思想就是高度封装,实际上的免杀R3 API是ntdll.dll中的函数。
我们调用的教程Win API都是kernel.dll/user.dll中的函数,最终都要经过ntdll.dll。
逆向学习一个函数,选定CreateThread,ntdll中的fastgpt源码解析对应函数是NtCreateThread。可以看到首先给eax赋值(系统调用号SSN),然后再执行syscall。
EDR的工作原理是对Windows API进行hook。一般使用inline hook,即将函数的开头地址值改成jmp xxxxxxx(hook函数地址)。知道了syscall的深夜打源码调用模板,自己构造syscall(获取SSN,syscall),即可绕过EDR对API的hook。
学习不同项目对应的手法,如HellsGate、TartarusGate、dlib源码解释GetSSN、SysWhispers等。这些项目通过遍历解析ntdll.dll模块的导出表,定位函数地址,获取系统调用号SSN,实现动态获取SSN。
使用直接系统调用或间接系统调用,如SysWhispers系列项目的直接系统调用(手搓syscall asm)和间接系统调用(使用用户态API,如kernel.dll中的API)。系统调用号SSN在不同版本的系统下是不一样的,可以参考相关技术博客整理的列表。
SysWhispers2使用随机系统调用跳转(Random Syscall Jumps)避免“系统调用的标记”,通过SW__GetRandomSyscallAddress函数在ntdll.dll中搜索并选择一个干净的系统调用指令来使用。
SysWhispers3引入了egg技术(动态字符替换,汇编指令层次的混淆)和支持直接跳转到syscalls,是spoof call的变体,绕过对用户态asm文件syscall的监控。
HWSyscalls项目通过kernel gadget,跳到ntdll.dll中做间接syscall,更彻底地实现了间接系统调用。
这些项目的实现涉及软件中自定义堆栈流程、硬件断点等技术,通过内核函数调用、动态字符替换、异常处理机制等,绕过EDR检测和系统调用监控,实现免杀动态对抗。
2024-12-27 17:19
2024-12-27 16:47
2024-12-27 16:38
2024-12-27 16:34
2024-12-27 16:21
2024-12-27 15:56
2024-12-27 15:30
2024-12-27 15:23