Why doesn't the MachO Patcher find any symbols in macOS 11 (Kernel Collections)?

  • Someone is helping with the development, but there are problems. No symbols are found. I don't know what exactly he changed.

    Can anyone say something about this?


    I think it's this part of the code that causes it to fail. At least according to the log, but he didn't tell me.

  • The program correctly identifies the Mach-O file as 64-bit.

    It struggles with parsing symbols, resulting in -1 symbols parsed and several null string issues.

    The program finds entries in the kernelcache but fails to retrieve certain identifiers.

    The patching process starts and completes, but an invalid parameter is encountered during the process.

    These debug messages suggest issues with symbol parsing and parameter validation, which require further investigation and debugging to resolve.


    Simplified explanation of the code:


    The code checks if the Mach-O file is 64-bit or 32-bit.

    It calculates the starting address of the symbol table.

    It iterates through each symbol in the table, updating their information using a helper function.

    Different structures are used for 64-bit (nlist_64) and 32-bit (nlist) architectures.


    However - you missed to tell us one important thing... Which Hardware do you use?

  • I tested it on my hardware