自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编译原理实验-词法分析

用c++实现编译原理的词法分析实验

2020-07-14 23:23:09 693

原创 VMware增加虚拟机磁盘大小

虚拟机磁盘空间突然不够,扩充空间踩坑记录

2020-06-01 00:12:49 2209

原创 攻防世界pwn(warmup&welpwn)

攻防世界pwn题题解记录

2020-05-21 10:35:48 429

原创 buuctf解题记录

buuctf部分pwn题题解

2020-05-21 10:29:54 580

原创 pwn-新手练习区

when did you born直接在IDA中分析,查看主逻辑:主逻辑不复杂,程序有两处输入,注意力集中在后一个输入,第二次输入时,只要覆盖v5的值,使其等于1926就能获取flag。其中,var_20对应变量v4,var_18对应变量v5,构造payload覆盖v5的值,获取flag:hello pwn同样的,放入IDA分析主逻辑:程序逻辑简单,而且函数s...

2019-09-26 20:32:46 335

原创 reverse-BUUCTF

1、easyreida中搜索字符串即可得到flag:2、helloword拿到是apk文件,jeb中打开,即可得到flag3、reverse1elf文件,IDA中打开,搜索字符串定位到判断函数:查看伪代码:__int64 sub_1400118C0(){ char *v0; // rdi signed __int64 i; // rcx...

2019-08-26 22:18:52 1316

原创 crypto-writeup

数据库密码题目描述:数据库密码经由md5加密后存储,md5字串长度为32个字符(128位),但题目中给的是35位仔细观察发现,字母Q、X、V并不是md5值所包含的字母,去除后刚好32个字符(128位),修改后的字串在网站上在线解密,得到flag:rot大法好题目描述:没有什么特殊的,直接rot13解密:解密后发现是逆序,倒过来就是flag:奇怪的汉字...

2019-07-19 22:56:04 395

原创 misc-流量分析&&女神的告白&&捉迷藏

流量分析拿到的是一个流量包,直接追踪tcp流即可得到flag:女神的告白zip格式的加密压缩包,由题目可知密码位数大于6,且开头为meimei:用ARCHPR破解,因为知道密码开头部分,所以采用掩码攻击的形式:运行软件即得到解压密码:解压后即可得到flag捉迷藏题目描述很有意思,拿到的是一个png的图片和txt文件,用winhex查看图片,发现图...

2019-07-18 19:46:00 585

原创 misc-扫扫出奇迹&&光阴似箭&&杰斯的魔法

扫扫出奇迹拿到的是一个二维码:显然直接扫是没有用的,对比普通的二维码很容易发现题目中的二维码问题出现在颜色上,用StegSolve分离颜色,即可得到正常的二维码:这次扫描即可得到flag光阴似箭拿到的是动图,图片内容即包含flag,同样用的是StegSolve,分理出帧即可写出flag:不过这里需要注意的是得到的flag是逆序的杰斯的魔法得到的是一句j...

2019-07-18 19:21:34 174

原创 crypto-新手练习区

base64简单的base64解码,在线转码即可,也可以用python解码:import base64flag=base64.b64decode('Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9')Caesar凯撒密码,简单的移位密码,分析可知是单一的移位加密,密钥key=12,直接上脚本:str1='oknqdbqmoq{kag_t...

2019-07-17 10:36:48 1345 1

原创 web-新手练习区

view source直接翻看源码得到flag:get post两种传参方式,get可直接从地址栏中传递参数,post需要在控制台中传参:接着是用post传递:得到flag:robotsrobots协议,关于爬虫的,地址栏直接构造robots.txt,得到flag地址:访问即得到flag:backup备份文件,构造index....

2019-07-17 10:25:50 245

原创 web-PHP黑魔法&&我想要钱

php黑魔法这道题两个知识点:备份文件;index.php~ php弱类型。题目提示有源码,但点击进去后并未发现有用的源码:查看备份文件:index.php~得到php源码:<!DOCTYPE html><!--html lang="zh-CN"><head> <meta http-equiv="Conten...

2019-07-15 11:31:14 492

原创 misc-我可是黑客&&假装安全

1 我可是黑客拿到的是一张图片,先保存下来,查看详细信息,但没什么有用信息,直接放进winhex,发现flag:2 假装安全拿到的同样是一张图片,保存后查看详细信息,没有有用信息,放进winhex里:发现有压缩包,用binwalk验证一下:猜想正确,直接用foremost提取出来。得到一个压缩包:尝试解压,但发现需要密码:在winhex中查看...

2019-07-15 10:48:47 331

原创 reverse-crackme2

这道题逻辑比较简单,放入ida简单分析就能得到flag定位主函数后查看伪代码:int main_0(){ signed int i; // [esp+54h] [ebp-14h] signed int v2; // [esp+58h] [ebp-10h] char *v3; // [esp+5Ch] [ebp-Ch] char *v4; // [esp+60h] [eb...

2019-07-14 22:16:22 293

原创 reverse-crackme1&&web(呱呱呱&&膜ctf?&&机器蛇)

这道题的flag让人觉得很意外,或者说把问题复杂化了。下面是本题的题解:拿到的是一个32位的pe文件,直接放进IDA,定位主函数:int main_0(){ int v0; // eax signed int v2; // [esp+50h] [ebp-18h] _DWORD *v3; // [esp+54h] [ebp-14h] signed int i; // [e...

2019-07-13 09:51:44 223

原创 reverse-暗恋的苦恼

题目描述如下:根据题目描述可知此题的目的是让分析程序加密过程,然后根据密文和密钥还原出明文。将得到的pe文件放入IDA,定位到关键处:查看伪代码,很容易发现加密函数:跟踪进去,发现加密过程的两个关键函数:_BYTE *__cdecl sub_401240(char *a1, char *a2){ _BYTE *v3; // [esp+50h] [ebp-14...

2019-07-11 11:59:02 141

原创 reverse-跳跳跳

本题拿到的是一个32位的pe文件,直接放入OD中,查看字符串:直接定位到第一处判断:在这里下断,(如果想要修改该程序,可以将此处的jnz修改为jz,或者直接nop掉,我这里的思路是下断后再动调)以此类推,在每一个判断处下断:因为要置六次,所以这里有六个断点,由字符提示可知该程序在运行之后会自动退出,所以在下一个断点,以防程序自动退出:断点下好后,运行程序,每次到...

2019-07-11 11:28:44 135

原创 Reverse-新手练习区-logmein

拿到得是二进制文件,直接丢进IDAvoid __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ size_t v3; // rsi int i; // [rsp+3Ch] [rbp-54h] char s[36]; // [rsp+40h] [rbp-50h] int v6; // [rsp+64h] ...

2019-06-06 22:31:27 1104 4

原创 Reverse-新手练习区-simple-unpack&&insanity

simple-unpack拿到文件先查壳,发现是upx的壳,elf文件直接放到kali里面构造命令脱壳脱壳后的文件丢进IDA,明文flag,insanity拿到的同样是elf文件,无壳,直接放到IDA,定位主函数逻辑简单,没啥好说的,直接跟踪strs,得到flag...

2019-06-01 23:41:55 1963 2

原创 Reverse-新手练习区-open_source

#include <stdio.h>#include <string.h>int main(int argc, char *argv[]) { if (argc != 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if...

2019-06-01 23:08:39 419

原创 Reverse-新手练习区-Hello, CTF

拿到的是可执行文件,运行一一下看看让输入serial,直接到ida,搜索字符“please input”到达后,f5查看伪代码大致逻辑为将用户输入的字符单个与v13字串单个进行比对,然后判断是否输入正确,v13对应的字串是16进制,直接用python转换过来即可s=bytes.fromhex("437261636b4d654a757374466f7246756e")...

2019-04-24 18:04:19 3302

原创 Reverse-新手练习区-game

拿到题目运行界面如下:ida中打开看起来很复杂,直接到OD单步跟一下搜索字符串,在关键点下断:发现程序在如下几处断点处会跳转进而重新输入,所以这里将这些跳转全部nop掉保存后运行程序,得到flag...

2019-04-24 17:51:46 285

原创 Reverse-新手练习-re1

拿到的是可执行文件,没什么好说的,放到OD中直接搜索字符串得到flag在IDA中稍微复杂点主函数中定位变量v6反过来写出flag即可

2019-04-24 17:42:30 429

原创 python实现扩展的欧几里德算法

扩展的欧几里德算法可用于求解a mod b的逆元,而逆元求解在RSA加密算法中是不可缺少的一步算法本身并不复杂,根据伪代码就很容易能用python实现伪代码如下:python实现如下(递归求解):A=[0,1]N=[1,0]A.append(int(input('Please input a:')))N.append(int(input('Please input n:...

2019-04-01 10:57:30 5083

原创 C++中类类型的数组

前些天看到一段以前没见过的类实例化的方式,自己琢磨了一下有了自己的理解。先看看这种实例化的方式:#include<iostream>using namespace std;class A{public: static int b; int a; A(int t=2):a(t){b++;} void print(){cout<<a<&l...

2018-12-29 21:00:10 20424 2

原创 同余式判断等式(C++的实现)

从十进制数的定义来看,任意一十进制数都可以按全展开成N*10^n的形式,而对任意正整数i有:10^i≡1(mod3), 10^i≡1(mod9)所以在判断某个等式(乘法,加法,减法计算)是否成立时,可以将等号两边的十进制数按权展开,再判断等式两边是否模9(或者模3)同余,进而判断等式是否成立。利用这一性质也可以判断某一整数是否能被3或者9整除。对于二进制、十六进制表示的正整数也可...

2018-12-27 22:53:58 1502

原创 单链表的就地逆置(蛮力法思想)

先看一下题目:以单链表做存储结构,写一实现线性表的就地逆置算法两种思路:1、采用头插法新建单链表时,得到的单链表数据域所组成的序列刚好是输入序列的逆序,所以这里的单链表的就地逆置可以考虑头插法实现,即将数据域第一个结点后的结点取出,再将取出的结点插入到头结点之后,重复操作,直至原第一个结点到达最后(next指针为空)2、设置标志位,在结点的数据域添加flag标志。逆置操作其实就是把第i...

2018-12-22 17:57:35 1165

原创 顺序表的就地逆置操作

题目:以顺序表做储存结构,写一实现线性表就地逆置的算法C++实现如下:#include <iostream>using namespace std;class SeqList{public: SeqList(int a[], int n);//初始化顺序表 void Inversion(int n);//就地逆置 void PrintList(int n);//...

2018-12-20 23:13:37 4657

原创 单链表中的删除操作

题目:设单链表以非递减有序列,设计算法实现在单链表中删除值相同的多余结点C++是实现如下:#include <iostream>using namespace std;struct Node{ int data; Node *next;};class LinkList{public: LinkList();//初始化空链表 LinkList(int b...

2018-12-20 22:37:21 3996

原创 队列的入队出队操作(C++循环链表)

队列:只允许在一端进行插入操作,在另一端进行删除操作。允许插入(入队、进队)的一段端称为队尾,允许删除(出队)的一端称为队首(队头)。队列具有先进先出的特点。题目:设计以不带头结点的循环链表表示队列,并且只设置一个指针指向队尾结点,但不设头指针。设计相应的入队和出队操作的算法。C++的实现:#include<iostream>using namespace st...

2018-12-19 23:04:16 5170

原创 二叉树采用顺序存储结构时的前序遍历

题目:一颗具有n个结点的二叉树采用顺序储存结构,编写算法对该二叉树进行前序遍历C++实现如下:#include<iostream>using namespace std;class SeqTree{public: SeqTree(int n) { Creat(n); }//构造二叉树,采用顺序表储存数据 void Creat(int n); void PreOr...

2018-12-19 22:40:56 7793

原创 二叉树前序、中序、后序三种遍历(C++)

前序遍历递归算法:void PreOrder(Node *bt)//形参为结构体类型的指针{ if(bt==NULL)return;//递归调用的结束条件 else{ cout<<bt->data;//访问根结点的data值 PreOrder(bt->lchild);//前序递归遍历bt左子树 PreOrder(bt->rchi...

2018-12-18 23:04:57 8768 2

原创 图中以邻接矩阵中两种遍历方法以及删减顶点和边的操作(C++)

图的广度优先遍历:从图中某顶点v出发进行广度优先遍历的基本思想是:(1)访问顶点v;(2)依次访问v的各个未被访问的邻接点,v1,v2,v3……,vk;(3)分别从v1,v2,……,vk出发依次访问它们未被访问的邻接点,并使“先被访问顶点的邻接点”先于“后被访问顶点的邻接点”被访问。直至图中所有与顶点v有路径相通的顶点都被访问到。广度优先遍历图是以顶点v为起始点,由近至远,依次...

2018-12-18 22:13:42 4628

原创 C++实现简单批处理文件的生成

批处理文件(百度百科)这里用到的是一个计时关机指令:shutdown -s /t 300(这里倒计时300秒)#include&lt;fstream&gt;#include&lt;iostream&gt;using namespace std;int main(){ char name[]="d:\\funny.bat", something[]="shutdown -s /t...

2018-12-15 19:14:04 2081

原创 顺序查找C++实现(哨兵设置在数组下标高端)

设置“哨兵”,哨兵就是待查值,将它放在查找方向的“尽头”处,免去了在查找过程中每一次比较后都要判断查找位置是否越界,从而提高查找速度。顺序查找伪代码描述如下:1、设置哨兵;2、初始化查找的起始下标i=n;3、若r[i]与k相等,则返回当前i的值;否则,继续比较前一个记录;c++实现如下:#include <iostream>using namespace...

2018-12-15 19:00:05 5802 3

原创 直接插入法排序(c++单链表的实现)

具体排序过程是;1、将整个记录序列划分为有序区和无序区,初始时有序区为待排序记录中第一个记录,无序区包括所有剩余待排序的记录。2、将无序区的第一个记录插入到有序区的合适位置中,从而使无序区减少一个记录,有序区增加一个记录。3、不断重复2,直到无序区只剩下一个记录为止。#include <iostream>using namespace std;const in...

2018-12-14 22:45:45 5085 2

原创 简单选择排序(C++单链表实现)

具体实现过程为:1、将整个记录序列划分为有序区和无序区,初始时有序区为空,无序区含有待排序所有记录。2、在无序区中选取关键码最小记录,将它与无序区中的第一个记录交换,使得有序区扩展了一个记录,同时无序区减少了一个记录。3、不断重复2,直到无序区只剩下一个记录为止。此时所有记录已经按关键码从小到大的顺序排列。c++单链表实现如下:#include<iostream...

2018-12-14 22:36:17 10632 5

原创 单链表实现Eratosthenes筛选法

对于任意正整数N,Eratosthenes筛法可表示如下:第1步,找出小于等于√N的全部素数:p1、p2、p3、…pm。第2步,在1~N中分别划去p1、p2、…pm全部倍数(除了他们自己本身)。第2步完成后剩下的整数除1外就是不超过N的全部素数。简而言之,筛选原理如下:对于一个正整数a<=N,如果素数p1、p2、…、pm(小于等于√N)都不整除a,则a是素数。下面是C++...

2018-12-14 16:05:36 615 1

原创 API断点(二)

OD中的系统领空和程序领空(个人理解)系统领空:载入OD的程序在编写时会调用一些系统函数,OD动态调试时遇到这些调用语句,就会跳转到系统中相应的函数所在位置即系统领空。程序领空:程序载入OD后,执行程序每一个语句的地址区域。如何区分程序领空和系统领空:1、看地址:地址特别大的属于系统领空,地址比较小的(一般以00开头)属于程序领空。上图中,地址都是以76开头,地址十分大,那...

2018-11-15 20:19:52 764

原创 PE文件中对DOS存根的一些想法

首先先了解一下PE文件:PE(Protable Executable),即可移植的执行体。在Windows操作系统平台下,所有的可执行文件如EXE文件、DLL文件、SYS文件、OCX文件、COM文件等均使用PE结构。PE文件结构包含的结构体有DOS头、PE标识、文件头、可选头、目录结构、节表等。这篇文章主要是对DOS头的一些想法,DOS头主要分为两部分即“MZ头部”和“DOS存根”。M...

2018-11-13 21:38:11 1243

空空如也

空空如也

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

TA关注的人

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