ACTF2020 writeup
Pwm
- 不会
Reverse
-
题目名称 easyalgorithm
-
FLAG: ACTF{Oolong_milk_tea}
-
大概就先把文件拖进IDA里面反编译一下,看反编译出来的c代码大概就知道是首先判断输入是否为ACTF{},然后将花括弧中的字符串赋给dest,然后通过4006A6和400792两个函数对dest进行加密,然后将得到的密文和v3后的连续地址上的asc码进行比较
-
-
-
然后进入792函数
-
-
发现对密文主要进行加密的就是选中的那一条语句,且发现异或运算的逆运算为异或运算所以将v3后面的先赋给dest然后然dest执行一遍792函数即可
-
Crypto
-
FLAG:忘了
-
好像是矩阵转置吧,大概就把字符串先读入然后依次枚举j,输出str[i%j]=0 1 2 3 4…j;
-
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; char s[maxn]; int main() { gets(s); int t=5; for(;t<51;t++){ int tt=0; printf("%d\n",t); for(int t1=0;t1<=t;t1++){ for(int i=0;i<strlen(s);i++){ if(i%t==t1){ printf("%c",s[i]); } } } puts("");puts(""); } return 0; }
-
题目名称:我的密码本
-
FLAG:忘了
-
emmmm大概替换密码,本来想用字频分析的,但是中间几个连续的太明显了,一看就是I have a dream,接着把每个符号换成对应的字母就行了
-
题目名称:[bomb or boom](http://actf2020.csuaurora.org/challenges#bomb or boom)
-
FLAG:也忘了
-
emmm5个密码只用破译四个就能拿到最后密码,明显是门限方案,结合题目名称,应该是bloom门限
-
密码1:培根密码
-
密码2:盲文
-
密码3:音符
-
密码4:放进浏览器f12即可
-
密码5:beautifulfxxk
-
from Crypto.Util.number import long_to_bytes #from Cryptodome.Util.number import * a1 =2891369521230520600 d1 =5539166121540472709 a2 =5485400237604727152 d2 =9993590208169240051 a3 =10305113992248275270 d3 =23524210813213316809 a4 =63558232650391605454 d4 =134070550878039878083 dd = d1*d2*d3*d4 t1 = pow(dd//d1,d1-2