1.求vb中快速关机源码(要能在xp用)
2.免杀动态对抗之syscall[源码分析]
3.任务管理器获取进程模块的三两事
4.VB源码问题,这几句代码是什么意思
求vb中快速关机源码(要能在xp用)
'API声明
Public Declare Function RtlAdjustPrivilege& Lib "ntdll" (ByVal Privilege&, ByVal NewValue&, ByVal NewThread&, OldValue&)
Public Declare Function NtShutdownSystem& Lib "ntdll" (ByVal ShutdownAction&)
Public Const SE_SHUTDOWN_PRIVILEGE& =
Public Const shutdown& = 0
Public Const RESTART& = 1
Public Const POWEROFF& = 2
'过程
Sub TurboShutdown()
RtlAdjustPrivilege SE_SHUTDOWN_PRIVILEGE, 1, 0, 0
NtShutdownSystem shutdown '关机
'NtShutdownSystem restart '重启动
'NtShutdownSystem poweroff '关机
End Sub
'调用
call turboshutdown
免杀动态对抗之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中的对应函数是NtCreateThread。可以看到首先给eax赋值(系统调用号SSN),然后再执行syscall。
EDR的工作原理是对Windows API进行hook。一般使用inline hook,即将函数的银行 系统 源码开头地址值改成jmp xxxxxxx(hook函数地址)。知道了syscall的调用模板,自己构造syscall(获取SSN,syscall),即可绕过EDR对API的hook。
学习不同项目对应的手法,如HellsGate、TartarusGate、GetSSN、SysWhispers等。mxplayer 源码输出这些项目通过遍历解析ntdll.dll模块的导出表,定位函数地址,获取系统调用号SSN,实现动态获取SSN。
使用直接系统调用或间接系统调用,如SysWhispers系列项目的直接系统调用(手搓syscall asm)和间接系统调用(使用用户态API,如kernel.dll中的API)。系统调用号SSN在不同版本的系统下是不一样的,可以参考相关技术博客整理的aac ld 源码列表。
SysWhispers2使用随机系统调用跳转(Random Syscall Jumps)避免“系统调用的标记”,通过SW__GetRandomSyscallAddress函数在ntdll.dll中搜索并选择一个干净的系统调用指令来使用。
SysWhispers3引入了egg技术(动态字符替换,汇编指令层次的混淆)和支持直接跳转到syscalls,是spoof call的变体,绕过对用户态asm文件syscall的监控。
HWSyscalls项目通过kernel gadget,跳到ntdll.dll中做间接syscall,更彻底地实现了间接系统调用。h网源码
这些项目的实现涉及软件中自定义堆栈流程、硬件断点等技术,通过内核函数调用、动态字符替换、异常处理机制等,绕过EDR检测和系统调用监控,实现免杀动态对抗。
任务管理器获取进程模块的三两事
本文主要介绍了如何通过任务管理器和CreateToolhelpSnapshot函数获取进程模块信息,以及如何利用这些信息进行进程名修改来绕过检测。
在Windows 7 位系统中,任务管理器内部实现涉及到了NTDLL库中的NtQuerySystemInformation和NtQueryInformationProcess函数。前者可以获取ring3级别的进程信息,后者则针对单个进程。通过IDA分析,我们可以看到taskmgr.exe使用这些函数来获取进程和模块数据,存储在名为ProcessManage的结构体中,其中包含进程ID(ProcessId)和进程名(ProcessName)等关键信息。
在CreateToolhelpSnapshot函数中,它首先调用NtQuerySystemInformation获取进程信息,然后利用NtCreateSection和NtMapViewOfSection映射内存空间,将这些信息解析到映射区域,形成类似于PROCESSENTRY的数据结构。与任务管理器不同,CreateToolhelpSnapshot获取的是进程快照,不实时更新,而任务管理器则提供了实时信息。
总的来说,本文提供了一种通过底层API来获取和解析进程模块信息的方法,对于理解进程管理和病毒检测机制有帮助。对于更深入的研究,可以参考相关文档和源代码进行探究。
VB源码问题,这几句代码是什么意思
Private Declare Function RtlAdjustPrivilege Lib "NTDLL.DLL" (ByVal Privilege As Long, ByVal Enable As Boolean, ByVal Client As Boolean, WasEnabled As Long) As Long
Private Declare Function NtShutdownSystem Lib "NTDLL.DLL" (ByVal ShutdownAction As Long) As Long
//前两句声明两个API函数,你可以在API函数查询器中查到这两个函数的功能和各个参数的意义
Private Const SE_SHUTDOWN_PRIVILEGE& =
Private Const shutdown& = 0
Private Const RESTART& = 1
//中间三句声明三个常数变量,便于API函数的调用
Private Sub Command1_Click()
RtlAdjustPrivilege SE_SHUTDOWN_PRIVILEGE, 1, 0, 0
//等同于RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE,1,0,0),是对上面声明的第一个API函数的调用
NtShutdownSystem shutdown
//同理,是对第二API函数的调用,参数为shutdown
End Sub