2012-05-14 11 views
12

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:Czy można edytować i rekompilować plik binarny systemu iOS?

Mam wniosek i wysłałem ostatnio 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 badania 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?

Odpowiedz

6

Zazwyczaj nie "kompiluje się" go. 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 prosiłeś, w przeciwnym razie powiedz nam, o której aplikacji mówisz, i możemy głębiej w to zaglądać :)

+1

Dziękując za spędzenie czasu na tej stronie, aby odpowiedzieć na moje pytanie .. :) Tak więc nie mogę ujawnić jego 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

+0

A może używa innej aplikacji? – IndoThaiGeek

+0

Nie wiem o różnicach między wersją próbną/pełną, ale nigdy nie używałem IDA do edytowania plików binarnych. W systemie Windows używam Hiew. – jimpic

Powiązane problemy