自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 可持久化数组的非可持久化线段树非可持久化平衡树实现(C++代码)

不使用可持久化线段树且不使用可持久化平衡树实现可持久化数组。

2022-07-08 18:11:44 460

原创 A*搜索算法

A* 搜索算法简介算法流程伪代码描述注意事项A* 版k短路算法算法流程伪代码描述例题注意事项简介A* 算法是基于BFS的一种入门级启发式搜索算法,就是将BFS的队列改为基于估价的优先队列,可以快速地找到答案。算法流程伪代码描述//优先队列为小根堆WHILE 优先队列不为空 取出队头并扩展 将扩展节点以估价值+当前值为优先级入队END WHILE注意事项估价函数越接近真实值算法...

2019-10-19 16:08:44 703

原创 RSA算法及C++实现

RSA算法实现说明算法的数学基础C++实现数论函数以及结构体定义获取公钥及私钥加密解密说明质数p,q要自己去选取算法的数学基础首先,选取两个质数p,q,令 N=pqN = pqN=pq,L=Φ(N)=(p−1)(q−1)L = \Phi \left ( N \right ) = (p-1)(q-1)L=Φ(N)=(p−1)(q−1);选取E(0<E<L)使得gcd(E,L)=...

2019-10-07 11:18:02 3555

原创 数据结构——Treap

数据结构——Treap简介实现节点结构节点信息更新左旋右旋插入删除查询前驱(不大于指定值的最大值)查询后驱(不小于指定值的最小值)查询第K大的值查询排名简介树堆,在数据结构中也称Treap,是指有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为O(logn)。相对于其他的平衡二叉搜索树,Treap的特点是实现简单,且能基本实现随机平...

2019-10-05 17:28:42 225

原创 字符串子串识别——KMP算法与AC自动机

字符串子串识别——KMP算法与AC自动机KMP算法算法简介预处理子串KMP算法主体例题AC自动机算法简介建立失败跳转数组(其实就是在Trie中添加几条边)匹配例题实际应用KMP算法算法简介KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特–莫里斯–普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的...

2019-10-05 16:53:46 402 1

原创 计算机求定积分——自适应辛普森法

自适应辛普森法例题近似解求法——辛普森法(也叫抛物线法)例题洛谷P4526 【模板】自适应辛普森法2这道题应该不能用牛顿莱布尼兹公式求解,因为这个函数没有初等原函数。近似解求法——辛普森法(也叫抛物线法)辛普森法将定积分...

2019-10-04 21:14:09 1474

原创 自己实现一个神经网络算法库

/* NeuralNet.cpp 轻型神经网络算法库,实现监督学习算法之一——反向传播算法 */#include <vector>#include <map>#include <cmath>#include <string>#include <cstdlib>#include <cstdio>#includ...

2019-09-21 17:17:16 380

原创 Windows进程通信——内存文件映射

Windows进程通信——内存文件映射系统函数CreateFileMapping()OpenFileMappingA()MapViewOfFile页属性文件读写属性实例消息生产者Share-Producer.cpp消息消费者Share-Customer.cpp系统函数CreateFileMapping()WINBASEAPI HANDLE WINAPI CreateFileMappingA(...

2019-09-15 14:41:45 311

原创 仿照STL实现矩阵matrix

仿照STL实现矩阵matrix#include <bits/stdc++.h>//STL的类都是放在std命名空间中namespace std{ //T必须为数值,或自定义类型但与数值具有同样的函数(包括但不限于重载运算符函数) template<class T/*,class Alloc = allocator*/> //各个STL版本的推荐allocat...

2019-09-14 17:26:25 484

原创 仿照STL list

仿照STL list实现insert()pop_*()push_*()erase()remove()迭代器begin()end()front()back()clear()empty()#include <bits/stdc++.h>using namespace std;template <class T>struct My_List_...

2019-09-07 17:35:50 134

原创 C++网络IP数据包监视

C++网络IP数据包监视实现main.cppbase.h实现main.cpp#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")#include "base.h"WSADATA wsa_data;SOCKET sniffer_socket = INVALID_SOC...

2019-08-31 20:00:15 1189

原创 C++搜索进程列表

C++搜索进程列表首先获取当前系统快照 HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == INVALID_HANDLE_VALUE) { MessageBox("无法获取进程列表"); return; }CreateToolhelp32Snapsho...

2019-08-30 22:20:43 480

