公告-无限期停更
公告-停更博主要参加27考研,不打算二战,且本科课程学得稀烂,遂开始逐步复习。本博客主要记录信息安全相关主题,大概考前不打算继续学习技术相关。
(考前也可能会诈尸
Qt6开发入门-常用控件简介
Qt6开发入门-常用控件简介QString字符串QString存储一串字符,每个字符是一个QChar类型的数据。QChar使用UTF-16编码,一个字符包含2字节数据。对于超过65535的Unicode编码,QString使用两个连续的QChar字符表示。QString字符串中一个汉字是一个字符。例如:
123QString str="dimple,酒窝";QChar ch0=str[0]; //dQChar ch7=str.at(7); //酒
QChar类常用接口函数:
12345678910111213141516171819bool isDigit();bool isLetter();bool isLetterOrNumber();bool isLower();bool isUpper();bool isMark();bool isNonCharacter();bool isNull();bool isNumber();bool isPrint();bool isPunct();bool isSpace();bool isSymbol();bool isEm ...
Qt6开发入门-Qt框架综述
Qt6开发入门-Qt框架综述常用定义Qt为各种常见数据类型定义了类型符号:
Qt数据类型
POSIX标志
字节数
q(u)int8/16/32/64
(unsigned/signed) char/short/int、(unsigned) long long int
1/2/4/8
q(u)longlong
(unsigned) long long int
8
uchar/ushort/uint/ulong
unsigned char/short/int/long
1/2/4/8
qreal/qsizetype
double/ssize_t
8
qfloat16(需要QFloat16.h)
2
常用函数:
123456789101112131415//下面参数为double的函数都有对应float的同名重载函数T qAbs(const T &value); //返回value绝对值const T &qBound(const T &min,const T &value,const T &max); //返回v ...
C++后端开发入门-环境配置与多线程编程
C++后端开发入门-环境配置与多线程编程环境配置下载并安装Ubuntu虚拟机,网卡改为桥接模式,启用root账户并设置密码。接下来装SSH:
1sudo apt install openssh-server,net-tools
然后修改/etc/ssh/sshd_config,将下列属性的注释去掉并修改值:
123LoginGraceTime 2mPermitRootLogin yesStrictModes yes
关防火墙并重启SSH:
123456sudo ufw disablesudo ufw statussudo service ssh restartsudo systemctl enable sshsudo systemctl status sshsudo reboot
接下来用MobaXTerm或XShell连上即可。
在Visual Studio 2022中添加“使用C++进行Linux和嵌入式开发”,新建“空项目(Linux)”。选择“工具”->“选项”->“跨平台”->“连接管理器”。添加一个SSH连接并下载远程标 ...
Qt6开发入门-环境配置与入门
Qt6开发入门-环境配置与入门安装在线安装包可以去官网找,也可以这里下载:https://mirrors.nju.edu.cn/qt/official_releases/online_installers/ ,但提前需要在Qt官网注册账户。下载需要换源,命令如下:
1qt-online-installer-windows-x64-4.9.0.exe --mirror https://mirror.nju.edu.cn/qt
安装时选择“个人使用”、“自定义安装”。建议选择安装目前最高版本的Qt6下的MSVC 2022 64-bit和MinGW 13.1.0 64-bit套件,选中Sources、全部Additional Libraries和Qt Debug Information Files。Build Tools中选择Qt对应的MinGW版本、Qt Installer Framework、CMake、Ninja和全部OpenSSL Toolkit。Qt Creator中建议选中Qt Creator、CDB Debugger Support、Debugging Tools for W ...
差分隐私实践入门
差分隐私实践入门去标识去标识与关联攻击去标识(或匿名、假名)是指从数据集中删除标识信息的过程。例如有CSV数据集如下,第一行为表头:
1234Name,DOB,SSN,Zip,Workclass,Education,Education-Num,Marital Status,Occupation,Relationship,Race,Sex,Hours per week,Country,Target,Age,Capital Gain,Capital LossKarrie Trusslove,9/7/1967,732-14-6110,64152,State-gov,Bachelors,13,Never-married,Adm-clerical,Not-in-family,White,Male,40,United-States,<=50K,56,2174,0Brandise Tripony,6/7/1988,150-19-2766,61523,Self-emp-not-inc,Bachelors,13,Married-civ-spouse,Exec-managerial,Husband, ...
UEFI编程入门-GUI开发
UEFI编程入门-GUI开发入门UEFI的事件接口函数运行于启动服务环境下,有不同的任务优先级TPL要求。启动服务环境下有4种任务优先级,高优先级任务可以中断低优先级任务。
TPL要求
含义
TPL_APPLICATION
最低优先级,应用程序运行在这个级别
TPL_CALLBACK
中等优先级,比较耗时的操作,如磁盘操作
TPL_NOTIFY
高优先级,不允许阻塞,如底层IO操作
TPL_HIGH_LEVEL
最高优先级,不允许被中断,如UEFI内核全局变量修改
事件存在两种互斥的状态:等待和触发。当事件被创建后,UEFI系统将其设置为等待状态。事件被触发后,UEFI系统将其转换为触发状态。
对于处于TPL_CALLBACK和TPL_NOTIFY级别的事件,存在处理队列。若队列中同志函数的TPL小于等于目前任务TPL,那它只能等到当前任务TPL降低,一般通过启动服务的RestoreTPL来改变TPL。
常用函数CreateEvent/CreateEventEx函数CreateEvent和CreateEventEx均用于产生事件,原型如下。其中Cr ...
WindowsAPI编程核心技术-NPcap网络抓包入门
WindowsAPI编程核心技术-NPcap网络抓包入门环境搭建NPcap是WinPcap的改进版,后者已停止维护。在官网https://npcap.com/ 获取安装包和SDK,并运行安装包。
新建Visual Studio工程,添加SDK的Include目录为包含目录,添加Lib\x64目录为库目录,链接器附加依赖项添加wpcap.lib、packet.lib和ws2_32.lib文件。
PCAP文件格式文件格式大致为:
1234文件头24字节数据报头16字节 + 数据包数据报头16字节 + 数据包...
文件头格式为:
123456789struct pcap_file_header { bpf_u_int32 magic; //PCAP文件标识 如d4 c3 b2 a1 u_short version_major; //主版本号 u_short version_minor; //次版本号 bpf_int32 thiszone; /* 时区修正 未使用 总为0 */ bpf_u_int32 sigfigs; /* 精确时间戳 未使用 总为 ...
Windows驱动开发入门-WDF初探
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
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 ...