自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 KTHREAD 结构体属性介绍

typedef struct _KTHREAD { // // The dispatcher header and mutant listhead are fairly infrequently // referenced. // DISPATCHER_HEADER Header; // KTHREAD 是可等待对象,线程结束时有信号 // 此链表存储了属于该线程的所有 mutant(对应3环的 mutex) // 一旦该线程获得了 mu

2021-03-10 11:30:05 1813

原创 EPROCESS 结构体属性介绍

typedef struct _EPROCESS { // KPROCESS 和 EPROCESS 地址相同 KPROCESS Pcb; // // Lock used to protect: // The list of threads in the process. // Process token. // Win32 process field. // Process and thread affinity setting. /

2021-03-10 11:29:58 2073

原创 ETHREAD 结构体属性介绍

typedef struct _ETHREAD { KTHREAD Tcb; // 线程创建时间 LARGE_INTEGER CreateTime; union { // 线程退出时间 LARGE_INTEGER ExitTime; // 用于跨进程通信 LIST_ENTRY LpcReplyChain; // 带键事件等待链表 LIST

2021-03-10 11:29:51 1514

原创 vs2019 编译 WRK 踩坑记录

一、回顾上一篇博客介绍了命令行编译 WRK 到调试的所有步骤,理论上我们已经可以开始学习了。但是 IDE 可以方便的查找和修改函数,好处多多,所以这篇博客介绍如何使用 visual studio 编译 WRK。这篇博客会沿用上一篇博客的部分配置,建议读者先跟着上一篇博客配置一下。二、Windows-Research-Kernel-WRK-https://github.com/HighSchoolSoftwareClub/Windows-Research-Kernel-WRK-里面有详细的用法介绍

2021-03-10 11:29:15 1660

原创 进程线程创建过程

一、进程创建过程所有进程都通过 PspCreateProcess 函数创建,包括 System 进程。它被三个函数调用,分别是NtCreateProcessEx、PsCreateSystemProcess 和 PspInitPhase0 。NtCreateProcessEx 是 CreateProcess 的内核服务;PspInitPhase0 函数是系统初始化早期调用的,它创建了 System 进程,System 进程的句柄保存在全局变量 PspInitialSystemProcessHandle

2021-03-10 10:26:23 1851

原创 几种常见的反调试方法

#include <Windows.h>#include <stdio.h>BOOL IsDebug1(){ return IsDebuggerPresent();}BOOL IsDebug2(){ HANDLE hProcess = GetCurrentProcess(); BOOL bDebug; if (0 == CheckRemoteDebuggerPresent(hProcess, &bDebug)) { return TRUE; }

2021-03-08 09:37:56 1393

原创 使用SEH实现跳转

这是一个很粗糙的demo,它的功能是添加了一个异常处理函数到SEH链表的头部。然后触发一个除零异常,跳转到我们指定的函数中执行。没有仔细研究SEH的工作原理,只是知道了有这么一种跳转方式而已,详细的内容请看《加密与解密4》第八章内容。// SEH.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Windows.h>void fool(){ Mess

2021-03-06 20:25:38 381 3

原创 花指令——多个指令共用字节

一、原理一个字节属于两条指令。短跳转的指令机器码是 EB XX,XX是指跳转位置到JMP指令的下一条指令的偏移,例如 EB 00 就是跳转到JMP 的下一条指令,相当于啥也不做,如图:那么如果是 EB FF ,就会跳转到JMP指令本身的第二字节:对于这个特性,稍加利用,可以编写出这样的代码:跳转执行后,跳到JMP第二字节,FF C0 被识别成 INC EAX,48 被识别成 DEC EAX,执行后反汇编的结果如下:这就是无效汇编指令的原理,EB FF C0 48 这段硬编码可以添加到程序

2021-03-06 16:25:29 517

原创 CreateProcess 重定向CMD实现反弹shell

这段代码比我还老了,哈哈~功能很简单,就是一直尝试向某个ip:port反弹shell,C2用nc就能接收这个反弹shell。// RedirectCmd.cpp : Defines the entry point for the console application.// 还原《恶意代码分析实战》第九章练习样本2#include "stdafx.h"#include <WinSock2.h>#include <Windows.h>#pragma comment(l

2021-03-01 23:53:53 446 1

原创 timestomping 修改文件时间戳

Attribute Changer 是一款免费的修改文件时间戳的工具,使用简单,不多介绍。下面给出代码修改的方法:#include <Windows.h>// 修改文件2的时间戳使其和文件1一样void Timestomping(LPCSTR lpszFile1, LPCSTR lpszFile2){ HANDLE hFile1 = CreateFileA(lpszFile1,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_A

2021-03-01 14:43:45 462 1

原创 CreateService / SC 创建自启动服务

下面的代码创建了一个服务,然后把自己复制到C盘下,通过服务实现开机自启动。如果要卸载这个服务,只需执行一下命令:sc delete AutoStartServiceDemo// AutoStartServiceDemo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>char lpszServiceName[MAX_PATH]

2021-03-01 12:05:22 4132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除