Pytanie Czy można edytować i rekompilować plik binarny systemu iOS?


Postanowiłem zadać to pytanie tutaj po spędzeniu wielu czasu z Google. Ale nie byłem w stanie uzyskać odpowiedzi na moje pytanie. Oto szczegóły:

Mam aplikację i ostatnio wysłałem ją do Cydii. Został złamany przez kogoś innego i opublikował go na stronach torrentów. Ciekawe jest to, że mam wewnątrz mechanizmu binarną weryfikację sum kontrolnych i udało im się zhakować całą zawartość i stworzyli nowy plik sum kontrolnych na podstawie zmian, które wprowadzili do pliku binarnego. Edytowali dwie funkcje i dekompilowali je i umieszczali na torrentach.

Zrobiłem więc kilka badań z IDA Pro i zobaczyłem, że można zobaczyć rzeczywistą implementację funkcji i klas. Ale aby edytować funkcje, trzeba znaleźć adres tej funkcji i edytować ją za pomocą HEX EDITOR. To jest część mnie myląca, czy ktoś mi w tym pomógł? Nie chcę, aby było "nie do podrobienia" :) .. Nie jest to takie łatwe, jak sądzę. :) Ale naprawdę chcę się dowiedzieć, jak hackują? :)

Moje pytanie brzmi: jak edytować funkcję w systemie plików iOS i ponownie ją skompilować? Na przykład mam jedną z następujących metod w jednej z moich klas.

- (id) getSomething {

   return @"Something";
}

Chcę edytować wartość zwracaną tej funkcji. Czy to możliwe?


12
2018-05-14 04:10


pochodzenie




Odpowiedzi:


Zwykle nie "ponownie je kompilujesz". Po prostu podaj plik do IDA, poszukaj ciągów znaków, wywołań funkcji lub czegokolwiek, czego szukasz, a następnie użyj edytora szesnastkowego lub podobnego do edycji pliku na poziomie zespołu. W większości przypadków wystarczy zmienić skok warunkowy na bezwarunkowy skok lub nop (bez operacji). Jeśli chcesz zmienić wartości zwracane, musisz włożyć w to trochę więcej wysiłku, ale z doświadczenia wiem, że edytujesz sekwencję znaków bezpośrednio w pliku binarnym, jeśli jest ona określona jako stała lub wartość początkowa - lub po prostu piszesz całkowicie nową funkcję i "skopiuj" jej kod asemblera do oryginalnego pliku. Musisz tylko upewnić się, że nowa funkcja nie zajmuje więcej miejsca niż oryginał - lub wszystko staje się bardziej złożone. Mam nadzieję, że o to prosisz, w przeciwnym razie powiedz nam, o której aplikacji mówisz, i możemy głębiej w to zaglądać :)


6
2018-05-14 07:44



Dziękując za poświęcenie czasu na tej stronie, aby odpowiedzieć na moje pytanie .. :) Nie mogę więc ujawnić jej nazwy, ponieważ pracuję w firmie, a produkt został opracowany dla firmy. Przepraszam za to. Mam jeszcze jedno pytanie dotyczące wymiany kodu asemblera. Używałem wersji próbnej IDA Pro, więc mówisz o pełnej wersji, która może być użyta do zastąpienia kodu? - IndoThaiGeek
A może używa innej aplikacji? - IndoThaiGeek
Nie wiem o różnicach między wersją próbną / pełną, ale nigdy nie używałem IDA do edycji plików binarnych. W systemie Windows używam Hiew. - jimpic
Wielkie dzięki jimpic .. :) .. Jako podsumowanie możemy edytować pliki binarne iOS bez ponownego kompilowania .. Cieszę się, że teraz wiem, w jaki sposób zhackowali moją aplikację ... :) - IndoThaiGeek