[BJDCTF2020]BJD hamburger competitio
Unity逆向,找不到关键文件,搜了才知道Assembly-CSharp.dll是游戏逻辑核心
Unity游戏基本上都是C#写的!用dnSpy反编译
Unity3D游戏分析
hello_world_go
现在IDA7.6可以直接还原go语言函数了!
[WUSTCTF2020]level3
base64解码发现不对噢,估计是把码表改了,函数比较少,一看发现一个函数非常可疑:
可疑函数
发现对码表进行了修改,从0到9的字符和从19到10的字符调换了
也可以找到base64_table变量,然后查看交叉引用,找到操作为w的函数!
反过来跑,还原码表然后更换编码结果的字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 table = list ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' ) tablebak = list ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' ) key = list ('d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD' ) for i in range (0 , 10 , 1 ): v1 = table[i]; table[i] = table[19 - i]; result = 19 - i; table[result] = v1; for i in table: print (i, end = '' ) print ()for i in key: print (i, end = '' ) print ('==' )for i in range (len (key)): key[i] = tablebak[table.index(key[i])] for i in key: print (i, end = '' ) print ('==' )
[FlareOn6]Overlong
总共就三个函数,两个用来编码。编码的字符总共AF位,为啥弹窗显示的字符很少?原来编码变量的第三个参数:位数太少了!改成原字符的数量0xAF,再运行就显示flag了。
0和1的故事
一堆01,左右上角和左下角都是0,其余的有0有1,转化成直观的图像吧,用xlwt写到excel里,再将1的框变成黑的:
这就非常明显了,加上定位点扫二维码就好了
xlwt将列表字符写到excel的脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 flag = ['填入字符' ] import xlwtexcel = xlwt.Workbook(encoding='utf-8' ) sheet = excel.add_sheet('xlwt_sheet1' ) style = xlwt.XFStyle() font = xlwt.Font() font.name = u'微软雅黑' font.colour_index = 6 font.underline = True font.italic = True font.height = 400 style.font = font for i in range (len (flag)): for n in range (len (flag[i])): if flag[i][n] == '0' : sheet.write(i,n,'0' ) if flag[i][n] == '1' : sheet.write(i,n,'1' ) excel.save('E:/Desktop/1.xls' )
[ACTF新生赛2020]Oruga
迷宫题,将WEMJ键作为操作键,分析高低位作用