Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
l0gg3r
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 3
1

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

10.07.2014, 12:25. Просмотров 503. Ответов 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
Ответы с готовыми решениями:

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

Запуск бинарника
Такой вопрос может кто сталкивался: Есть файл исполняемый. Его надо запустить,...

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

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

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

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

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

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

Восстановление списка из бинарника
Есть 2 функции bool SaveToFile(char* FileName, void** ArrRestourant)...


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

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

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