自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【内核反调试】DebugPort的清零处理

内核状态下DebugPort周期清0。

2023-11-04 09:08:41 167 1

原创 2021腾讯游戏安全技术复赛pc客户端安全浅析(二)

看到好多人都在做,菜鸟跟风,有错请指正本系列分为三部分:一、剥离dll 二、分析自瞄思路 三、自写代码赛题下载地址: https://gslab.qq.com/html/competition/2021/race-final.htm ,选择 PC客户端安全 下载。12.分析DLL  已知游戏是通过按下鼠标右键实线自瞄,将dll拉到IDA,找到注册热键的GetAsyncKeyState函数,双击按X查找引用。  发现只有一个地方用到了GetAsyncKeyState,判断5050处为自瞄实现

2021-04-17 12:54:17 530

原创 2021腾讯游戏安全技术复赛pc客户端安全浅析(一)

看到好多人都在做,菜鸟跟风,有错请指正本系列分为三部分:一、剥离dll 二、分析自瞄思路 三、自写代码1.准备工作  打开游戏,打开hack.exe,作弊功能未实现。2.初步探索  打开IDA,拉入hack.exe,看到15E0处有对文件进行读写的操作,判断此处为验证函数。3.找到根源  F5生成伪代码,可以看到在 CreateFileA 处有判断文件是否存在。4.动态调试  打开x64dbg,定位到15e0处动态调试得出文件名为 hack.dat。  在根目录自己建立一个名为

2021-04-17 01:06:49 979

原创 Abbott的复仇(Abbott‘s Revenge,ACM/ICPC World Finals 2000,UVa 816)

这题算是bfs里比较复杂的一个题目了,一开始有点晕,还是看了紫书的解才写出的代码。#include<iostream>#include<queue>#include<cstring>using namespace std;struct Node { int r, c, d; string route; Node(int _r, int _c, int _d) { r = _r; c = _c; d = _d; route = ""; }

2020-08-05 02:13:17 280

原创 油田(Oil Deposits,UVa 572)

    经典的深度优先算法,第三个id是统计油田个数的,当然可以设置个变量来计次,但是main里面的循环就得加一个{花括号},不是很舒服#include<iostream>#include<cstring>using namespace std;char Deposit[101][101];int n, m, visited[101][101];bool DFS(int x,int y,int id) { if (x >

2020-07-25 21:07:17 168

原创 四分树(QuadTrees,UVa 297)

DRAW函数的参数里分别是字符串、下标指针、x位置、y位置、Rect的边长在涂黑的过程中要注意i<x+side,不能等于(将坐标和边长代进入想想就能明白了)。#include<iostream>#include<CString>using namespace std;const int RecSide = 32;int Rect[33][33],sumBlack;char s[1024+1];void draw(char *s,int& p,int x,

2020-07-25 14:34:01 267

原创 下落的树叶(The Falling Leaves,UVa 699)

比书上的少了个初始化函数,没差多少。#include<iostream>using namespace std;int sum[10086];bool build(int p) { int v; cin >> v; if (v == -1) return false; sum[p] += v; build(p - 1); build(p + 1); return true;}int main() { int p = 5043, Case = 0; m

2020-07-23 18:58:00 147

原创 天平(Not so Mobile,UVa 839)

字数上说比较重要,那就条条代码加注释。#include<iostream>using namespace std;int solve() { int Wl, Dl, Wr, Dr; cin >> Wl >> Dl >> Wr >> Dr; if (!Wl) {//判断是不是为0,为0则递归,进行下一轮solve Wl = solve();//Wl为solve返回值,子天平重量,如果子天平不平衡,则为-1 if (!Wl) {

2020-07-23 18:26:34 119

原创 树(Tree,UVa 548)

给一颗点带权的二叉树的中序遍历和后序遍历,找一个叶子使其到根的路径上的权和最小,输出。先还原树,再深度优先求值。#include<iostream>#include<sstream>#include<algorithm>using namespace std;int len;int inOdr[10086], postOdr[10086];int lch[5043], rch[5043], mins,bestr;bool read_list(int *a

2020-07-23 17:48:53 133

原创 树的层次遍历(Trees on the level,Duke 1993,UVa 122)

在释放内存那个函数出了点问题,不知道问题具体出在哪儿,不改了。#include<CStdio>#include<CString>#include<memory>#include <queue>using namespace std;struct Node { bool isvalued; int v; Node *left, * right; Node() :isvalued(false), left(NULL), right(NULL){

2020-07-23 09:52:28 201

原创 小球下落(Dropping Balls,UVa 679)

图:所有叶子深度相同的二叉树

2020-07-20 20:48:28 171

原创 移动盒子(Boxes in a Line,UVa 12657)

想了半天没想明白哪里出错了.早起再改吧。#include<CStdio>const int maxn = 10001;int Right[maxn],Left[maxn];int main(){ int T=10,n,m,Case=1; bool j=false; while(scanf("%d%d",&n,&m)==2 && T--){ for(int i=1;i<=n;i++)

2020-07-16 21:19:30 236

原创 破损的键盘(Broken Keyboard(a.k.a. Beiju Text),UVa 11988)

第一种方案按照紫书上的方案,第一种是利用数组来储存位置模拟指针。#include<cstdio>#include<cstring>const int maxn = 100000 + 5;int last, cur, next[maxn];char s[maxn];int main(){ while(scanf("%s",s+1)== 1){ int n = strlen(s+1); last= cu

2020-07-16 18:05:30 494 2

原创 铁轨(Rails,ACM/ICPC CERC 1997,UVa 514)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-07-16 16:09:23 157

空空如也

空空如也

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

TA关注的人

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