mirror of
https://github.com/lief-project/LIEF
synced 2026-06-08 15:30:44 +00:00
71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
import pytest
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from utils import lief_samples_dir, import_from_file
|
|
|
|
samples_dir = Path(lief_samples_dir())
|
|
|
|
LIEF_PY_DIR = Path(__file__).parent / ".." / ".." / "api" / "python" / "examples"
|
|
|
|
@pytest.mark.parametrize("elf", [
|
|
"ELF/ELF32_x86_binary_ls.bin",
|
|
"ELF/ELF32_ARM_binary_ls.bin",
|
|
])
|
|
def test_elf_reader(monkeypatch, elf):
|
|
sample = samples_dir / Path(elf)
|
|
target = LIEF_PY_DIR / "elf_reader.py"
|
|
elf_reader = import_from_file("elf_reader", target)
|
|
with monkeypatch.context() as m:
|
|
m.setattr(sys, "argv", [target.name, "--all", sample.as_posix()])
|
|
elf_reader.main()
|
|
|
|
@pytest.mark.parametrize("elf", [
|
|
"ELF/ELF32_x86_binary_ls.bin",
|
|
])
|
|
def test_elf_remove_section_table(monkeypatch, tmp_path: Path, elf):
|
|
out = tmp_path / "out.bin"
|
|
sample = samples_dir / Path(elf)
|
|
target = LIEF_PY_DIR / "elf_remove_section_table.py"
|
|
|
|
module = import_from_file("elf_remove_section_table", target)
|
|
with monkeypatch.context() as m:
|
|
m.setattr(sys, "argv", [target.name, sample.as_posix(), out.as_posix()])
|
|
module.main()
|
|
|
|
@pytest.mark.parametrize("elf", [
|
|
"ELF/ELF32_x86_binary_ls.bin",
|
|
])
|
|
def test_elf_symbol_obfuscation(monkeypatch, tmp_path: Path, elf):
|
|
out = tmp_path / "out.bin"
|
|
sample = samples_dir / Path(elf)
|
|
target = LIEF_PY_DIR / "elf_symbol_obfuscation.py"
|
|
module = import_from_file("elf_symbol_obfuscation", target)
|
|
with monkeypatch.context() as m:
|
|
m.setattr(sys, "argv", [target.name, sample.as_posix(), out.as_posix()])
|
|
module.main()
|
|
|
|
@pytest.mark.parametrize("elf", [
|
|
"ELF/ELF64_x86-64_binary_ls.bin",
|
|
])
|
|
def test_elf_unstrip(monkeypatch, tmp_path: Path, elf):
|
|
out = tmp_path / "out.bin"
|
|
sample = samples_dir / Path(elf)
|
|
target = LIEF_PY_DIR / "elf_unstrip.py"
|
|
|
|
module = import_from_file("elf_unstrip", target)
|
|
with monkeypatch.context() as m:
|
|
m.setattr(sys, "argv", [target.name, sample.as_posix(), out.as_posix()])
|
|
module.main()
|
|
|
|
@pytest.mark.parametrize("elf", [
|
|
"ELF/ELF64_x86-64_binary_ls.bin",
|
|
])
|
|
def test_elf_json(monkeypatch, elf):
|
|
sample = samples_dir / Path(elf)
|
|
target = LIEF_PY_DIR / "elf_json.py"
|
|
module = import_from_file("elf_json", target)
|
|
with monkeypatch.context() as m:
|
|
m.setattr(sys, "argv", [target.name, sample.as_posix()])
|
|
module.main()
|