Форум программистов, компьютерный форум CyberForum.ru

Objective-C

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

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

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

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

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



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



Disassembling
Используя
Код
otool -tvV myTarget
сделал дамп всего __text __TEXT сегмента
https://www.dropbox.com/s/ag6xq1n2k9...xt_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 бинарника

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

C++ Чтение бинарника по биту
C++ Считывание из бинарника
Java SE Запуск бинарника
PHP Вызов бинарника
Создание бинарника в Delphi Delphi
Delphi чтение бинарника
ошибка чтения бинарника C (СИ)
Чтение бинарника fortran в C++ C++
C++ Восстановление списка из бинарника
При запуске tomcat должна была произойти распаковка war-файла, но распаковка не происходит Java EE
Запуск бинарника Ruby
Компиляция бинарника на gcc C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
13.07.2014, 21:15
  #2

Не по теме:

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

l0gg3r
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 3
13.07.2014, 21:38  [ТС]     Распаковка и дизассемблеровка mach-o бинарника #3
Vorona, ручной транслейт
Yandex
Объявления
13.07.2014, 21:38     Распаковка и дизассемблеровка mach-o бинарника
Ответ Создать тему
Опции темы

Текущее время: 01:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru