BUUCTF逆向DAY-2[5-8]

新年快乐

使用exeinfope查看文件信息,发现有upx壳

image

在kali下使用upx -d 文件名脱壳

脱壳后使用IDA打开,f5反编译_main函数

image

分析可知flag为Str2的值


xor

IDA64打开,f5反编译_main函数

image

flag每一位与前一位的异或结果为golbal的值

追踪golbal,然后shift+e取出数据

image

写出脚本

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)

image


helloword

apkide打开,查看MainActivity.smali直接得到flag

image


reverse3

IDA打开,f5反编译_main_0函数

image

分析代码得知Str经过sub_4110BE函数加密再经过for循环里的运算

追踪Str2的值

image

追踪sub_4110BE函数

image

变换后输出值为输入值的4/3倍,追踪aAbcdefghijklmn的值

image

根据输入值与输出值的比值和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))
posted @ 2021-10-13 23:28  地狱✟祈祷  阅读(33)  评论(0编辑  收藏  举报