原创 C++计算器

计算器先上代码#include<bits/stdc++.h>using namespace std;template<typename _Type>class q_stack{ //实现一个栈 #define MAX_SIZE 1024 private: _Type m_stack[MAX_SIZE]; int m_top; public: q_...

2019-08-29 21:44:19 147

原创 VC++6获取屏幕以及控制台的CDC对象

VC++6获取屏幕以及控制台的CDC对象获取屏幕的CDC对象获取屏幕以及控制台的CDC对象实例获取屏幕的CDC对象CDC* GetScreenDC(){ HDC hDC = CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL); CDC* ret = new CDC(); ret->Attach(hDC); return ret;}Create...

2019-08-28 21:40:00 782

原创 自己动手制作植物大战僵尸简单修改器(4)

自己动手制作植物大战僵尸简单修改器3搜索植物大战僵尸基址搜索植物大战僵尸基址

2019-08-27 21:43:30 1562

原创 自己动手制作植物大战僵尸简单修改器(3)

自己动手制作植物大战僵尸简单修改器3目的过程找到阳光地址获取修改阳光的指令找到自动汇编窗口找到代码注入改变阳光增量结果目的这一篇并不是制作,改变每一次捡起阳光时阳光增加量。过程找到阳光地址这是基础内容,可以上网查获取修改阳光的指令找到自动汇编窗口找到代码注入改变阳光增量将add [eax+00005560],ecx改为add [eax+00005560],100,其中1...

2019-08-26 19:16:14 2397

原创 自定义MFC控件——浮点数编辑框

