Reverse Learning - Day2

BUUCTF

新年快乐

file文件发现有壳,使用upx进行脱壳

IDA打开,分析main函数,发现flag是Str2,strcpy就是把字符串赋给Str2

flag{HappyNewYear!}

xor

看题目知道是异或,打开main函数,逻辑是字符和上一位进行异或

把所有的数据统一成ascii码,编写脚本

1
2
3
4
5
6
7
8
9
10
11
a=[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]
s=' '
s+='f'
for i in range(1,len(a)):
s+=chr(a[i]^a[i-1])
print(s)

flag{QianQiuWanDai_YiTongJiangHu}

helloword

apk文件,扔jadx跑一下,main函数里直接看到flag

flag{7631a988259a00816deda84afb29430a}

reverse3

IDA查看伪代码

输入的字符串经过sub_4110BE运算赋给Destination,查看算法发现是Base64加密

再查看一下str2的内容

回头分析main函数发现Destination每一位加j,开始写脚本

1
2
3
4
5
6
7
import base64
str='e3nifIH9b_C@n@dH'
flag=' '
for i in range(len(str)):
flag+=chr(ord(str[i])-i)
flag=base64.b64decode(flag)
print(flag)

flag{i_l0ve_you}


Day2 - upx简单脱壳,了解apk逆向,学习脚本编写,分析基础算法