С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
l0gg3r
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 3
#1

Распаковка и дизассемблеровка mach-o бинарника - Objective-C

10.07.2014, 12:25. Просмотров 474. Ответов 2
Метки нет (Все метки)

Привет киберфорум, я пытаюсь вскрыть OSX mach-o бинарник (которое была написонна на ObjC и использует objc_runtime).

К сожелению дизассемблировка дает меня bullshit, видимо бинарник закриптован, или использует packer (или на самом плохом варинате обфускацию).
Меня нужно получить/определить алгоритм шифровки, и декриптовать бинарник.



Load Commands
Используя
Код
otool -l myTarget
сделал дамп команд загрузки бинарника
(некаких флагов на факт крипта.... но всетаки она закриптована)
https://www.dropbox.com/s/yg78mesn3w9mm7n/load_commands.txt



Disassembling
Используя
Код
otool -tvV myTarget
сделал дамп всего __text __TEXT сегмента
https://www.dropbox.com/s/ag6xq1n2k9nm4eq/text_segment.txt

Как видите никакой полезной информации, одна каша.



LLVM дизассемблер сразу отказывается
Код
(__TEXT,__text) section
Segmentation fault: 11
</pre>

Инъекция с помощью cycript

Я попробовал `cycript` для дампа `основного образа бинарника` из Виртаульной Памяти, а потом патчил дамп обратно в бинарник с помощью `dd` инструмента,
но кажется этот трюк не прошел, и бинарник был поврежден.



Debuggers

`gdb`/`lldb` отказываются запустить/присоединиться к процессу, т.к. бинарник использует `pt_deny_atach`/`sysctl`/`kauth` техники анти-дебаггинга.

Я попробовал патчить свой OSX kernel для игнорирование `pt_deny_atach`/`sysctl`/`kauth` (т.к. assembly к бинарнику не доступно и я не смогу снять `nop`-ом эти вызовы)
Но после этого процесс даже не запускается, просто зависает (В то время как `Github` и `iTunes` запускаются без каких то проблем, и клюют на патч).



Декриптованный кусок кода

Это единственное что меня удалось найти,
В бинарнике используется довольно популярная библиотека AquaticPrime.
Я интегрировал библиотеку на моем тестовом пройекте и компилировал его, потом сравнил мой мод, с кодом которое находится в бинарнике.

Мой код (decrypted)
Распаковка и дизассемблеровка mach-o бинарника

Код в бинарнике (encrypted)
Распаковка и дизассемблеровка mach-o бинарника

Можете посоветовать некоторые дополнительные техники (или предложение, что я могу попробовать), чтобы получить чистый ассемблай?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 12:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Распаковка и дизассемблеровка mach-o бинарника (Objective-C):

При запуске tomcat должна была произойти распаковка war-файла, но распаковка не происходит - Java EE
Здравствуйте! Такая проблема..экспортировал из eclipse в war-файл в папку webapps. При запуске сервера должна была произойти распаковка, но...

Вызов бинарника - PHP
Как вызвать исполняемый файл в php(linux)? system(), exec() - не канает.

Запуск бинарника - Ruby
Такой вопрос может кто сталкивался: Есть файл исполняемый. Его надо запустить, но exec('./dever') не пашет, точнее он запускает...

Запуск бинарника - Java SE
Доброго времени суток, при помощи qt creator'a собираю бинарник(под линуксом), вопрос можно ли его запустить в java приложении по нажатию...

чтение бинарника - Delphi
Как посмотреть содержимое этого файла? http://rghost.ru/48124046

Считывание из бинарника - C++
FILE* fl=fopen((ExtractFilePath(ParamStr(0))+r_buf+&quot;.bin&quot;).c_str(), &quot;w&quot;); char* l=r_buf.c_str(); WORD l1=strlen(l); ...

2
Vorona
13.07.2014, 21:15
  #2

Не по теме:

гугл транслейт?

0
l0gg3r
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 3
13.07.2014, 21:38  [ТС] #3
Vorona, ручной транслейт
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2014, 21:38
Привет! Вот еще темы с ответами:

ошибка чтения бинарника - C (СИ)
пока читал fopen с параметром &quot;r&quot; все было нормально, точнее ошибок не было, но не читало не фига, подумал что проблема в этом заменил на...

перевод в бинарника в исходник - ARM
Здравствуйте. Конечно это звучит глупо но есть ли софт позволяющий бинарный файл перевести в си или asm. Спасибо за ответ.

Компиляция бинарника на gcc - C++
Задача: нужно скомпилировать сырой бинарник на gcc. Он будет грузиться по адресу 0x10000 и туда же будет передаваться управление. И мне...

Создание бинарника в Delphi - Delphi
Здравствуйте. Можно ли в Delphi програмно создать exe?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.