Chciałbym załatać kawałek abandonware z jakimś kodem.Jak wstawić komendę LC_LOAD_DYLIB do pliku binarnego Mach-O (OSX)
Oprogramowanie jest oparte na węglu, więc nie mogę używać InputManager (przynajmniej, nie sądzę, że mogę). Moim pomysłem było dodanie referencji dylib do nagłówka mach-o i uruchomienie nowego wątku po wywołaniu procedury inicjalizacji.
Spełniłem się z nagłówkiem mach-o za pomocą hexeditora, aby dodać odpowiednie polecenie obciążenia (LC_ LOAD_DYLIB).
Oświadczenia o tym, czego oczekuję, więc jestem przekonany, że plik jest poprawnie sformatowany.
Load command 63 cmd LC_LOAD_DYLIB cmdsize 60 name @executable_path/libAltInput.dylib (offset 24) time stamp 1183743291 Fri Jul 6 19:34:51 2007 current version 0.0.0 compatibility version 0.0.0
Jednak uruchomienie pliku binarnego daje mi następujący błąd
dyld: bad external relocation length
Mogę tylko zgadywać oznacza to, że trzeba zmodyfikować sekcje LC_ SYMTAB lub LC_ DYNSYMTAB ...
Ktoś ma jakieś pomysły?
Świetnie. To świetna wskazówka. Aby odpowiedzieć, nie, nie rozpowszechniam aplikacji. Naprawiam to na własny użytek, aby móc używać alternatywnego HID (prawie straciłem nadzieję zarówno na dystrybutora aplikacji, jak i producenta sterownika dla HID). –
Tak, właśnie przeczytałem twoje drugie pytanie ... mach_inject to prawdopodobnie twój najlepszy, najłatwiejszy zakład tutaj. –