misc加密解密
序言
本文章收集各大ctf的misc题用到的一些常用和不常见的加密解密方式
游戏动漫文字密码
原神文字(原)
isctf-2022-捕风的魔女
标准银河字母(指挥官基恩)
Geek Challenge 2023-下一站是哪儿呢
魔女之旅
jsFuck
在线解密
特征:
主要是以[]!+等符号的形式
正常的一段 JS 代码:
alert(1)
经过 JSFuck 混淆之后的代码类似于:
[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[]) ...
BUUCTF PWN
rip
检测文件的保护机制
123ubuntu@vm:~/桌面$ checksec --file=pwn1RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILEPartial RELRO No canary found NX disabled No PIE No RPATH No RUNPATH 64 Symbols No 0 1 pwn1
打开ida可以看到控制函数在fun函数中
exp:
123456789from pwn import * #pwntools函数导入#sh = ./pwn1sh = remote('node4.buuoj.cn',29452) #连接靶机的服务,需要输入对应的ip地址和端口号payload = b'a'*0xf + b'a ...
数据结构3
一、实验内容
本实验要求实现以下功能:
按先序次序建立一颗二叉树,以‘@’表示空。
中序、后序和层序遍历该二叉树,输出遍历序列。
求出该二叉树的深度并输出
求出该二叉树的叶子数目并输出
判断该二叉树是否是完全二叉树
二、测试数据
输入以下字符串,建立二叉树:ABC@@DE@G@@F@@@
输出中序遍历序列应为:CBEGDFA
输出后序遍历序列应为:CGEFDBA
输出层次遍历序列应为:ABCDEFG
输出二叉树的深度应为:5
输出二叉树的叶子数目应为:3
该二叉树不是完全二叉树
三、解答
graph LR
A((开始)) --> B[输入字符串建立二叉树]
B --> C[创建二叉树]
C --> D[中序遍历序列]
C --> E[后序遍历序列]
C --> F[层序遍历序列]
C --> G[二叉树的深度]
C --> H[二叉树的叶子数目]
C --> I[判断是否完全二叉树]
D --> J((结束))
E --> J
F --> J
G --> J
H --> J
I --> J
J --> K{是否完全二叉树?}
K -- 是 --> L[输出是完全二叉树]
K -- ...
数据结构2
一、实验内容
编写递归算法计算二叉树中度为1
⭐ ⭐ ⭐
二、问题分析
通过二叉树结构的递归特性来实现。若某结点的左右子树都不为空,则该结点拥有的度为1的结点为左右孩子结点拥有的之和;若某结点的左子树为空,右子树不为空,则该结点拥有的度为1的结点为该结点自身加上,右子树拥有的之和;同理,某结点的右子树为空,左子树不为空,则该结点拥有的度为1的结点为该结点自身加上,右子树拥有的之和;若该结点没有左右子树,则返回0。
三、解答
12345typedef struct Node { DataType data;//数据域 struct Node *leftchild;//左子树指针 struct Node *rightchild;//右子树指针}BTNode;
1234567891011121314//使用递归//计算二叉树中度为1的结点总数int singleNodes(BTNode *b) { if (b==NULL) { return 0; } if ((b->leftchild == NULL && b-> ...
数据结构1
一、实验内容
链表操作
⭐ ⭐ ⭐
二、实验目的
熟悉用C/C++语言进行程序设计的方法。
掌握链表的基本操作:插入、删除、查找等运算
三、实验内容
1用单链表表示集合(集合中无相同元素)
2求两个集合的并、交、差运算
四、实验步骤
1输入第一个集合,建立链表并输出
2输入第二个集合,建立链表并输出
3选择对集合的运算,输出结果
五、注意
1如果输入了重复值,可以自动跳过
2运算做成重复的菜单形式,以便于重复选择
六、解答
求集合(用单链表表示)的并、交和差运算
目的:掌握单链表的应用和有序单链表的二路归并算法。
内容:采用单链表表示集合(假设同一个集合中不存在重复的元素),将其按递增方式排序,构成有序单链表,并求这样的两个集合的并、交和差。
graph TD
A(L) --> B(apple)
A(L) --> C(pear)
C(pear) --> D(banana)
A(L) --> E(orange)
F[分离banana]
B --> F
F --> G(apple)
F --> H(pear)
H(pear) --> I(orange)
graph TB
A[开始] ...
Hack The Box ———— Sandworm
使用Nmap扫描
首先对目标进行nmap扫描,我们可以发现22端口,80端口,和443端口开着
12┌──(root㉿Sw1f7)-[~]└─# nmap -T4 -A -v 10.10.11.218
我们可以发现有个ssa.htb的主机名,我们将其添加到我的电脑主机中去
12┌──(root㉿Sw1f7)-[~]└─# vi /etc/hosts
打开以后可以发现居然是一个秘密间谍机构的页面(?)
但是此页面并无任何可以有效利用的点。
扫目录
使用gobuster的常用关键词扫一下
12┌──(root㉿Sw1f7)-[~]└─# gobuster dir -u https://ssa.htb/ -w /usr/share/wordlists/dirb/common.txt
"admin"目录下没有利用点,但是"guide"目录下就有点意思了。
这个页面允许我们提交PGP加密的文本,子目录扫描也没有结果。
于是乎我们可以生成并导出一个GPG公私钥。
123456789101112131415┌──(root㉿Sw1f7)-[~]└─# ...
编程日记22
题目一
【问题描述】
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124#include<iostream>using namespace std;template <class ElemType> class MyLinkList; //链表类声明template <class ElemType>class Node{ public: Node() { ...
编程日记21
题目一
【问题描述】
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106#include <iostream.h>#include <math.h>class Base{public://为了简化,数字域取公有 double result,a,b,step;//Intevalue积分值,a积分下限,b积分上限 int n; virtual double fun(double x) (1) ;//被积函数声明为纯虚函数 virtual void Integerate(){ cout<<"这里是积分函数"<< ...
编程日记20
题目一
【问题描述】
下列主函数涉及分数类Fraction对象的运算,Fraction对象由分子和分母构成,分析给出的代码并设计Fraction类,使主函数程序代码正确执行。提示:需要对相关运算符进行重载并使该分数约分成最简形式。
【代码】
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611 ...
编程日记19
题目一
【问题描述】
要求:(1)实现交通工具这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有构造函数,getpassenger(获取载人数),print(打印车轮数,重量和载人数)。
【输入形式】
123vehicle input:4 50car input:4 45 5
【输出形式】
12345vehicle is:车轮数:4,重量:50car is:车轮数:4,重量:45可载人数:5
【代码】
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include <iostream>using namespace std;class vehicle{protected:int wheels;float weight;public:vehicle(int awheels,float aweight);int get_wheels(); ...