Comments 13
Я жажду еще!
P. S. Спасибо за перевод.
P. S. Спасибо за перевод.
0
Советую еще обратить внимание на дизассемблер/декомпилятор/отладик Hopper.
И вместо возни с поиском файлового смещения можно:
1)Отредактировать файл в самой IDA
2)Скопировать часть байт в окрестности прыжка, и искать сразу их. Если последовательность уникальна, то остановитесь как раз в нужном месте.
И вместо возни с поиском файлового смещения можно:
1)Отредактировать файл в самой IDA
2)Скопировать часть байт в окрестности прыжка, и искать сразу их. Если последовательность уникальна, то остановитесь как раз в нужном месте.
0
Пробовал Hopper (являюсь обладателем и IDA и Hopper), но он совершенно неудобен, имхо.
Я бы порекомендовал попробовать radare2. Да, в командной строке, но реверсера/ресёрчера это не должно пугать. Причем в radare2 есть весь инструментарий для инъекции кода — и отладчик (r2 -d), и ассемблер (rasm2 — для сборки шеллкода). Вот пример последовательности действий для простого crackme для x86 c помощью radare2.
А для GDB рекомендую этот патч от osxreverser — reverse.put.as/2013/11/08/one-small-patch-for-gdb-one-giant-leap-for-reversers/ — позволяет удобно отлаживать ASLR код на Mac OS X.
Я бы порекомендовал попробовать radare2. Да, в командной строке, но реверсера/ресёрчера это не должно пугать. Причем в radare2 есть весь инструментарий для инъекции кода — и отладчик (r2 -d), и ассемблер (rasm2 — для сборки шеллкода). Вот пример последовательности действий для простого crackme для x86 c помощью radare2.
А для GDB рекомендую этот патч от osxreverser — reverse.put.as/2013/11/08/one-small-patch-for-gdb-one-giant-leap-for-reversers/ — позволяет удобно отлаживать ASLR код на Mac OS X.
0
Спасибо за перевод, эта часть уже гораздо интереснее. Хотя, конечно, лучше было бы (это уже к автору оригинала) показывать всё на девайсе — с симулятором всё слишком просто.
Заодно можно было бы затронуть тему с переподписыванием программы после модификации.
Заодно можно было бы затронуть тему с переподписыванием программы после модификации.
0
Дык программа не переподписывается после. Ну точнее переподписывается, но своим, левым сертификатом. Её можно будет только на джелбрейкнутом девайсе запустить, с модифицированным инсталлером.
0
Ну так я о том и говорю: в статье не указано, что после модификации реальной программы её требуется подписать, чтобы запустить на jb-девайсе. Без jb весь взлом методом модификации бинарника (да и содержимого бандла) не имеет смысла. Если нет jb, уповать стоит только на модификацию содержимого /Documents и user defaults.
0
«Какая обфускация кода?» говорили они. «твои исходники никто не увидет, кроме тебя» говорили они. «Это же Apple, там все секьюрно»!
+1
Вы дочитали до этого коммента? Сюрприз!
Далее в функцию
И, наконец, обфусцировать константу
#include <sys/ptrace.h>
не работает на реальном устройстве. Решение:#import <dlfcn.h>
#import <sys/types.h>
typedef int (* ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
void disable_gdb() {
void * handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
Далее в функцию
main()
добавить:#ifndef DEBUG
disable_gdb();
#endif
И, наконец, обфусцировать константу
"ptrace"
(домашнее задание). Всю эту инфу прислал автор одной статьи, которая лежит в песочнице и очень ждёт инвайта. +1
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Only those users with full accounts are able to leave comments. Log in, please.
Ломаем iOS-приложение! Часть 2