MCPcopy Create free account
hub / github.com/MJx0/KittyMemoryEx / NativeBridgeScannerMgr

Method NativeBridgeScannerMgr

KittyMemoryEx/KittyScanner.cpp:1640–1665  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1638 _linker_syms.somain = sym.second;
1639 continue;
1640 }
1641 if (KittyUtils::String::startsWith(sym.first, "__dl__ZL11solist_tail") ||
1642 KittyUtils::String::startsWith(sym.first, "__dl__ZL6sonext"))
1643 {
1644 _linker_syms.sonext = sym.second;
1645 continue;
1646 }
1647 if (_linker_syms.solist && _linker_syms.somain && _linker_syms.sonext)
1648 break;
1649 }
1650
1651 if (!(_linker_syms.solist && _linker_syms.somain && _linker_syms.sonext))
1652 {
1653 return false;
1654 }
1655
1656 KITTY_LOGD("solist(%zx) | somain(%zx) | sonext(%zx)", solist(), somain(), sonext());
1657
1658 std::vector<char> solist_buf(KT_SOINFO_BUFFER_SZ, 0);
1659 _pMem->Read(solist(), solist_buf.data(), KT_SOINFO_BUFFER_SZ);
1660
1661 std::vector<char> si_buf(KT_SOINFO_BUFFER_SZ, 0);
1662 uintptr_t somain_ptr = somain();
1663 _pMem->Read(somain_ptr ? somain_ptr : sonext(), si_buf.data(), KT_SOINFO_BUFFER_SZ);
1664
1665 auto allMaps = KittyMemoryEx::getAllMaps(_pMem->processID());
1666
1667 ElfScanner si_elf{};
1668 for (size_t i = 0; i < si_buf.size(); i += sizeof(uintptr_t))

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected