
Windows
windows
0xwangliang
热爱可抵岁月漫长
QQ 1993250372 CPDD
展开
-
Windows I/O系统
处理器内部定义的存储体,它们除了存储功能,往往还兼有其他的能力,比如参与运算,地址解析,指示处理器的状态,等等。寄存器是由处理器内部专门的触发器电路实现的,处理器往往只有少量的寄存器,其存储能力不超过几百字节,而且一旦系统断电,则寄存器的内容随之丢失。原创 2024-09-05 20:20:35 · 1178 阅读 · 0 评论 -
Obsidium v1.5.4壳 逆向分析
RemoveVectoredExceptionHandler 删除刚刚的异常处理函数。结构体偏移B8位置为新线程的EIP 在新EIP位置下一个断点。观察Zwcontinue函数传进去的Context结构体。可以在CE中查找指令地址 来得到当前真正执行的指令。使用aesenc 指令集 对数据进行AES解密。样本是使用这个壳进行打包的 来进行逆向。通过遍历DLL 导出表的方式来获取函数地址。跳出来之后 再经过一个异常就能进入主程序。马上就来个int 1进入异常处理函数。但是脱壳还是不会 太菜了。原创 2024-05-06 15:13:09 · 618 阅读 · 0 评论 -
VMP 简单源码分析(.net)
获取CPU的型号实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。截获异常 先由虚拟机处理 处理不了再抛出异常检查运算数据的类型根据数据判断 实现无符号运算 以及运算溢出等的处理同理的还有异或 减法等获取目标程序框架设置调用方法支持实例方法、静态方法、虚拟方法和过滤方法。原创 2024-05-06 11:44:04 · 830 阅读 · 0 评论 -
生成文件的MD5码
【代码】生成文件的MD5码。原创 2023-05-13 13:34:28 · 1223 阅读 · 0 评论 -
DUMP进程内存保存文件
【代码】DUMP进程内存保存文件。原创 2023-05-05 12:22:49 · 426 阅读 · 0 评论 -
用驱动遍历进程的IAT表
WIN7 X86。原创 2023-05-02 16:27:33 · 288 阅读 · 0 评论 -
遍历读取驱动的签名
win7 X86。原创 2023-04-26 17:43:46 · 319 阅读 · 0 评论 -
使用驱动来枚举DPC
WIN7 X86。原创 2023-04-18 20:09:55 · 200 阅读 · 0 评论 -
用驱动遍历获取完整进程名
WIN7 X86。原创 2023-04-14 23:40:21 · 535 阅读 · 0 评论 -
用驱动遍历驱动
X86 win7 平台。原创 2023-04-08 17:10:20 · 238 阅读 · 0 评论 -
CVE-2022-21882复现
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-05-10 03:11:21 · 1867 阅读 · 0 评论 -
VAD 虚拟内存
Windows中的虚拟地址分配使用指令dt _EPROCESS 874ed030 观察EPROCESS结构体偏移为0x278的地方,这个地方就是系统拿来存放每个进程的虚拟地址空间的分配情况输入!vad 874ed030+278 查看该平衡二叉树Level是二叉树的层数 start是该块虚拟地址空间的起始地址 end为结束地址 commit为请求次数写一段程序测试下#include<stdio.h>#include<Windows.h>int main() {原创 2022-04-20 20:10:46 · 3277 阅读 · 0 评论 -
驱动与R3的通信 -自定义包
驱动#include <ntifs.h>#include <Windowsx.h>#define DEVICE_NAME L"\\Device\\wangliang"#define SYM_NAME L"\\??\\wangliang"#define _COMM_ID 0x12345678typedef struct _CommPackage{ ULONG64 id; ULONG64 code; ULONG64 inData; ULONG64 inL原创 2021-07-18 03:28:14 · 434 阅读 · 0 评论 -
驱动与R3的通信
kd> dt PDRIVER_OBJECTWdf01000!PDRIVER_OBJECTPtr32 +0x000 Type : Int2B +0x002 Size : Int2B +0x004 DeviceObject : Ptr32 _DEVICE_OBJECT +0x008 Flags : Uint4B +0x00c DriverStart : Ptr32 Void +0原创 2021-07-13 17:36:45 · 834 阅读 · 1 评论 -
通过驱动断链来隐藏驱动
隐藏指定驱动尝试隐藏这个驱动#include <ntifs.h>typedef struct _KLDR_DATA_TABLE_ENTRY { LIST_ENTRY InLoadOrderLinks; LIST_ENTRY exp; ULONG un; ULONG NonPagedDebugInfo; ULONG DllBase; ULONG EntryPoint; ULONG SizeOfImage; UNICODE_STRING FullDllName; UNICO原创 2021-07-12 16:15:44 · 3232 阅读 · 1 评论 -
UNICODE_STRING
UNICODE_STRING 是在内核中描述字符串的结构体,和应用层的Char不一样,Unicode_String 每个字占两个字节,计算length是 *sizeof(WCHAR)定义为 UNICODE_STRING Str = {0}结构为typedef struct _UNICODE_STRING{USHORT Length;//字节数USHORT MaximumLength;//字节数,告诉系统函数多少内存可用PWSTR Buffer;//指向字符串的指针}UNICODE_STRING原创 2021-04-08 20:12:11 · 1712 阅读 · 0 评论 -
WinDbg 学习(3)
查看SSDT表查看SSDT Shadow 表Shadow SSDT表在SSDT表下面uf + 地址或者函数名 查看该函数的反汇编代码原创 2021-04-05 11:10:29 · 202 阅读 · 0 评论 -
简单介绍 反调试
DebugPortKdDisableDebugger禁用内核调试IsDebuggerPresent/CheckRemoteDebuggerPresentHookHOOK一些与调试相关的函数NtOpenThread:防止调试器在程序内部创建线程NtOpenProcess:防止OD等调试工具在进程列表中看到KIAttachProcess:防止被附加上NtReadVirtualMemory:防止被读内存NtWriteVirtualMemory:防止内存被写KdReceivePacket:K原创 2021-04-04 17:59:39 · 648 阅读 · 0 评论 -
WinDbg 学习(2)
内存查看dt [nt!]_EPROCESS 查看EPROCESS这个表加上 -r 可以继续把下属的结构体打出来同时也支持通配符知道了结构体的类型,给出结构体地址,还可以把结构体给打出来同时也能只打出某一个成员db address size 以一个字节显示值和ASC字符(带感叹号是物理内存,不带感叹号是虚拟内存)dw address size 显示两字节的值dd address size 显示四字节的值dq address size 显示八字节的值dp address si原创 2021-04-03 10:16:38 · 294 阅读 · 0 评论 -
WinDbg 学习(1)
线程查看指令~* 查看当前进程的所有线程,能得到线程的ID,PID和进程的ID。~. 查看当前线程~# 引起异常的线程~+数字 显示指定的线程~+数字 s 切换至指定线程的上下文~* kb 显示所有线程的栈!runaway 显示线程运行所用时间.detach 终止调试断点bc */n 清除所有断点bl */n查看所有断点以及断点信息bd */n 让断点失效be */n 重新启用断点bp address/model!func 对地址或者模块下断点,代码修改后原创 2021-04-03 01:24:33 · 296 阅读 · 0 评论