自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(259)
  • 资源 (1)
  • 收藏
  • 关注

原创 简单的代码生成程序 SDUT 【编译原理】C++

目录Description代码:分析:Description通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有 > 空寄存器 > 内存中存有 > 以后不再使用 > 最远距离使用Input单组输入,给定输出的三地址代码的个数和寄存器的个数.所有的变量为大写字母,寄存器的数量不超过9Output参照示例格式输出,不需要将最后的寄存器中的值写回内存,不再使用变量不用写回内存Sample Input

2022-05-15 19:17:39 873 1

原创 DAG优化 SDUT 【编译原理】 C++

目录Description代码:分析:Description大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。Input输入第一行为一个整数n(n < 100),表示该组输入的表达式的个数之后n行为表达式,每个变量为一个字母,表达式仅包括二元运算 + - * / 例如:A=B+COutput通过构造DAG图,进行代码优化,只需要保留AB,删除无用变量,删除变量时,尽量保留最早出现的变量。PS:保证AB的值不同。sam...

2022-05-14 18:14:09 3840 3

原创 N - 翻译布尔表达式 SDUT C++

目录代码:分析:代码实现思路:☆错误ERROR:代码:#include <bits/stdc++.h>using namespace std;vector <string> ans;//ans中存放的是每个只含and的子bool表达式,在下面分析中有详细说明,这里的判断符长度可能不同,所以用vector与string组合数据结构的正好。int main(){ string boolStr, str; getline(cin, boolSt..

2022-05-01 21:33:42 1685

原创 SDUT 表达式语法分析——递归子程序法

目录Description题目分析代码Description递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导。请根据下面的表达式LL(1)文法,构造递归子程序,完成对表达式的语法分析。表达式文法如下:E→TGG→+TG | εT→FSS→*FS | ε..

2022-03-26 15:56:16 631

原创 C 走迷宫 SDUT

#include<stdio.h>#include<string.h>struct node{ int x, y;}ls[400];int dx[] = {0,-1,0,1}, dy[] = {-1,0,1,0};int bj[16][16], map[16][16];int m, n, step, sum, xz, yz;void dfs(int ...

2022-03-22 14:49:31 299

原创 小C语言--词法分析程序SDUT

Description小C语言文法<程序>→<main关键字>(){<声明序列><语句序列>}<声明序列>→<声明序列><声明语句>|<声明语句>|<空><声明语句>→<标识符表>;<标识符表>→<标识符>,<标识符表>|<标识符><语句序列>→<语句序列><语句&gt

2022-03-09 22:14:45 1091

原创 BUUCTF 刷新过的图片 writeup

下载后是一张图片,但是这张图片实在有点。。。这里题目是刷新过的图片,刷新是F5键呀,这就是一个提示,图片是F5加密,这里如果不知道这种加密就比较难办。kali:在F5-steganography路径下,执行下面指令。解密后就多了一个output.txt文件。看一下,发现是乱码。用010看一下,发现是压缩包(文件头是50400102)。改一下后缀,解压,这里我忘记解压时有没有输入密码的弹窗,如果有的话应该是伪加密(找到504b后面的14 00后面的两组十六进制数,这就是加密的标记位)。解压后就是flag。

2021-10-15 13:17:15 1255 2

原创 BUUCTF 面具下的flag writeup

下载后是一张图,010打开后后面是压缩包。直接分离出来,解压时发现需要密码,但是暂时找不到密码提示,那就在010里搜索504b,查看每一个后面是否有14 00,这个后面就是加密的标识,发现其他都是00 00,就一个09 00,显然就是伪加密了(如果都是09 00, 可能就不是伪加密了,但这是可能,就算都是09 00也可能是伪加密),手工改成00 00。解压后是一个wmware的虚拟磁盘文件。这个可以再kali里解压。解压后,flag分在了两个文件里,key_part_one和key_part_

2021-10-15 12:47:59 414

原创 BUUCTF 九连环 writeup

