Dekompilacja bibliotek Objective-C

Właśnie skończyłem bibliotekę w Objective-C, którą skompilowałem jako bibliotekę statyczną do dystrybucji.

Chciałbym wiedzieć, jakie są szanse na dekompilację.

  • czy znasz jakieś oprogramowanie, które może to zrobić?
  • Jeśli tak, to jak mógłbym lepiej chronić siebie?

EDIT: My static lib is made for iPhone / ARM

Stworzyłem algorytm, który w zależności od niektórych parametrów aplikacji może działać jako demo lub jako Pełny kod. Ty init obiekt ze zmiennymi X i odblokować pełną wersję. Zastanawiałem się, czy będą w stanie zobaczyć ten algorytm, aby mogli stworzyć generator kluczy.

Author: Cy., 2010-02-25

3 answers

Nie jest jasne, co próbujesz chronić siebie przed. Tak, można go odwrócić. Najprostszym narzędziem jest otool, część standardowej dystrybucji programistów:

otool -tV <library>

Od tego biegną do rzeczy takich jak IDA Pro , która ma wsparcie dla iPhone ' a i jest bardzo miła dla tego rodzaju pracy. W międzyczasie, jestem naprawdę zaskoczony, że nie widziałem przeróbkiotx dla iPhone/ARM jeszcze. Nie zdziwiłbym się, gdyby w końcu ktoś się pojawił. I oczywiście jest gdb, jeśli próbujesz dowiedzieć się, jak rzeczy płyną i jakie są dane w różnych punktach.

Jeśli masz więcej szczegółów na temat tego, przed czym próbujesz się chronić, mogą być pewne ukierunkowane odpowiedzi. Poza tym Przeczytaj komentarze Chucka.

 58
Author: Rob Napier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-25 18:43:26

Jeśli jest wykonywana, może być dekompilowana. Objective-C jest szczególnie łatwy do dekompilacji do czytelnego kodu dzięki swoim dynamicznym funkcjom. Jeśli chcesz nieco utrudnić pracę, możesz napisać większość kodu w prostym C i usunąć plik wykonywalny - co oczywiście ma kompromis w utrudnianiu zarządzania projektem aplikacji. Ale bądź szczery wobec siebie: jeśli ktoś chce złamać twój kod, nie będziesz w stanie go powstrzymać. Krakersy mają praktycznie nieograniczone ilość czasu i entuzjazmu i rzeczywiście będzie podekscytowany przez wszelkie nowatorskie wysiłki, które włożysz, aby je zatrzymać. Nikt jeszcze nie stworzył oprogramowania, którego nie da się złamać, a największe korporacje na świecie próbowały. Nie masz zamiar zrobić lepiej niż oni, zwłaszcza jeśli trzeba zapytać o to na Stack Overflow.

Poświęć czas, który poświęciłbyś na udaremnienie dekompilacji i użyj go, aby ulepszyć swój produkt - który będzie miał znacznie lepszy zwrot z inwestycji.

 82
Author: Chuck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-25 18:32:28

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

Cóż, jeśli naprawdę chcesz wiedzieć, spróbowałbym dekompilować to sam. Nie mówisz, czy to jest dla PPC, Intela, czy ARM, co robi różnicę. Oto dekompiler dla Intela i386 Decompiler

Nie wiem ,co można zrobić (nie sądzę, że jest wiele), aby to ograniczyć. Kod zawsze można odwrócić. Ciesz się, że nie używasz Javy lub. net. ich dekompilacja jest tak nieźle.

 5
Author: jamone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-02 13:15:06