CTFshow
CTFshowweb1简单签到
web2(简单sql注入)简单的sql注入,按照步骤来
123456789假设题目的要求是拿到所有的username和password的值id=1 order by 1--+ #这里是查看列的数量id=0 union select 1,2,3--+ #查看显示位假设显示位仅有3,那么可以在3处去注入获取想要的信息,如:id=0 union select 1,2,database()--+ #查看数据库名称,假设查找到的数据库名为mysqlid=0 union select 1,2,version()--+ #查看数据库版本信息id=0 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='mysql'--+ #查找mysql数据库中所有的表名,group_concat()函数的作用是将所有查找到的项都连接起来,否则只能查到一个,假设查到重要的表为usersid=0 union ...
LitCTF复现
LitCTF复现世界上最棒的程序员直接扔进ida,F5反编译后直接看到flag
ez_XOR12345678910111213141516171819202122 strcpy(Str2, "E`}J]OrQF[V8zV:hzpV}fVF[t"); v9 = 0; v10 = 0; v11 = 0; v12 = 0; v13 = 0; v14 = 0; v15 = 0; printf("Enter The Right FLAG:"); scanf("%s", Str1); XOR(Str1, 3); if ( !strcmp(Str1, Str2) ) { printf("U Saved IT!\n"); return 0; } else { printf("Wrong!Try again!\n"); return main(v4, v5, v6); }}
X ...
HDCTF复现
HDCTF reverse部分复现easy_re首先查壳是UPX壳,扔进虚拟机
1upx -d 文件名
直接脱壳
扔进ida1234567891011121314151617int __cdecl main(int argc, const char **argv, const char **envp){ int i; // [rsp+2Ch] [rbp-4h] _main(argc, argv, envp); func(a, encode_a); puts("Please input your flag:"); scanf("%s", s); for ( i = 1; i <= 32; ++i ) f3(s); func(s, encode_s); if ( !strcmp(encode_s, a) ) puts("Congratulations! You get the flag"); else puts("Sorry,try again"); re ...
Rsa加密系列
RSA加密系列什么是RSA加密rsa加密是一种非对称加密算法(公钥加密),对于rsa加密主要就是有公钥是私钥两种概念,公钥用于发送方将明文进行加密,私钥是接收方得到密文后用其解密得到明文,加密方式和解密方式不同,导致rsa加密比对称加密更加安全
普通rsa加密解密公式欧拉函数补充其中求L的过程,这里的L=φ(n),根据欧拉函数,φ(n)=φ(p*q)=φ(p)xφ(q)
我们知道如果a为质数,那么φ(a)=a-1,则可以得到φ(n)=(p-1)x(q-1)
欧拉定理和模反元素(逆元)欧拉函数的用处,在于欧拉定理“欧拉定理”指的是:如果两个正整数a和n互质,则n的欧拉函数φ(n)可以让下面的等式成立:a^φ(n)≡1(mod n)也就是说,a的φ(n)次方被n除的余数为1
模反元素的推导过程如下:根据欧拉定理,有:a^φ(n) = a × a^(φ(n)−1)≡1(mod n)
令b=a^(φ(n)−1),得:
ab≡1(mod n)b就是a的模反元素(逆元)所以,如果两个正整数a和n互质,那么一定可以找到整数b使得a ...
顺序淘汰问题
顺序淘汰问题问题:
1234567813个人围成一圈,从第1个人开始顺序报号1、2、3,凡报到3的人退出圈子。找出最后留在圈子里的人原来的序号。要求用结构体编程实现。***输出提示:"\n出圈成员及顺序:"***输出格式:"%3d"***输出提示:"\n最后的成员是:"***输出格式:"%3d"
代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include<stdio.h>#include<stdlib.h>typedef struct node{ int num; struct node *next; }Node;int main(){ Node *head,*p,*q;//设置指针,用来索引链表 int i,j; head=malloc(sizeof(Node)); head->n ...
用梯形法求函数积分
梯形法求函数积分题目:
12345678按如下函数原型,采用梯形法编程实现(分成100个小梯形,再求这100个梯形面积的和),在积分区间[a,b]内计算函数y1=∫(1+x*x)dx (从0积到1)和y2=∫x/(1+x*x)dx (从0积到3)的定积分。其中,指向函数的指针变量f用于接收被积函数的入口地址。Integral(float (*f)(float), float a, float b);**输出格式要求:"y1=%f\ny2=%f\n"
12345678910111213141516171819202122232425262728293031#include<stdio.h>//将两个积分函数运算写出float func1(float x){ return 1+x*x;}float func2(float x){ return x/(1+x*x);}//运用梯形法求积分float Integral(float (*f)(float), float a, float b){ ...
tomorrow
输出明天的时间题目:
1234567891011121314151617181920212223给定如下定义:struct date_rec { int day ; int month ; int year ; } ; struct date_rec current_date ;写一个程序包含如下的函数,完成:(a) 输入current_date的值:void input_date(struct date_rec *current_date)(b) 将current_date增加1天:void increment_date(struct date_rec *current_date)(c) 显示current_date的值:void output_date(struct date_rec *current_date)考虑每个月的实际天数,同时也考虑闰年的情况。**输入格式要求:"%d%d%d" 提示信息:"请输入当前日期(年 月 日):"**输出格式要求:"当前日期:%d年%d月%d日!&qu ...
卡布列克运算
验证卡布列克运算验证卡布列克运算。即:任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
(1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
(2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);
(3)求两个数的差,得到一个新的四位数(高位零保留)。
重复以上过程,最后得到的结果总是6174。这个数被称为卡布列克常数。请编写一个递归函数,完成以上的卡布列克运算。
输入格式要求:”%d” 提示信息:”Enter number:”
输出格式要求:” [%d]:%d-%d=%d\n”
程序运行示例如下:
Enter number: 1234
【1】:4321-1234=3087
【2】:8730-378=8352
【3】:8532-2358=6174
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 ...
单项链表基本操作
头文件 LinkList.h1234567891011121314151617181920212223242526272829303132333435363738394041#define _CRT_SECURE_NO_WARNINGS#pragma once#include<stdlib.h>#include<stdbool.h>#include<stdio.h>#ifdef __cplusplusextern "C" {#endif // __cplusplus //定义节点数据类型 struct LinkNode { int val; struct LinkNode* next; }; //初始化链表 struct LinkNode* Init_LinkList(); //在值oldval处插入一个新数据newval,oldval往后移 void InsertByValue_LinkList(struct LinkNode* header,int oldval,int newval); // ...
排序算法
冒泡排序12345678910111213141516171819202122232425262728293031323334#include<stdio.h>void Effervescence_sort(int len,int a[]){ int temp; for(int i=0;i<9;i++) { for(int j=9;j>i;j--)//找到较小数并依次向上冒泡 { if(a[j]<a[j-1]) { temp=a[j]; a[j]=a[j-1]; a[j-1]=temp; } } }}int main(int argc,char *argv[]){ int a[10]; printf("Before so ...