刷新
2.2 PE结构:文件头详细解析

博主头像 PE结构是`Windows`系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,DOS头是PE文件开头的一个固定长度的结构体,这个结构体的大小为64字节(0x40)。DOS头包含了很多有用的信息,该信息可以让Windows... ...

C++的编译链接与在vs中build提速

博主头像 通过gcc或msvc,clang等编译器编译出来的C++源文件是.o文件。在windows上也就是PE文件,linux为ELF文件,在这一步中,调用其它代码文件中的函数的函数地址是未知的(00000),等到链接之后才会替换掉函数地址的 [linux,windows 可执行文件(ELF、PE)](ht ...

1.15 自实现GetProcAddress

博主头像 在正常情况下,要想使用`GetProcAddress`函数,需要首先调用`LoadLibraryA`函数获取到`kernel32.dll`动态链接库的内存地址,接着在调用`GetProcAddress`函数时传入模块基址以及模块中函数名即可动态获取到特定函数的内存地址,但在有时这个函数会被保护起来,... ...

C++系列三:QT初识2

博主头像 [TOC](qt初识2) 前言: 我可没说放弃 ```csharp Base class中的三个选项: QMainWindow:主窗口类,包括菜单栏、工具栏、状态栏。 QWidget:可以创建一个空白的窗口,是所有界面组件的基类。 QDialog:对话框类。 Clang代码模型: help->Abo ...

《C++并发编程实战》读书笔记(2):线程间共享数据

博主头像 ## 1、使用互斥量 在C++中,我们通过构造`std::mutex`的实例来创建互斥量,调用成员函数`lock()`对其加锁,调用`unlock()`解锁。但通常更推荐的做法是使用标准库提供的类模板`std::lock_guard`,它针对互斥量实现了RAII手法:在构造时给互斥量加锁,析构时解锁 ...

msvc++中的预编译头文件pch.hpp和stdafx.h

博主头像 ## 预编译头文件 在 Visual Studio 中创建新项目时,会在项目中添加一个名为 pch.h 的“预编译标头文件”。 (在 Visual Studio 2017 及更高版本中,该文件名为 stdafx.h)此文件的目的是加快生成过程。 应在此处包含任何稳定的标头文件,例如标准库标头(如 ) ...

[Qt开发探幽(二)]浅谈关于元对象,宏和Q_ENUM

博主头像 [TOC]([Qt开发探幽(二)]浅谈关于元对象,宏和Q_ENUM) # [Qt开发探幽(二)]浅谈关于元对象,宏和Q_ENUM ## 前言 最近在开发的时候,我自己写了一套虚函数。这也是我第一次写这么大一个框架,遇到了一些有点莫名其妙的问题(也不能算莫名奇妙,只能说有点玩不明白),详情可以见 [[ ...

1.12 进程注入ShellCode套接字

博主头像 在笔者前几篇文章中我们一直在探讨如何利用`Metasploit`这个渗透工具生成`ShellCode`以及如何将ShellCode注入到特定进程内,本章我们将自己实现一个正向`ShellCode`Shell,当进程被注入后,则我们可以通过利用NC等工具连接到被注入进程内,并以对方的权限及身份执行命令... ...

C++ ASIO 实现异步套接字管理

博主头像 Boost ASIO(Asynchronous I/O)是一个用于异步I/O操作的C++库,该框架提供了一种方便的方式来处理网络通信、多线程编程和异步操作。特别适用于网络应用程序的开发,从基本的网络通信到复杂的异步操作,如远程控制程序、高并发服务器等都可以使用该框架。该框架的优势在于其允许处理多个并... ...

AC 自动机学习笔记

博主头像 前言 AC自动机(\(Aho\ Corasick\ Atomaton\))有着一种 \(KMP\) 的思想,所以在学习之前建议先学一下 \(KMP\)。同时还需要了解一下 \(Trie\) 树(建议去看一下 oi-wiki 上的字典树) 问题描述 给定一个字符串 \(S\) 和 \(n\) 模式串, ...

删数问题

博主头像 ## 问题描述 现有$n$个正整数组成的序列$a$,从中删除一个数,得分是其本身同左、右相邻的数的乘积, 然后再在剩余的整数中继续删除,注意**序列两端的数字a1和an是不能删除的**,求这样删除$n-2$个整数后的最大得分。 例如有四个数$3 、4、5、6$,按照先$4$后$5$的删除顺序,其得分 ...

Lyndon分解 学习笔记

博主头像 ### 什么是 $Lyndon$ 串 我们定义一个串是 $Lyndon$ 串,当且仅当这个串的**最小后缀**就是这个串本身。 也就是说 $Lyndon$ 串等价于这个串是它的所有循环表示中**字典序最小**的。 ### $Lyndon$ 分解定义 将一个字符串 $S$ 分解为若干个子串:$s_1s ...

平衡树学习笔记

博主头像 # 平衡树 平衡树就是为了实现一类元素在线性结构中动态变化的功能所需要的数据结构。 平衡树是一种基于二叉搜索树的数据结构。 满足:左儿子 $<$ 根 $<$ 右儿子。 也就是一切小于根节点的在左边,一切大于根节点的在右边。 这样想要查找一个节点的位置时间复杂度就是 $O(\log n)$。 平衡树主 ...