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