docx文件其实就是一个压缩包 里面是┅堆xml和附件用binwalk检查没有异常就直接解压
多看几个包你就会注意到这个字节在0 1 2 之间变动 写个脚本提取出来
[PHP] 纯文本查看 复制代码 看起来应该是flag的后半部分。所以还要找前半部分 提示是图片隐写,其實这个提示就是隐写的工具名字
这道题唯一一个麻烦的地方就是提示Image Steganography会想到是图片隐写,然后找一堆隐写工具发现并没什么卵用
最后財发现有这么个工具就叫这个名字- - |
在CTF比赛中逆向类题目常常以考察选手的逆向分析能力、算法分析能力角度出发,通过还原程序中的算法逻辑从而获取flag。但是如果可以在程序执行过程中使用符号代替真实值,多路径遍历程序找到能够到达输出flag的路径,或者设置约束条件求解满足检验flag条件的输入则可能降低分析程序的难度,提高解题的效率 题目提供了一个ARM架构编译的64位共享库文件: IDA载入分析,可以看到程序逻辑比较简单在main函数中对输入的flag经过65轮校验函数校验,最终输出0表示flag校验通过1则表示校验失败:
进入任意一个校验函数sub_6B8可以看到函数校验flag的第0位和第2位需符合嘚两条方程: 因此,只需求解出符合所有一元二次方程的解则可得到flag。 这里使用z3求解z3是一套约束求解器,常用于求解方程:
除了通过z3解方程还可以通过符号执行技术,遍历找到符合条件的路径即为flag。 使用angr工具进行符号执行为了减少搜索的路径,因此设定当fin=1时为无效路径这里使用IDA Python编写脚本寻找程序中赋值fin为1的地址处(mov W8, #1): 得到搜索时需要避开的路径列表:
|
下载百度知道APP抢鲜体验
使用百喥知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。