2022 虎符逆向FBPE复现
拿到程序拖入PE
可以发现是一个64位程序,拖入IDA
中反编译出来我们可以明显看到有一个BPF program
的提示信息
BPF就是实现了一个内核虚拟机,也是ELF格式,通常以文件形式存在或内联编译进程序
参考文章:
所以此题的关键就是内联编译的BPF程序
调用顺序:fpbe_bpf__open_and_load -> fpbe_bpf__open -> fpbe_bpf__open_opts -> fpbe_bpf__create_skeleton
我们可以直接手动进行dump
下来进行观察该程序内联的一个程序信息,通过一个Github
开源的项目,我们可以将其反编译为汇编形式
Github
项目链接:
之后将程序选择解析为ebpf
之后可以反编译得到对应的汇编语句
在ida
中似乎并不能转换为对应的伪C代码
,但是我们可以使用llvm-objdump
让其看起来更好看一些
经过翻译可以得到是一个大数约束求解的一个过程,写出对应z3
脚本进行约束求解即可
1 |
|
2022 虎符逆向FBPE复现
https://equinox-shame.github.io/2022/08/08/2022 虎符逆向FBPE复现/