BlueBird_apk2
观察题目
是一个apk文件,用jadx打开 好像是native层逆向
解压apk文件打开lib文件夹 找 .so文件
用IDA打开
找到两个关键函数 proc01 和 verify
verify有核实验证之意可能是check flag的函数
还原这两个函数逻辑
proc01
此函数中调用了微软的一些库函数
大概是一些格式化函数,不是关键
这个操作就是交换 一个字节的高四位与低四位
还原代码:
1 | for (size_t i = 0; i < 32; i++) |
verify
有按位与 有按位或 有取反 操作,并不懂最后的操作是干啥
但是影响不大 IDA生成的伪代码可以直接借来利用
原函数是从0~31的顺序操作并且和后一位操作有关 因此我们要逆向的话要反着操作才对
代码:
1 | char *input; // edi |
完整脚本
最后根据密文d
我们完成脚本
1 |
|
跑出结果为:X0YxdTc3ZXJfUzR2M19UaDNfVzByMWRf
直接提交不对 base64解码
1 | _F1u77er_S4v3_Th3_W0r1d_ |
要去除两端的下划线才行
1 | F1u77er_S4v3_Th3_W0r1d |
不知为何
最后MD5加密一下就得到了flag
flag{03cd6eb78a6c70f16bfbfd3508f7065f}
- 本文标题:BlueBird_apk2
- 本文作者:萧禾财
- 创建时间:2022-07-31 14:38:24
- 本文链接:https://ipartmentxhc.github.io/2022/07/31/BlueBird-apk2/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!