安卓so文件逆向

0x1 分析lib.so文件

IDA打开 lib/arm64-v8a/libapp.so
看看有没有跟42比较大小的(检测输入长度是否与flag长度相同)
等待加载完成后 Alt + T 搜索 cmp
Ctrl + F 搜索#0x2a (即42) 发现还真有
img

0x2 函数分析

进入函数 F5 反汇编
观察到一个长度刚好为42的数组赋值
接下来程序大概逻辑: 遍历数组 每个数除以2 与0x66异或 再作比较
可以发现数组内全是偶数所以不会触发115行的条件
img

0x3 脚本

1
2
3
4
5
6
7
8
9
l=[0,20,14,2,58,190,160,6,160,166,160,190,162,150,166,6,8,8,150,164,162,
164,162,150,190,160,170,160,150,14,6,0,10,4,172,164,168,10,6,188,172,54]

res=''
for i in l:
res+=chr((i//2)^0x66)

print(res)
# flag{96e65697-5ebb-4747-9636-aefcd042ce80}
⬆︎TOP