mirror of
https://github.com/lief-project/LIEF
synced 2026-06-08 15:30:44 +00:00
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
import lief
|
|
import pathlib
|
|
|
|
from utils import get_sample
|
|
|
|
CURRENT_DIR = pathlib.Path(__file__).parent
|
|
|
|
def read_opcode_file(name):
|
|
buff = (CURRENT_DIR / "opcodes" / name).read_text()
|
|
buff = buff.replace("\r", "")
|
|
return buff
|
|
|
|
def test_rebase_opcodes():
|
|
target = lief.parse(get_sample("MachO/MachO64_x86-64_binary_rebase-LLVM.bin"))
|
|
|
|
reference = read_opcode_file("MachO64_x86-64_binary_rebase-LLVM.rebase_opcodes")
|
|
value = target.dyld_info.show_rebases_opcodes
|
|
value = value.replace("\r", "")
|
|
assert reference == value
|
|
|
|
def test_lazy_bind_opcodes():
|
|
target = lief.parse(get_sample("MachO/MachO64_x86-64_binary_lazy-bind-LLVM.bin"))
|
|
|
|
reference = read_opcode_file("MachO64_x86-64_binary_lazy-bind-LLVM.lazy_bind_opcodes")
|
|
value = target.dyld_info.show_lazy_bind_opcodes
|
|
value = value.replace("\r", "")
|
|
assert reference == value
|
|
|
|
def test_bind_opcodes():
|
|
target = lief.parse(get_sample("MachO/MachO64_x86-64_binary_lazy-bind-LLVM.bin"))
|
|
|
|
reference = read_opcode_file("MachO64_x86-64_binary_lazy-bind-LLVM.bind_opcodes")
|
|
value = target.dyld_info.show_bind_opcodes
|
|
value = value.replace("\r", "")
|
|
assert reference == value
|
|
|
|
def test_export_trie():
|
|
target = lief.parse(get_sample("MachO/MachO64_x86-64_binary_lazy-bind-LLVM.bin"))
|
|
|
|
reference = read_opcode_file("MachO64_x86-64_binary_lazy-bind-LLVM.export_trie")
|
|
value = target.dyld_info.show_export_trie
|
|
value = value.replace("\r", "")
|
|
|
|
assert reference == value
|
|
|