[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
# -*- coding: utf-8 -*-
flag = ['填入字符']
import xlwt
#初始化一个excel
excel = xlwt.Workbook(encoding='utf-8')
#新建一个sheet
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 #字体大小 200等于excel字体大小中的10
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键作为操作键,分析高低位作用

2021-07-12
Contents

⬆︎TOP