FlatBuffer逆向研究
背景
逆向分析研究过程中,会遇到相关的FlatBuffer知识,主要涉及FlatBuffer安装、源码编译、二进制流逆向解析、正向研发等技术点
技术分析
分析流程:
- 确定是否flatbuffer格式
- 逆向还原fbs文件
- flatc编译出解析文件
- 运行解析代码解析bin文件
判定文件格式
import struct
def decode_vt_at(data, offset):
vt_len = get_short(data, offset)
tbl_len = get_short(data, offset + 2)
if (vt_len < 0) or (tbl_len < 0):
raise Exception('Invalid virtual table')
if (vt_len % 2):
raise Exception('Invalid virtual table')
vt_nrent = int(vt_len / 2)
if vt_nrent < 3:
raise Exception('Invalid virtual table')
entries = s