下载后是一张图片,用kali找到里面有文件。用binwalk进行分离。这里分离有有一个asd文件夹,还有一个压缩包,这个压缩包看看里面的内容发现就是asd文件夹里的东西。这里就没有必要解压这个压缩包了,当然要解压也没问题,但是解压时需要密码,在010edit里面找到最后,发现是一个伪加密。这里为什么说是伪加密呢!压缩包伪加密这里可以查找504b的十六进制,然后看看每一个504b后面的14 00后面的就是加密标记。把01改成00就可以,08也可以一起改成00。改完就可以解压了(这里注意:只有伪加密的情况

2021-10-15 11:50:36 395

原创 BUUCTF 被劫持的神秘礼物 writeup

原来以为下载有是一个稀奇古怪的文件,但是这就是一个数据包文件直接用wireshark打开就行了,当然如果没有做过web题目或者没有见过,这个文件后缀确实有点奇怪。打开后,既然是找账号密码,那当然是找http流量包,为什么呢!之前做过web题目就知道了,我们到时找个包,找个包一般就是http,然后再这个包里改一下用户名和密码。所以这里的也是在http包中的,直接过滤一下就好了,然后其中有一个login的包,显然就是这个了。然后选中这个包右键->追踪数据流->http流,然后找到name和Wo.

2021-10-14 22:16:31 282

原创 BUUCTF webshell后门 writeup

下载后是一些PHP文件,既然是webshell后门就用D盾扫描一下。扫描出来的有两个级别5的,但是题目既然说是后门,其中有一个说明里就是已知后门,我就想先看看这个,结果这里面都是一下base64编码的东西,解码后并没有找到MD5的passWord,所以只能再看看第一个,结果一下就开到了pass的值是一个MD5格式的。那这个就是flag了。$pass = 'ba8e6c6f35a53933b871480bb9a9545c'; //angel...

2021-10-11 22:03:21 713

原创 BUUCTF 来首歌吧 writeup

下载后是一个音频文件,先听一下,啥也听不出来,用MP3Stego好像不行,那就扔到Audacity里面看一下。这里上面显然使用东西的,但是好像是摩斯密码,但是又好像不是,这里需要按住Ctrl+滚轮放大。原来的时候每一小段其实就是一个摩斯密码,但是因为太小所以就成一段了,放大后很明显是一组一组的长短小段,可能就是摩斯密码,但也有可能是01串,但是01串应该不会有间隔,所以十有八九是摩斯密码。莫斯密码是".-"串,这里短的是点,长的是上划线。..... -... -.-. ----. ..--- ..

2021-10-11 21:56:31 492

原创 BUUCTF 后门查杀 writeup

这里题目中说了,flag是密码,那就可以挨个找password这个关键字,但是真正的flag不是password,而是pass有一点点坑。使用D盾进行扫描文件夹,就可以找出网站的后门。flag就在级别最高的那个文件里,这里有路径,找到这个文件,就可以得到flag。...

2021-10-11 19:50:09 746

原创 BUUCTF 另一个世界 writeup

解压后得到一张图片,直接用010editor打开,再有后面发现一串01数字,一开始我以为是画一个二维码,结果发现长度为56,所以不是二维码,而是简单的二进制数,直接转化为16进制,然后转为字符串。import binasciiflag = hex(int('01101011011011110110010101101011011010100011001101110011', 2))print(flag)flag = binascii.a2b_hex('6b6f656b6a3373')print(

2021-10-10 17:06:14 374

原创 BUUCTF 被嗅探的流量 writeup

这里下载后就是一个包,用wireshark打开,因为需要寻找文件类型,所以就找POST提交方式的包。flag就在第二个包里。

2021-10-10 16:15:48 206

原创 BUUCTF zip伪加密 writeup

zip伪加密原理及操作这里直接把14 00 后面的09改成00就可以了,这个09就表示压缩包加密了,解压的时候就会弹框输入解压密码。

2021-10-10 15:41:50 235

原创 BUUCTF rar writeup

直接用工具暴力破解,解压就得到flag。

2021-10-10 15:31:40 169

原创 BUUCTF LSB writeup

题目说的很清楚,是一个lsb隐写。直接用stegslove打开。然后按动这个尖括号,查看每个颜色图层。这里发现红绿蓝三色的最低位的顶部明显不对。所以直接选择红绿蓝三色的最低位,点击preview。查看头部发现这是个png图片。点击save bin,保存为png图片形式。然后得到下面的二维码,扫描就得到flag。这里需要把括号外面的换成flag,题目中明确说了。...

2021-10-10 15:22:28 208

原创 BUUCTF 基础破解 writeup

打开后是一个加密的压缩包,很显然题目中说了密码是一个四位数字,所以可以使用暴力破解的方法。然后解压借的到了flag。

2021-10-10 15:11:15 241

原创 BUUCTF N种方法解决 writeup

下载后是一个可执行文件,但是又是在misc里的题目一般先丢到010Editor里,果然是一个图片的base64的编码。这里有很多方法,可以使用在线工具,或者使用一个HTML里的img标签。再有浏览器打开就可以直接解析。解析出来是一个二维码,可以使用手机扫码,也可以使用工具。...

2021-10-10 14:55:03 537

原创 BUUCTF Alice与Bob writeup

题目描述:密码学历史中,有两位知名的杰出人物,Alice和Bob。他们的爱情经过置换和轮加密也难以混淆,即使是没有身份认证也可以知根知底。就像在数学王国中的素数一样,孤傲又热情。下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。 注意:得到的 flag 请包上 flag{} 提交这里的大整数虽然很大,但是需要找它的两个因数,所以暴力的算法也只有根号n的时间复杂度。跑出来的结果是:101999 96

2021-10-09 17:30:33 570

原创 BUUCTF 丢失的MD5 writeup

import hashlib for i in range(32,127): for j in range(32,127): for k in range(32,127): m=hashlib.md5() m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM') des=m.hexdigest() if 'e9032' i

2021-10-09 16:50:06 645 1

转载 Linux学习笔记5——拷贝和移动文件

我们介绍三个有关的命令命令对应英文作用tree[目录名]tree以树状图列出文件目录结构cp源文件 目标文件copy复制文件或者目录mv源文件 目标文件move移动文件或者目录/文件或者目录重命名1.treetree命令可以以树状图列出文件目录结构选项-d 表示只显示目录2.cpcp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令选项含义-f已经存在的目标文件直接覆盖,不会提示-

2021-09-26 16:59:36 223

转载 Linux学习笔记4——创建和删除

1.touch如果文件不存在,可以创建一个空白文件如果文件已经存在,可以修改文件的末次修改日期如1a.txt原来存在,touch后修改日期就变化了。2.mkdir创建一个新目录选项-p表示可以递归创建目录新建目录的名称不能与当前目录中已有的目录或文件同名。如用-p递归的创建a1/b1/c1/d1/文件夹命令为mkdir -p a1/b1/c1/d1或 mkdir -p ~/桌面 a1/b1/c1/d13.rm删除文件或目录,且删除之后不能恢复。参数含义-f

2021-09-26 16:51:58 138

转载 Linux学习笔记3——cd命令

1.cdcd英文单词change directory的简写,其功能为更改当前的工作目录。注意:Linux所有的目录和文件名都是大小写敏感的命令含义cd切换到当前用户的主目录(/home/用户目录)cd ~切换到当前用户的主目录(/home/用户目录)~就是表示当前用户的主目录cd .保持当前目录不变cd …切换到上级目录cd -可以在最近两次工作目录之间来回切换如:在~目录下pwd,输出/home/alexlu就是当前用户的主目录,说明~

2021-09-26 16:45:23 108

转载 linux学习笔记2——ls命令说明

ls是list的简写,功能是列出目录的内容,类似于DOS下的dir命令。这篇学习笔记主要介绍ls命令相关知识。一.Linux下文件目录的特点蓝色字体代表文件夹,白色字体代表文件1.Linux文件或目录最多有256个字符2.以“.”开头的文件是隐藏文件,需要用指令 ls -a 才能显示3.“.”表示当前目录—— cd . 表示打开当前目录4.“…”表示上一级目录——cd … 表示打开上一级目录二.ls常用选项参数含义-a显示指定目录下所有子目录与文件,

2021-09-25 17:21:01 643

转载 Linux使用笔记1 基本终端指令

Linux学习笔记,自己学一点就记一点,好记性不如烂笔头。本篇学习笔记介绍最常用的Linux终端相关命令。终端快捷键1.Ctrl + Alt + t 打开终端2.Ctrl + Shift + = 放大字体3.Ctrl + - 缩小字体4.Tab 自动补齐命令或文件名5.Ctrl + c 退出当前命令终端常用命令1.ls list 查看当前文件夹下的内容2.pwd print work directory 查看当前所在文件夹3.cd[目录名

2021-09-25 17:11:22 140

原创 SDUT java 单词和字符鉴别器

Description读入包含若干个单词的文本数据,将所有内容转换为大写,统计每个单词与该单词的出现次数。此外,还需要统计每个字符及其出现次数(不包括空格)。Input若干行的单词,以空格作为分隔符,每行单词数量不定。遇到一行数据“0000”,读取数据结束。(字符串“0000”不计入上述统计数据)Output全部数据读取完成,输出如下信息:(1)出现次数最多的单词及其出现次数;若次数相同,输出字典序最大的单词。(2)出现次数最少的单词及其出现次数;若次数相同,输出字典序最小的单词。(.

2021-01-21 10:31:59 1258 5

原创 SDUT java - 手机键盘

Description大家应该都见过那种九键的手机键盘,键盘上各字母的分布如下图所示。当我们用这种键盘输入字母的时候,对于有些字母,往往会需要按多次键才能输入。比如:a, b, c 都在“2”键上,输入 a 只需要按一次,而输入 c 需要连续按三次。连续输入多个字母的规则如下:1、如果前后两个字母不在同一个按键上,则可在输入前一个字母之后直接输入下一个字母,如:ad 需要按两次键盘,kz 需要按 6 次。2、如果前后两个字母在同一个按键上,则输入完前一个字母之后需要等待一段时间才能输入下一个字

2020-11-27 19:41:31 138

原创 SDUT C++ 7-11 悄悄关注 (25分)

新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。之后给出该用户点赞的信息:首先给

2020-11-07 11:07:22 235

原创 2397 分类游戏 java SDUT

Description分类游戏很适合于对儿童的教育,可以让他们通过游戏了解更多的事物,学习更多的知识。我们要实现的分类游戏很简单,是基于单词的分类游戏。我们给出两个或三个类别,比如说单词的首字母,有以B开头的字母和以C开头的字母两类,也可能有三类。然后给出若干个图片代表这两种分类里面的事物,这样孩子可以把下面的物品拖到对应首字母的篮子里,对了加分,错了减分。作为写程序的人怎么可以忍受,于是你决定写一个外挂,瞬间秒杀,直接满分。假设你已经获得了数据,虽然有时候这是最难的部分,但今天我们只考虑外挂要实现的

2020-11-05 17:52:58 145

原创 SDUT java 字符串扩展

DescriptionTom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要.

2020-10-30 20:02:45 251 4

原创 c++ H - Half Nice Years Gym - 101840H SDUT

题目大意:有n个区间[L,R],找出满足下满条件的最大的数:1. 将该数平分成两部分,如果该数的位数是奇数则让右侧部分比左侧部分多一位,如123456分成123和456两部分,12345分成12和345两部分,我们把这两部分分别叫pre和past。2. 使得这两部分的最大公约数大于1.解题思路:如果直接暴力解决从R开始一个一个判断到L,知道找到符合题意的,可能会超时。这里需要用到素数的部分内容, 区间最大为11-1e13,所以平分成两部分最大不会超过1e7,找出小于1e7的所有素数。我们从n=R..

2020-08-25 20:10:23 207

原创 c++ G - Sphenic numbers Gym - 101243G SDUT

题目大意:给定一个整数判断是否为三个不同素数的乘积解题思路:因为是将一个整数分解成3个素数,所以我们想到唯一分解定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1a1P2a2P3a3…Pnan,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式.#include<bits/stdc++.h>using namespace std;/*自定义函数*/int fenjie(.

2020-08-21 09:44:12 118

原创 c++ B - Hanoi tower Gym - 101243B SDUT

题目大意:用一个汉诺塔,本题中的汉诺塔和一般汉诺塔有相同的规则,但是这道题求得是,当三个柱子上的盘子相等(也就是每个柱子上有N/3个盘子,这里的N mod 3 == 0)时的最小步骤解题思路:本题不能使用常规的递归,因为数据很大(递归一般在40以内可以递归,但这道题N 最大为300)。本题其实是找规律的题:只是规律比较难找N = 3 6 9 12 15 18sum = 2 9 38 135 542 ...

2020-08-20 21:25:17 128

原创 c++ H - Islands Gym - 101291H SDUT

You are mapping a faraway planet using a satellite.Your satellite has captured an image of the planet’s surface. The photographed section can bemodeled as a grid. Each grid cell is either land, water, or covered by clouds. Clouds mean that thesurface c.

2020-08-18 11:21:13 143

原创 c++ A - Alphabet Gym - 101291A SDUT

A string of lowercase letters is called alphabetical if deleting zero or more of its letters can result inthe alphabet string “abcdefghijklmnopqrstuvwxyz”.Given a string s, determine the minimum number of letters to insert anywhere in the string tomake.

2020-08-18 11:03:44 222

原创 c++ M - Zigzag Gym - 101291M SDUT

Your Ph.D. thesis on properties of integer sequences is coming along nicely. Each chapter is on adifferent type of sequence. The first covers arithmetic sequences. Subsequently you cover binomialsequences, computable sequences, decreasing sequences, and.

2020-08-18 10:50:51 127

原创 c++ H - Sudoku HDU - 5547 SDUT

这就是一个数独的题目:给你一个不完整的数独,该数独是1 2 3 4 这四个数组成的,你的目的就是输出一个填充完整的数独。数独:每一行和每一列中的数字都是不相同的,但是本题中还有一个条件,就是在这个44的数独中它的左上左下右上右下的四个22的小矩阵也是不相等的四个数。思路:遍历整个图,采用深度优先搜索是的回溯思想,先从第一个元素开始判断1 2 3 4 这四个数中那个数填上不会产生矛盾(只是填该位置的这个数是不会产生矛盾,但是填上这个数可能岁后面的数产生影响),直到填到一个*无法填1-4的任意一个数,...

2020-08-13 19:45:14 177

原创 c++ G - Ancient Go HDU - 5546 SDUT

这是一个棋盘的题目:题目大意:在一个9*9的矩阵中有‘x’ ‘o’ '.‘三种字符,目的是只添加一个’x’让‘o’字符不与’.'直接相连,这里的’o’可以是一个或者是几个,也就是添加一个’x’使得’x’包围’o’思路:输入图后遍历整个图,遇到’o’从该点进行广度优先搜索,搜索的终点是‘x’和 ‘.’ ,其中当遇到 ‘.’ 时用一个计数变量累加,搜索完后判断一共遍历到几个 ’ . ’ 。#include <iostream>#include <string.h>u...

2020-08-13 19:28:59 122

操作系统大作业——管道通信.docx

这是大二或者大三时计算机专业的操作系统课程的期末大作业,分值占比较高,这是我写的供大家参考。

2021-06-08

空空如也

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

TA关注的人

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