Files

44 lines
1.2 KiB
Python

import os
import unittest
class ElfAarch64Tests(unittest.TestCase):
def test_can_find_exported_mag_symbol(self):
import elf_aarch64
so_path = os.path.join(
os.getcwd(),
"IR_Camera_SDK-1.0.1",
"android",
"android",
"lib",
"arm64-v8a",
"libcoresdk.so",
)
analyzer = elf_aarch64.ElfAnalyzer(so_path)
sym = analyzer.find_symbol("MAG_LinkCamera")
self.assertIsNotNone(sym)
self.assertGreater(sym.size, 0)
self.assertGreater(sym.addr, 0)
def test_disassembles_aarch64_function_and_resolves_calls(self):
import elf_aarch64
so_path = os.path.join(
os.getcwd(),
"IR_Camera_SDK-1.0.1",
"android",
"android",
"lib",
"arm64-v8a",
"libcoresdk.so",
)
analyzer = elf_aarch64.ElfAnalyzer(so_path)
lines = analyzer.disassemble_symbol("MAG_LinkCamera")
self.assertTrue(any("MAG_LinkCamera" in line for line in lines[:2]))
self.assertTrue(any("\tbl" in line or "\tblr" in line for line in lines))
if __name__ == "__main__":
unittest.main()