BUUCTF逆向DAY-2[5-8]
新年快乐
使用exeinfope查看文件信息,发现有upx壳
在kali下使用upx -d 文件名
脱壳
脱壳后使用IDA打开,f5反编译_main函数
分析可知flag为Str2的值
xor
IDA64打开,f5反编译_main函数
flag每一位与前一位的异或结果为golbal的值
追踪golbal,然后shift+e取出数据
写出脚本
b=[102,10,107,12,119,38,79,46,64,17,120,13,90,59,85,17,112,25,70,31,118,34,77,35,68,14,103,6,104,15,71,50,79]
x=chr(b[0])
for i in range(1,len(b)):
x+=chr(b[i-1]^b[i])
print(x)
helloword
apkide打开,查看MainActivity.smali直接得到flag
reverse3
IDA打开,f5反编译_main_0函数
分析代码得知Str经过sub_4110BE函数加密再经过for循环里的运算
追踪Str2的值
追踪sub_4110BE函数
变换后输出值为输入值的4/3倍,追踪aAbcdefghijklmn的值
根据输入值与输出值的比值和aAbcdefghijklmn的值可推断出这是进行base64编码
import base64
a="e3nifIH9b_C@n@dH"
b=""
for i in range(len(a)):
b+=chr(ord(a[i])-i)
print(base64.b64decode(b))