avatar
文章
331
标签
30
分类
0

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
The Blog of Monoceros406
搜索
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

The Blog of Monoceros406

Windows驱动开发入门-WDF初探
发表于2024-12-13|Win驱动开发
Windows驱动开发入门-WDF初探基本结构WDF基本对象包括驱动对象WDFDRIVER和设备对象WDFDEVICE。 每个设备驱动都必须有与之对应的唯一的驱动对象,该对象由内核执行体I/O管理器在驱动首次加载时创建,结构定义为: 1234567typedef struct _WDF_DRIVER_CONFIG { ULONG Size; PFN_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd; //设备对象添加例程 PFN_WDF_DRIVER_UNLOAD EvtDriverUnload; //卸载例程 ULONG DriverInitFlags; //初始化标识符 ULONG DriverPoolTag; //调试器显示的内存表示 4字节} WDF_DRIVER_CONFIG, *PWDF_DRIVER_CONFIG; 驱动至少创建一个设备对象,每个设备对象包含指向下一个对象的指针,形成一个设备链。设备对象是能使软件操作硬件的数据结构,包括位于设备堆栈最底层的物理设备对象PDO ...
Windows软件调试初探-事件追踪ETW
发表于2024-12-12|Win系统调试
Windows软件调试初探-事件追踪ETW入门ETW使用提供器-消耗器-控制器设计模式。输出追踪消息的目标程序是提供器,接收和查看追踪消息的工具或文件是消耗器,负责控制追踪会话的工具是控制器。用于支持ETW传输追踪信息的通信连接称为ETW会话,Windows最多支持64个ETW会话,其中有两个是系统专用的,分别是启动早期用的Global Logger Session和记录系统预定义事件的NT Kernel Logger Session。 ETW基础设施核心部分是实现在内核模块的,作为WMI一个部分实现。有一部分函数在DDK中公开,供驱动调用,用户模式API在ADVAPI32.DLL输出。 1x nt!Wmi*trace* 提供ETW消息ETW提供器通过RegisterTraceGuids向系统注册自己的GUID,这样ETW控制器才能通过GUID找到该提供器。若ETW控制器启动或停止该提供器,则系统调用回调函数。 123456789101112#include <evntrace.h>#define RegisterTraceGuids RegisterTrace ...
OpenSSL入门-SM2实践
发表于2024-12-11|OpenSSL
OpenSSL入门-SM2实践MIRACL下载MIRACL:https://github.com/miracl/MIRACL ,打开x64 Native Tools Command Prompt for VS 2022,工作目录改为source下,并将include目录内所有文件拷贝到source目录下,并运行../lib/ms64doit_cpp.bat。于是在source目录下生成miracl.lib,接下来工程需要链接该.lib。 SM2加密需要复制来miracl.h和mirdef.h头文件。 test.c: 1234#include "SM2_ENC.h"void main() { SM2_ENC_SelfTest();} SM2_ENC.c: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 ...
OpenSSL入门-SSL-TLS编程实战
发表于2024-12-11|OpenSSL
OpenSSL入门-SSL-TLS编程实战入门用SSL_library_init、OpenSSL_add_ssl_algorithms或SSLeay_add_ssl_algorithms初始化SSL算法库,调用SSL系列函数前必须先调用一个: 123int SSL_library_init(); //成功1 否则0#define OpenSSL_add_ssl_algorithms() SSL_library_init()#define SSLeay_add_ssl_algorithms() SSL_library_init() 用SSL_CTX_new和SSL_CTX_free分别初始化和释放SSL上下文环境变量。 123456SSL_CTX* SSL_CTX_new( SSL_METHOD* meth //使用的SSL协议算法); //成功返回指针 否则NULLvoid SSL_CTX_free( SSL_CTX* ctx); 其中参数meth可以是: 12345678SSLv2_server_method();SSLv2_client_method();SSLv3 ...
OpenSSL入门-PKI实战
发表于2024-12-10|OpenSSL
OpenSSL入门-PKI实战入门需要准备三台电脑:根CA主机、子CA主机和客户主机,下面先搭建根CA主机和子CA主机: 先查看防火墙,若开启则要关闭: 12firewall-cmd --state #查看状态systemctl stop firewalld 打开OpenSSL配置文件如下,或Windows下为/bin/openssl.cfg。 1cat /etc/ssl/openssl.cnf 部分内容为: 123456789101112131415161718192021222324252627282930313233343536[ ca ]default_ca = CA_default # 默认CA[ CA_default ]dir = /etc/pki/CA # CA工作目录 这里改一下certs = $dir/certs # 证书存储路径crl_dir = $dir/crl # 证书吊销列表da ...
OpenSSL入门-椭圆曲线
发表于2024-12-08|OpenSSL
OpenSSL入门-椭圆曲线数学基础例如求椭圆曲线$y^2=x^3-x$在有限域$\operatorname{GF}(89)$上所有点: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112#include <iostream>#include<string.h>#include<math.h>#include<time.h>#define MAX 100typedef struct point { int point_x; int point_y;}Point;typedef struct ecc ...
OpenSSL入门-RSA综合
发表于2024-12-08|OpenSSL
OpenSSL入门-RSA综合PKCS#1加密填充格式: 1EB=00+BT+PS+00+D EB位转化后十六进制表示的数据块,如密钥为1024位时EB长度为128字节。BT为处理模式,公钥操作为02,私钥操作为00或01,当D以00开头时BT为01,不以00开头时为00。PS为填充字节,填充数量为$密钥字节长-3-明文字节长$,最小长度为8,当BT为00时填充用00,BT为01时填充用FF,BT为02时随机非零填充。 C语言实现: 12345678910111213141516171819202122232425262728293031323334353637383940#include <iostream>#include <stdlib.h>#include <time.h>int rsaEncDataPaddingPkcs1(unsigned char* in, int ilen, unsigned char* eb, int olen) { int i; unsigned char byteRand; if ( ...
OpenSSL入门-常用编码
发表于2024-12-08|OpenSSL
OpenSSL入门-常用编码Base64BIO_new将参数type中各个变量赋值给BIO街头中的method成员: 123BIO* BIO_new( BIO_METHOD* type); 参数type可由BIO_f_base64返回,写的时候编码,读的时候解码: 1BIO_METHOD* BIO_f_base64(); 其中BIO_METHOD结构为: 123456789101112typedef struct bio_method_st{ int type; //类型 const char* name; //名字 int (*bwrite)(BIO*,const char*,int); //二进制写回调函数 int (*bread)(BIO*,char*,int); //二进制读回调函数 int (*bputs)(BIO*,const char*); //文本写回调函数 int (*bgets)(BIO*,char*,int); //文本读回调函数 long (*ctrl)(BIO*,int,long,void*); / ...
OpenSSL入门-杂凑函数
发表于2024-12-07|OpenSSL
OpenSSL入门-杂凑函数SM3实现: 12345678910111213141516171819202122232425262728293031323334353637383940#include <stdio.h>#include <string.h>#include "openssl/evp.h"int sm3_hash(const unsigned char* message, size_t len, unsigned char* hash, unsigned int* hash_len) { EVP_MD_CTX* md_ctx; const EVP_MD* md; md = EVP_sm3(); md_ctx = EVP_MD_CTX_new(); EVP_DigestInit_ex(md_ctx, md, NULL); EVP_DigestUpdate(md_ctx, message, len); EVP_DigestFinal_ex(md_ctx, hash, hash_l ...
WindowsAPI编程核心技术-内核枚举
发表于2024-12-05|Win内核安全
WindowsAPI编程核心技术-内核枚举枚举用户进程12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <ntifs.h>#include <windef.h>extern PVOID PsGetProcessPeb(_In_ PEPROCESS Process);NTKERNELAPI NTSTATUS PsLookupProcessByProcessId(HANDLE ProcessId, PEPROCESS* Process);extern NTKERNELAPI PVOID PsGetProcessWow64Process(_In_ PEPROCESS Process);extern NTKERNELAPI UCHAR* PsGetProcessImageFileName(IN PEPROCESS Process);extern NTKER ...
1234…34
avatar
Monoceros406
Windows系统安全爱好者
文章
331
标签
30
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
Linux编程入门-系统选项2025-06-21
Linux编程入门-时间2025-06-15
Linux编程入门-用户管理与安全2025-06-15
Linux编程入门-内存管理2025-06-15
Linux编程入门-进程2025-06-14
标签
漏洞复现 恶意代码 密码学 Python 渗透测试 取证 编程语言 逆向工程 AWD Win系统调试 其他 GUI开发 解题报告 沙盒逃逸 算法 Win内核安全 OpenSSL 移动安全 UEFI 数学建模 Win驱动开发 WinAPI IoT PWN 前端开发 Web Linux Web3 后端开发 Misc
归档
  • 六月 20258
  • 五月 20259
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
网站资讯
文章数目 :
331
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly