Сейчас на форуме: Rio, johnniewalker, vsv1 (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Взлом приложений для iOS |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 06 марта 2011 12:45 · Поправил: karim · Личное сообщение · #1 Добрый день! не подскажете где посмотреть/ почитать как ломаются программы для iphone? нужно для превращения триальных в полнофункциональные с отвязкой от аккаунта appstore разобрался Сcылки How to decrypt iPhone IPA file iPhone iapd Reverse Engineering ( интересно но блин на итальянском) http://www.suondmao.altervista.org/articles/prj/iPhoneiapdReverseEngineering.php Tutorials Primer on Reversing Jailbroken iPhone Native Applications v1.0 http://depositfiles.com/files/wn5a147xi Patching Applications from Apple’s AppStore with additional protection http://depositfiles.com/files/77krqkzop | Сообщение посчитали полезным: FilGrand |
|
Создано: 06 марта 2011 15:20 · Поправил: Guru_eXe · Личное сообщение · #2 ida? http://dvlabs.tippingpoint.com/pub/chotchkies/Under%20the%20iHood%20-%20REcon%202008.pdf http://pwnhome.wordpress.com/2009/04/14/basic-reverse-engineering/ http://www.cocoanetics.com/2010/03/stuff-you-learn-from-reverse-engineering-notes-app/ в общем и целом — гугль должен помочь даже видео есть по реверсу. ----- may all your PUSHes be POPed! |
|
Создано: 07 марта 2011 02:50 · Личное сообщение · #3 |
|
Создано: 07 марта 2011 08:10 · Личное сообщение · #4 |
|
Создано: 07 марта 2011 09:33 · Личное сообщение · #5 |
|
Создано: 07 марта 2011 21:32 · Личное сообщение · #6 |
|
Создано: 07 марта 2011 21:40 · Личное сообщение · #7 |
|
Создано: 08 марта 2011 03:33 · Поправил: Getorix · Личное сообщение · #8 rr222 пишет: такое --> ARM Instruction Set <-- ? Нет, я думаю он имеет ввиду вот это ----- Get busy living or get busy dying © |
|
Создано: 08 марта 2011 21:14 · Поправил: karim · Личное сообщение · #9 Спасибо Getorix, это похоже то что нужно. я что то туплю похоже... имеется CMP R0, #2 ; Set cond. codes on Op1 - Op2 BLE loc_84E8 ; Branch нужно BLE заменить на NOP, но вместо NOP рекомендуют использовать MOV R1,R1 (не понял зачем) 1) как все таки выглядит nop или mov в hex двие? 2) похоже нурецая адресов на странице дизасма IDAы отличается от hex адресов, похоже есть какое то смещение, как его найти / вычислить? |
|
Создано: 08 марта 2011 22:23 · Личное сообщение · #10 karim пишет: нужно BLE заменить на NOP, но вместо NOP рекомендуют использовать MOV R1,R1 (не понял зачем) NOP оно и есть в ARM MOV rx, rx? но чаще всего пользуют MOV R0, R0. 1. MOV R0, R0 in HEX = 0000A0E1 2. Смещения в ИДА от Ofset в файле найти просто. Выберите строку в ИДА с определенным адресом и найдите эту строку в файле. Получим смещение. Если память не изменяет, то в большинстве это 10С00 ! |
|
Создано: 08 марта 2011 23:55 · Поправил: rr222 · Личное сообщение · #11 karim пишет: заменить на NOP .. рекомендуют MOV R1,R1 пустышка, ничего не делает, разве что время тратит можно команду тупо занулить, чтоб с кодами NOP, MOV R1,R1 и тп не возится, все будет ок. (00000000 = ANDEQ R0, R0, R0 = ничто). Tyra пишет: 2. Смещения найти просто +1 вот две удобные проги для вычисления смещений ... 4ca9_08.03.2011_CRACKLAB.rU.tgz - offset_calc.rar upd/ заметил счас - на одной проге made by Getorix))))) спасибо, в свое время часто пользовался! | Сообщение посчитали полезным: LinXP |
|
Создано: 10 марта 2011 10:29 · Личное сообщение · #12 Спасибо за советы и проги хочу уточнить правильно ли я искал оффсет 1) в иде на листе дизасма выбрал интересующую меня строку 2) переключился на лист HEX (тк стоит галочка синхронизировать с...) подсветилась интересующая меня строка 3) скопировл ее и в winhex шнаел ее местонахождение в исходном файле 4) разница между адресами и есть смещение? если так, то похоже этот файлик без смещения... ps ковыряю программку из cydia Судя по HEX BLE loc_84E8 = 31 DD а nop нзаимает 8 символов, как быть? |
|
Создано: 10 марта 2011 10:55 · Личное сообщение · #13 karim В меню настроек ida "Options - General - Number of opcode bytes [ 0 ]" поставь [ 4 ] так удобнее работать будет в твоем случае. для удобства копирования создай файлик в папке \IDA\cfg\idauserg.cfg с этим: Code:
появится меню патчинга во вкладке "edit - patch programm", и в листе если жать Alt+O на команде какой нибудь, появится окошко с hex, можешь там сразу нулить и смотреть результат в листинге, еще на старых ida можно было сохранить патченный бинарник "File - produce file - create exe file..." на ida5.5 это почему-то не работает уже, незнаю как на более новых.. но можно сохранить твои изменения в том же меню "create DIF file...", далее по ним легко в хексе патчить.. BLE и тп забивай нулями, не нужно парится с NOP, разве что для красоты, а ее врядли кто оценит))) 31 DD = 00 00 |
|
Создано: 10 марта 2011 11:19 · Поправил: Tyra · Личное сообщение · #14 karim пишет: 4) разница между адресами и есть смещение? Так и Есть ! karim пишет: Судя по HEX BLE loc_84E8 = 31 DD Не Похоже на ARM т.к. Все команды АРМ Имеют 4-е байта. rr222 пишет: BLE и тп забивай нулями, не нужно парится с NOP, разве что для красоты, а ее врядли кто оценит))) Я рекомендую использовать NOP (MOV R0, R0) 0000A0E1. Неуверен, что он хуже зануления. karim Покажи пациента. |
|
Создано: 10 марта 2011 11:50 · Личное сообщение · #15 Tyra пишет: 1.Не Похоже на ARM 2.использовать NOP 1. 2.смысл возится с нажатием нескольких циферок и буковок с кодом Nop\Mov, который еще и запомнить нужно, если можно одним пальцем нажать 4 раза "0" и получить тот же результат - спорить не будем, все варианты одинаковы по результату, кому как нравится, я вообще последнее время мышкой копирую предыдущую команду CMP на место BL = ни одного нажатия на клавиатуре по поводу смещений верно, но если там используют динамическое распределение памяти, то там могут быть разные смещения в разных кусках программы. |
|
Создано: 10 марта 2011 21:23 · Личное сообщение · #16 |
|
Создано: 10 марта 2011 21:50 · Личное сообщение · #17 |
|
Создано: 11 марта 2011 01:47 · Поправил: rr222 · Личное сообщение · #18 karim пишет: файлик открывал то не как простой binary его случаем? karim пишет: 4) разница между адресами и есть смещение? смещение в разных местах разное, так как тут куча сегментов: output window Code:
хранить настройки ида в idauserg.cfg удобнее тем, что при переходе на новую версию этот файлик копируется в папку cfg новой ида и все дела. "00 00" в тумбе как раз и есть mov r0,r0 |
|
Создано: 31 марта 2011 02:49 · Личное сообщение · #19 Не очень понял, зачем нужны оффсет калькуляторы, если ида может продуцировать .dif файл, кроме того, в статус-строке кажет и смещение в файле, и смещение от начала сегмента(?). Я пытаюсь попатчить игрушку одну, Dungeon Raid, и пока не получается. Не понимаю, например такого вот аспекта. В бинарнике дважды встречаются одни и те же структуры, скажем, скиллы игрока (что именно - не суть важно для целей моего вопроса). Например, некие заклинания со сроками действия. Пять заклинаний, скажем, со сроками 10, 20, 15, 20, 10 ходов. В IDA я нашел место, где они так и прописаны прямо: 0x0a, 0x14, 0x0f, 0x14, 0x0a и, что интересно, ида обозначила этот массив как _gSkill_param ок, умница ИДА, спасибо, патчим. Запускаем игру на телефоне - ничего не поменялось. Удивляемся. Внимательно смотрим на кросс-ссылки на этот массив. Есть парочка, в том числе из функции SkillInitialize, то есть, вроде, инит по этим параметрам функцией, которая и называется красиво. Только вот ссылка странная, не просто на _gSkill_param, а _gSkill_param - 0xYYYYY То есть, с вычитанием некоего смещения. Что странно. ВинХексом поискал в файле этот массив - нашел два(!!) совпадения. Одно, которое патчил, другое - раньше. То, которое раньше в IDA почему-то не попадает, бинарный поиск не находит его. Если же в файле пропатчить этот более ранний массив, игра перестает работать - вылетает на заставке, как это часто делают криво сломанные игры. Вопрос - как это все заставить работать? Где и что разглядывать на предмет самопроверки игры? Почему ИДА не находит в листинге этот первый массив? Как поменять оффсет, который ссылается на первый массив, чтобы он указывал на второй (который можно безопасно патчить). Я, к сожалению, не читаю "на глаз ARM-овские инструкции, для меня эти MOV, LDR с тремя операндами - темный лес. Стандартный интеловский АСМ привычнее прошу ногами не пинать, а подмочь со справочной литературой. А то гугл на запросы по взлому iPhone либо разлочки предлагает, либо отвязку аппликаций от аппстора скриптами с хакулуса (тоже кряк, конечно, но не то, что мне надо). |
|
Создано: 15 апреля 2011 22:22 · Личное сообщение · #20 решил в очередной раз сделать попытку ковырнуть ios вопрос сводится к одному... как сделать дамп приложения? исходя из рецептов в сети (актуальность на 8-9 год, свежее не нашел) нужен: 1) root доступ к устройству через ssh 2) при помощи otool определить адреса для дампа 3) при помощи gdb выгрузить программу из памяти 1) не могу понять как поставить otool (gdb стоит), или можно это сделать какой нибудь другой программой. 2) почему то через ssh не работает команда ps (список процессов) как побороть? 3) нужен наставник=)) |
|
Создано: 16 апреля 2011 00:18 · Личное сообщение · #21 karim пишет: 3) при помощи gdb выгрузить программу из памяти http://www.delorie.com/gnu/docs/gdb/gdb_69.html Я не знаю какой там gdb. GDB - это вообще такая же спекуляция как ОС с открытым кодом. То что для чего-то там есть gdb, означает только то что формат команд будет похожим + какой-то абсолютный минимум команд будет совпадать с каноничным gdb с i386 никсов. Так что очень может быть что нужной команды Code:
в gdb для iOs и не окажется. И придется тупо через http://www.delorie.com/gnu/docs/gdb/gdb_56.html тупо тексом гнать всю память а потом конвертить в бинарь. p.s. Я надеюсь ты знаешь что такое удаленная отладка? ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 16 апреля 2011 00:46 · Личное сообщение · #22 тогда как лучше поступить? опыта работы с реверсом iphone нет, удаленную отладку представляю только в теории в кратце, есть программа из итюнс, можно скачать триал на 30 дней (триал можно сбросить) активация происходит через интернет (даже триала), в программе используется ключевой файл, ключ довольно сложный, предположительно с цифровой подписью... имею root доступ к iphone (стоит Cydia openSSH) подскажите пожалуйста что надо делать по пунктам инструкций в интернете мало, буду признателен любой помощи |
|
Создано: 16 апреля 2011 16:06 · Поправил: Hexxx · Личное сообщение · #23 karim пишет: инструкций в интернете мало Зато яблочко, и зато красивый понт. karim пишет: удаленную отладку представляю только в теории Вот так это происходит если атачиться с мака: http://iphonedevwiki.net/index.php/Debugserver В двух словах: на ифоне запускается серверная часть отладчика, на компе клиентская. По wifi ты конектишься по IP ифона на порт, который открыла серверная часть, из клиента. Ну и дальше уже командами отладчика атачишься к процессу и дампишь. Если с винды, то придется искать какой-то gdb для винды чтобы приконектиться. p.s. никогда так не делал ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 16 апреля 2011 16:29 · Личное сообщение · #24 |
|
Создано: 16 апреля 2011 18:14 · Личное сообщение · #25 |
|
Создано: 16 апреля 2011 18:15 · Личное сообщение · #26 |
|
Создано: 16 апреля 2011 21:53 · Личное сообщение · #27 |
|
Создано: 18 апреля 2011 00:46 · Личное сообщение · #28 |
|
Создано: 20 апреля 2011 03:23 · Личное сообщение · #29 на хакулусе много производных от поедкрака есть. Например, вроде как самый продвинутый - poedcrackMod. Так его вроде кличут. Точно, так. http://hackulo.us/forums//topic/62268-release-pcm-poedcrackmod-script/ Если для тренировки, то можно что-то уже "взломанное" (отвязанное от девайса) взять и посмотреть (вынув бинарник из ipa) Но я в своих разглядках уперся в непатчимый сегмент, который ИДА не грузит Еще хотел посмотреть, куда игры свои сейвы пишут, видимо, в sqlite какой-то. Но где смотреть базу - хз. |
|
Создано: 12 августа 2011 16:25 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Крэки, обсуждения —› Взлом приложений для iOS |