自定义MFC控件——浮点数编辑框编辑框的Number属性的不足自定义浮点数编辑框编辑框的Number属性的不足编辑框的Number属性会使得只能输入数字,而不能输入负数、浮点数。自定义浮点数编辑框首先创建一个MFC Class CnumberEdit类,基类为Cedit。接着添加WM_CHAR消息。处理程序为void CNumberEdit::OnChar(UINT nChar,...

2019-08-25 21:53:19 802

原创 数据结构——可持久化Trie字典树

数据结构——可持续化Trie字典树如何可持续化流程实现如何可持续化数据结构——Trie字典树可持续化,即能访问曾经的内容,最简单的办法是每次更新直接把以前的内容复制到一个新的地方。然而,这样很浪费内存,因为曾经的节点大部分没必要再复制一遍。更好的办法是每一次都额外创建被更新的节点,而不动原来的节点,并记录每一次更新所产生的新的根节点。自己画的,有点丑流程设当前版本为history...

2019-08-24 22:03:44 312

原创 数据结构——Trie字典树

数据结构——Trie字典树结构特点实现结构特点Trie字典树常用于判断前缀。这个数据结构中每个节点表示状态,而状态转移由串实现,即状态为节点,字符为边。这是网上找的图片。实现class Trie{ private: int tot; int ch[1024][26]; //字典树节点,第一维表示节点编号(不用0,0表示没有下一个节点),第二维表示字符,结果为转移的下一个节点...

2019-08-24 21:23:37 167

原创 计算机病毒——代码自解密2

计算机病毒——代码自解密2问题改进这一次实验的基本代码编写完整代码问题上一篇博客上次的程序修改了代码区,因此改变了代码段属性,那么反病毒程序可以通过判断段属性异常来查毒(不是病毒也可能会报毒)。因此我们需要换一个段来存储并运行被加密的代码。改进.一般,我们常用的段有:代码段,可读可执行不可写数据段,可读可写不可执行堆栈段,可读可写可执行因此我们可以选择堆栈段来存储运行。堆不好操...

2019-08-22 21:51:49 697

原创 自制一个简单的Chorme浏览器插件

自制一个简单的Chorme浏览器插件manifest.jsonpopup.htmlpopup.js这里以快捷跳转解析视频网站为例manifest.json{ "manifest_version": 2, "name": "解析视频", "description": "解析各大视频网站的视频", "version": "1.0", "permissions": ["tab...

2019-08-22 21:21:54 848

原创 C++简单线程池

C++简单线程池线程安全任务的基类线程池任务处理线程我们在很多情况下会使用多线程,而计算机负担有限,因此需要使用有限的线程来完成多任务,这就需要使用线程池。线程安全我们使用互斥对象HANDLE hMutex;任务的基类class Task{ public: virtual void run(){}};线程池我们直接使用queue,因为我们为了线程安全已使用互斥对象q...

2019-08-21 21:08:34 166

原创 数据结构——线段树

数据结构——线段树简介实现方式实现简介线段树是一种能够区间查询、区间修改的二叉树。实现方式信息学竞赛中,常使用数组下表模拟指针的方式实现。然而在实际情况中,我们并不知道数据量,因此采用动态分配内存,且无法保证堆空间中有正好足够大的连续未分配内存空间,因此节点一个个的申请内存空间。实现...

2019-08-19 20:27:05 97

原创 C++编程方式——表驱动

C++编程方式——表驱动表驱动例子表驱动优缺点优点缺点表驱动适用情况表驱动例子如下代码#include <iostream>using namespace std;int main(){ char x = 'A'; int y; if(x == 'A') y = 100; else if(x == 'B') y = 80; else if(x == 'C') y ...

2019-08-18 21:51:04 709

原创 获取比Administrator还高的权限——SYSTEM权限

获取比Administrator还高的权限——SYSTEM权限设置PsTool环境常用命令以系统权限打开cmd以系统权限打开explorer(其实也是桌面)首先,我们会用到PsTool中的PsExec.exe,这个工具可以帮助我们以系统权限运行程序,甚至可以在非管理员权限的情况下操作!设置PsTool环境先下一个PsTool,解压,接着是设置PsTool环境。具体操作如下第一步->打...

2019-08-18 21:15:43 3842

原创 自制BrainFuck解析器

自制BrainFuck解析器相信你们能看懂代码的意思,因为的确很简单,唯一注意的是处理[]指令可以使用栈结构,因为[]指令正好符合栈的性质#include <conio.h>#include <stdio.h>#include <string.h>#include <stack>#include <map>using n...

2019-08-17 21:01:12 1571

原创 计算机病毒——混合数据防反汇编

计算机病毒——混合数据防反汇编混合数据防反汇编混合数据防反汇编这个内容很简单,直接上代码jmp Nextdb 8BhNext:;其余代码这样运行正常,但反汇编很可能把db 8Bh 算入指令,导致后面反汇编结果全部错误...

2019-08-16 21:51:12 185

原创 计算机病毒——Call To Pop技巧

计算机病毒——Call To Pop技巧 为什么使用Call To PopCall To Pop实例典型Call To Pop变形Call To Pop变形1变形2W32/Kris中的应用(来自《计算机病毒防护技术》一书)为什么使用Call To Pop计算机病毒需要将自己插入宿主中,绝对地址难以获取,运行时虽然我们不能读写EIP,但是call指令会将当前指令的下一指令地址压入栈,方便获取。...

2019-08-16 21:41:56 284

原创 计算机病毒——代码自解密

计算机病毒——代码自解密 原理实现第一个程序代码获取加密后的内容修改工程属性(可选)美化源代码原理获取内存中代码段中需解密的片段,并解密。实现为了方便,使用xor进行加解密,并使用密钥为8。需要MASMPlus和W32Dasm。第一个程序代码这里的代码并没有解密,但却在运行时解密,因此会运行时错误。.386.model flat, stdcalloption casemap :n...

2019-08-14 16:06:05 2316

原创 自己动手制作植物大战僵尸简单修改器(2)

自己动手制作植物大战僵尸简单修改器2 地上物品自动拾取地上物品自动拾取上次的内容自己动手制作植物大战僵尸简单修改器地上物品的地址是 0x006A9EC0 + 0x768 + 0xe4 + 0xd8*i,假设为addr(addr+0x18)为该物品是否可见,0为不可见,1为可见(addr+0x50)为该物品是否自动收集,1为自动收集地上有效物品的数量的地址是 0x006A9EC0 + 0...

2019-08-12 21:45:39 2912 2

原创 自己动手制作植物大战僵尸简单修改器

自己动手制作植物大战僵尸简单修改器获取植物大战僵尸进程改变阳光数改变金币数CD循环清零运行结果获取植物大战僵尸进程我用的是植物大战僵尸汉化第二版,基址是0x006A9EC0编译器是VC++6.0(注:未经说明且不是函数定义的代码添加于按钮处)声明基址const int baseaddr = 0x006A9EC0;首先是获取植物大战僵尸进程 PROCESSENTRY32 pe32;...

2019-08-04 22:52:26 6129

空空如也

空空如也

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

TA关注的人

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