test_bobadump.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from argparse import ArgumentParser from bobadump import BobaDump def main(): arguments = parse_arguments() dumper = BobaDump(arguments.binary) output = dumper.run(arguments.sample) block_list = output.split('\n\n') assert len(block_list) == 2, f'Expected 2 blocks, but found {len(block_list)}' block_indices = [0, 1] block_signatures = ['0x434f4445', '0x53544142'] block_data_sizes = [4, 12] for i, block_header in enumerate(block_list): assert f'Block {block_indices[i]}' in block_header, f'Block {i} was not marked as "Block {block_indices[i]}"' assert f'Signature: {block_signatures[i]}' in block_header, f'Block {i} signature was not "{block_signatures[i]}"' assert f'Data size: {block_data_sizes[i]}' in block_header, f'Block {i} data size was not {block_data_sizes[i]}' def parse_arguments(): parser = ArgumentParser() parser.add_argument('--binary') parser.add_argument('--sample') return parser.parse_args() if __name__ == '__main__': main()