Сейчас на форуме: -Sanchez- (+7 невидимых) |
eXeL@B —› Основной форум —› Взлом Android приложений |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >> |
Посл.ответ | Сообщение |
|
Создано: 12 сентября 2011 12:37 · Поправил: SaNX · Личное сообщение · #1 В теме обсуждаются вопросы взлома под андроид и соответствующие тулзы. ТУТОРИАЛЫ: ТУЛЗЫ: JEB ApkAnalyser GikDbg В аттаче fernflower, очень годный жава декомпилер. 0ece_06.12.2012_EXELAB.rU.tgz - fernflower.jar ----- SaNX | Сообщение посчитали полезным: 4kusNick, WmLiM, gsx3000, Maximus, CoolMax_86, Rustem, Oott, streit, t0ShA, BAHEK, sooqa, Ara, VodoleY, vden, Thegodofviruses, SDFnik, Soso, ff0h, RAMZEZzz, quency, XroM_N70, Alinator3500, Coderess, samtehnik, Isaev, dgyst, ALSSL, dosprog, omeh2003, d0wn, ELF_7719116, Bad_guy |
|
Создано: 03 ноября 2011 12:35 · Личное сообщение · #2 |
|
Создано: 04 ноября 2011 04:56 · Поправил: chelpa · Личное сообщение · #3 В общем, так сложилось, что две игры с одинаковой защитой мне так и не поддаются. Если у кого-нибудь будет время, буду благодарен, если поисследуете, очень интересует решение и метод, которым к нему придёте. игры уже выкладывал в сообщениях раньше AftermatchXD и Spirit. Spirit мной частично взломан, он уже не вылетает в маркет и не пытается себя удалить, но до сих пор не записывает результаты в таблицу рекордов и чем дольше играешь, тем больше замедляется, где-то утечка памяти или лавинообразно процессы новые создаются. ****************** В Spirit не получается рестартануть приложение, чтобы дебаджить с самого начала, может быть кто-нибудь еще методы знает? Или как вариант такой вопрос, как запустить установленный апк из Linux консоли прямо на телефоне? в свое время где-то находил как парень запускал приложение с помощью какой-то утилиты из adb. Есть консольная команда am (консоль на андроиде я имею в виду). С её помощью можно было прописать строку запуска приложения в IDA, но пока не получается запустить com.jakyl.spirithd Я пробовал так am start com.jakyl.spirithd am start -w -e package com.jakyl.spirithd am instrument -w -e package com.jakyl.spirithd и еще некоторые варианты, но так и не запустилось. ******************************** нашел способ как остановить либу при старте, странно, что раньше не додумался создал прыжок сам на себя, при дебаге просто его дальше пускаю |
|
Создано: 06 ноября 2011 11:52 · Поправил: SaNX · Личное сообщение · #4 Кто-нибудь пробовал ломать Talking Tom2 Full ( Там есть две функи Allow и Dontallow. Так вот, после правки LVL, чтоб вызывалось Allow, кэш качает и распаковывает, но прога отваливается по таймауту (примерно через 55 секунд после запуска). В логах DDMS появляется запись "process talkingtom2 died". Пока на этом встрял, хз чо делать дальше Какой командой завершают процессы в андроиде? ----- SaNX |
|
Создано: 06 ноября 2011 13:11 · Поправил: Vovan666 · Личное сообщение · #5 SaNX пишет: Какой командой завершают процессы в андроиде? Code:
finish(); |
|
Создано: 06 ноября 2011 13:18 · Поправил: SaNX · Личное сообщение · #6 |
|
Создано: 10 ноября 2011 00:05 · Личное сообщение · #7 Всё. Spectral Soul доломал. Оказалось, что идентификатор устройства проверялся по чек сумме составленной на MAC адрес устройства. Теперь родился такой вопрос: как заставить прогу считать себя лицензионной по LVL без изменения кода самого пакета, воздействуя лишь на параллельный процесс DRM защиты в самой системе андроида? К какому процессу нужно аттачиться ИДОЙ? И в какой экспорт функции лезть для перехвата? Никто не озадачивался такой проблемой? |
|
Создано: 10 ноября 2011 09:07 · Личное сообщение · #8 |
|
Создано: 10 ноября 2011 10:53 · Поправил: chelpa · Личное сообщение · #9 |
|
Создано: 10 ноября 2011 10:55 · Личное сообщение · #10 |
|
Создано: 10 ноября 2011 11:27 · Поправил: chelpa · Личное сообщение · #11 ладно, забил, проблема номер два.... Обновил устройство с android 2.2.1 до 2.3.5 теперь не ребейзит при подключении Идой и пишет ошибку: Failed to find data segment of /system/bin/linker если заменить linker от версии 2.2.1 попрет? или устройство начнет зависать? и выложите кто-нибудь свой linker от работающей версии плиз. |
|
Создано: 10 ноября 2011 12:37 · Поправил: SaNX · Личное сообщение · #12 chelpa хуй вот, не идет отладка на версиях выше 2.3, как ни ебись. решается только новым андроид_сервером, который в иде 6.2 идет, на сайте написано, что ильфак поправил этот глюк. только вот этого самого сервера в паблике нет. BUGFIX: multithreaded Android applications could not be debugged on some devices ----- SaNX |
|
Создано: 10 ноября 2011 13:12 · Личное сообщение · #13 |
|
Создано: 10 ноября 2011 13:14 · Личное сообщение · #14 |
|
Создано: 10 ноября 2011 13:24 · Поправил: chelpa · Личное сообщение · #15 |
|
Создано: 10 ноября 2011 13:56 · Поправил: SaNX · Личное сообщение · #16 |
|
Создано: 10 ноября 2011 16:53 · Поправил: chelpa · Личное сообщение · #17 всё, решил проблему.... нужно было заменить файл app_process от прошивки с версией 2.2.1 и всё заработало на 2.3, правда я и linker еще оттуда пихнул в туже папку /system/bin/ тут оба файла после замены надо перезагрузить устройство, правда у меня устройство armv7 и файлы могут быть под эту архитектуру, но есть шанс, что и на других заработают. ********************************************************** С aftermatch продвинулся похоже... похоже защита построена на подписи пакета... либа проверяет кем подписан пакет, и если не их фирма то работает в демо режиме. Но пока не проверено, это я для тех, кто может быть тоже изучает. *********************************************************** ураааааа! я aftermatch сломал нашел чек суммы вот ломаный Spirit сломался по аналогии с aftermatch-ем SanX ты кота доломал? | Сообщение посчитали полезным: OttoFix |
|
Создано: 15 ноября 2011 11:56 · Поправил: chelpa · Личное сообщение · #18 SaNX пишет: Нету здесь System.Exit. Ondestroy есть, но что-нить типа ->Destroy нету тоже. Финиш есть, но походу это тупик, т.к. вызывается дохера откуда в общем в коте в этом, проверка crc идет, я его сломал. ЗАйди в либу libSoundtouch001.so и найди там строку getCRC. В этом месте он считывает crc classes.dex. Ну а дальше я думаю ты сам врубишься. Там же неподалёку найдешь и подпрограмму с явным названием exit, её надо избегать при проверках Могу выложить уже сломанный вариант. |
|
Создано: 15 ноября 2011 13:34 · Личное сообщение · #19 chelpa чото нихуа не вкурил: Code:
оно вызываеццо Code:
но оно же нихуа не возвращает. Куда оно сохраняет CRC? ----- SaNX |
|
Создано: 15 ноября 2011 16:43 · Личное сообщение · #20 вместо того, чтобы править проверки crc, проще подкинуть в apk оригинальный .dex, с другим именем, подменить это имя в том месте, где .dex открывают, и пусть себе считает crc на здоровье | Сообщение посчитали полезным: SaNX |
|
Создано: 15 ноября 2011 22:21 · Личное сообщение · #21 Ну кому как проще, можно конечно и подсунуть оригинальный, а толку? Работы ровно столько же, crc сумма в одном месте считывается, и то я её заменил на свою и со своей же сравнивал)) Занимает пять минут правки. К тому же чаще считают crc не classes.dex, а всего пакета апк целиком + отдельно crc библиотеки. Я всё-таки за универсальные способы, без лишнего мусора в апк. |
|
Создано: 15 ноября 2011 22:23 · Личное сообщение · #22 |
|
Создано: 16 ноября 2011 09:06 · Поправил: chelpa · Личное сообщение · #23 ок, распишу, что да где. Пока просто времени мало, сегодня день рождения и дня на 4 я выпаду из виртуальной жизни, но потом всё покажу с ходом мысли и как допёр. Вот пока взломанные варианты, чтобы посмотреть где поправил. ************************************** Попробую с работы по быстрому написать как ломал вкратце: Итак, как фиксить LVL от гугля все в курсе, на этом не останавливаюсь. Пофиксили LVL и смотрим на поведение программы. Запускается, работает, ничего не говоря вылетает. Варианта как это делается (мне известных) три: 1. либо проверяют crc какой либо части паки или всего пакета апк. 2. либо проверяют какой подписью подписан пакет и если компания не их, то не лицензия. 3. запрос лицензии из либы по интернету либо с того же гугля, либо со своего сайта. С подписью прием в некотором смысле оригинальный и встречался один раз, потому решил, что банально CRC проверяют, а делают это обычно из библиотек, так как поправить smali в разы проще, чем либу, хотя иногда тут можно поспорить. Библиотек в нашем коте две: libsoundtouch001.so и libffmpeg001.so. Приложив мозг я оставил в покое библиотеку libffmpeg.so , потому что из названия ясно, что она видео гонять должна и прочее, хотя и там могло быть что-то, но с этим я бы разбирался потом. Открыв библиотеку libsoundtouch001.so в IDA, что же там искать? Самое простое поискать по слову "crc" в закладке Strings. Ищем и находим там getCRC. Дважды щелкаем по ней и попадаем сюда: Code:
щелкаем по Data Xref и попадаем: Code:
тут видно что сразу за ней вызывается _ZN7_JNIEnv11GetMethodIDEP7_jclassPKcS3_ ; и как раз её результатом скорее всего и будет нужный нам CRC. Но где же будет результат? Чаще всего он в R0 после выполнения, а как мы видим далее R0 записывается в некую переменную unk_8114A578. Ок посмотрим где потом эта переменная используется, дважды кликнув по ней и посмотрев Xref: Code:
ок, сходим куда-нить, чтобы понять правы мы или нет, к примеру сюда sub_811101E8+10 (я на самом деле тыкался везде как раненный лось) и что мы там видим: Code:
ну тут вообще всё явно, наша переменная сравнивается с переменной __data_start и если они не равны, то программа выходит. Значит наша задача просто записать в обе переменные одинаковые значения и всё будет работать на ура, а вот где записать? лучше это делать там где вызывается getCRC: 1. переменную unk_8114A578 в самом конце той функции. 2. А переменную __data_start любым HEX редактором по смещению, она там намертво забита. Вот всё что успел написать, надеюсь будет полезным. С Aftermath всё значительно сложнее было. | Сообщение посчитали полезным: WmLiM, SaNX, obfuskator |
|
Создано: 19 ноября 2011 18:37 · Личное сообщение · #24 chelpa позырь screencast video recorder. Там хитрая схема сцуко Я ломал версии до 2.4, щас уже 2.7 есть: ( Code:
первые 14h байт нужно убирать. Сама проверка от маркета отламываеццо несложно, а вот запись этого файла с верным заголовком теперь хз как происходит. Раньше просто тупо был write(III), где было с какого места стрима писать и какую длину. Я просто указывал нужные мне старт 14h байт. А теперь такого нет, аффтар видимо мониторит на ломанные версии Я сделал так, чтоб файл не создавался и подложил уже нормальный - дык тоже хуй, cannot start server. ----- SaNX |
|
Создано: 21 ноября 2011 09:55 · Поправил: chelpa · Личное сообщение · #25 SaNX пишет: Сама проверка от маркета отламываеццо несложно, а вот запись этого файла с верным заголовком теперь хз как происходит. Ну в общем мне тоже не по силам и не по времени с ней разобраться. В смали одной строкой в валидаторе урезанном нашел как поправить, но сам сервис он потом не видит, я пофиксил в либе libutil_mod_sc.so запрос лицензии, вроде нормальные значения уходят в дальвик, а он сука пишет мол критическая ошибка, а потом меняет надпись с ожидания сервера на то, что мол сервер не стартовал. И запись того файло как раз в этой бибилитеке и был, но не понял что там да как происходит в этой же либе создается какой-то файл "d", но в манипуляциях никак разобраться не могу. Надо нормальный файл из лицензии дернуть наверное. |
|
Создано: 21 ноября 2011 17:30 · Личное сообщение · #26 |
|
Создано: 22 ноября 2011 11:05 · Поправил: chelpa · Личное сообщение · #27 На данный момент с файлом "d" разобрался. Файл d=classes.dex , по нему (почему то так) чек-сумму считают командой линукса "cksum". Интересно другое, ну обошел я эту проверку, дальше проверяется лицезия из натива, тоже обошел, создается файл sc. А дальше он пишет что критическая ошибка и сервис не запускает. Про смещения, сколько не искал, вроде нет их теперь, но почему процесс не запускается, не пойму. Или, почему он запускается и далвик косячит. В общем на этом пока тупик, хотя библиотека почти вся разобрана, где-то проверка, которую я упускаю. *********************************************************** Мега lol . Купил в маркете ее, перед этим снес всё, что ранее было. А она сука с той же ошибкой запуска сервиса у меня запускается))))))))))))))) Значит ломанул правильно, просто у меня не запускается из-за чего-то. В общем оставил я её тебе на растерзание, не люблю реверсом глючных прог заниматься никогда не поёмешь, где я косячу, а где они |
|
Создано: 22 ноября 2011 14:17 · Личное сообщение · #28 |
|
Создано: 22 ноября 2011 14:27 · Поправил: chelpa · Личное сообщение · #29 Вот эта поделка, но думаю вряд ли заработает отпишись только как она запустилась или нет и что да как было, чтобы понять, где покопать. |
|
Создано: 22 ноября 2011 17:19 · Личное сообщение · #30 |
|
Создано: 22 ноября 2011 22:51 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >> |
eXeL@B —› Основной форум —› Взлом Android приложений |