easyre
拖进ida,得到flag
helloworld
将文件拖入apk改之理,
得到flag
xor
拖进ida,
就是简单异或,写脚本
glo=[0x66,0x0a,0x6b,0x0c,0x77,0x26,0x4f,0x2e,0x40,0x11,0x78,0x0d,0x5a,0x3b,0x55,0x11,0x70,0x19,0x46,0x1f,0x76,0x22,0x4d,0x23,0x44,0x0e,0x67,0x06,0x68,0x0f,0x47,0x32,0x4f] x='f'
for i in range(1,len(glo)): x+=chr(glo[i]^glo[i-1]) print(x)
得到flag
新春快乐
exe拖入ida,发现有壳,查壳
upx,用upx -d脱壳,再拖入ida
得到flag
reserve1
exe,拖入ida,有大量的函数,于是先看字符串
看到可疑字符串,点进去
找到了调用的函数,再点进去
找到关键函数,分析,将字符串str2中所有的o替换为0即为flag
Mysterious
这题出在MISC里了,先找字符串
跟随
找到关键函数
这里有个atoi()将字符串换为整形之后减一了,所以输入122xyz
得到flag
(这flag不是直接给了吗,感觉自己以前好傻。。。)
不一样的flag
许久未见的迷宫题,进main
十分贴心的已经将上下左右分好了,然后看_data_start___这就是迷宫
由*开始,由#结束,每五个一换行
*1111
01000
01010
00010
1111#
SimpleRev
拖进ida,可以找到关键函数decry,
看key1,3,
可以得到 text=killshadow,key=ADSFKNDCLS
然后程序对key进行了一番花里胡哨但其实就是把key变成小写的操作,于是得key=adsfkndcls,而我们要求的是v1,写脚本
#include<stdio.h>
int main(void) { char text[10]="killshadow"; char key[10]="adsfkndcls"; int v3=0; int v5=10; char flag[10]; for(int i=0;i<10;i++) { for(char j='A';j<='Z';j++){ char temp; temp=(j-39-key[i]+97)%26+97; if(temp==text[i]) flag[i]=j; } } printf("%s",flag); return 0; }
得到flag
内涵的软件
签到题,拖进ida,得到flag
reverse2
先看string
找到关键函数
把flag中i,r替换为1,得到 flag
reverse3
拖入ida,找到主函数
看str2
将输入转换后与str2比较,看sub_4110BE
是base64加密,知道这一点就很容易了
import base64 str2='e3nifIH9b_C@n@dH' flag=''
for i in range(0,len(str2)): flag+=chr(ord(str2[i])-i) print(base64.b64decode(flag))
得到flag
8086
拖进ida
f="]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b" flag=""
for i in range(len(f)): flag+=chr(ord(f[i])^0x1f) print(flag)
得到flag
pyre
code = [31, 18, 29, 40, 48, 52, 1, 6, 20, 52, 44, 27, 85, 63, 111, 54, 42, 58, 1, 68, 59, 37, 19] code.reverse() for i in range(len(code)-1): code[i+1]=code[i]^code[i+1] code.reverse() for i in range(len(code)): code[i]=(code[i]-i+128)%128
for i in range(len(code)): print(chr(code[i]),end="")
[WUSTCTF2020]level2
32elf,脱upx得flag