Русский / Russian English / Английский

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Основной форум —› Взлом Android приложений
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
Посл.ответ Сообщение

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 12 сентября 2011 12:37 · Поправил: 25 июня 2016 11:59 SaNX New!
Цитата · Личное сообщение · #1

В теме обсуждаются вопросы взлома под андроид и соответствующие тулзы.
ТУТОРИАЛЫ:
--> Тутор от chelpa<--
--> От аффтора antilvl<--
--> дебаг .so<--

ТУЛЗЫ:
JEB
ApkAnalyser
--> Android Reverse Engineering (A.R.E.) <--
--> Apktool <--
--> Smali/baksmali <--
--> APKRecovery <--
--> Dex2Jar <--
--> APKInspector <--
--> Lucky Patcher 1.2.0 <--
--> Crack Assist 0.3 <--
--> ART <--
--> JD-GUI <--
--> DexInspector <--
--> Android unpacker <--
GikDbg


В аттаче fernflower, очень годный жава декомпилер.
{ Атач доступен только для участников форума } - fernflower.jar

| Сообщение посчитали полезным: 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


Ранг: 15.1 (новичок)
Статус: Участник

Создано: 20 сентября 2011 00:29 New!
Цитата · Личное сообщение · #2

Смотрел в иде, есть большой класс lectus, в котором все методы кроме одного содержат массивы байт. Я думаю, что массивы -это код методов из других классов и видимо этот код нужно восстановить для дальнейшего реверса.


Ранг: 522.4 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 00:33 · Поправил: OKOB New!
Цитата · Личное сообщение · #3

manco пишет:
это код методов из других классов


смотри выше по топу. там бинарь который содержит армовский натив в зипованом формате ЕЛФ.
уже все обсосали и санки его вынул.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 20 сентября 2011 00:37 · Поправил: SaNX New!
Цитата · Личное сообщение · #4

manco пишет:
тебе удалось декомпильнуть 1.6.8?

нифига не удалось

OKOB
+1

блджад! Эта говнопрога меня в ступор ввела. Как ее падлу дебажить, если файла нет на диске? ИДА нихера не показывает


Ранг: 196.6 (ветеран)
Статус: Участник

Создано: 20 сентября 2011 10:44 · Поправил: [wl] New!
Цитата · Личное сообщение · #5

а его (нативный демон) можно отдельно запустить на отладку (запускается с ключем --gsm)? Наверняка там по ходу запуска должна идти проверка на зарегистированность


Ранг: 522.4 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 18:44 New!
Цитата · Личное сообщение · #6

[wl] пишет:
в исходниках dex2ar не хватает некоторых файлов? что-то там "v3.Main"


это разве не оно.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 20 сентября 2011 18:55 New!
Цитата · Личное сообщение · #7

[wl] пишет:
а его (нативный демон) можно отдельно запустить на отладку (запускается с ключем --gsm)

хорошая идея, надо попробовать.

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 20 сентября 2011 22:32 New!
Цитата · Личное сообщение · #8

Здесь http://rghost.ru/22392341 ломаный 1.6.3. Может будет полезным в анализе.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 21 сентября 2011 07:22 New!
Цитата · Личное сообщение · #9

manco
Откуда он? Если с 4пда или димонвидео - то этой мой, недоломанный.

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 21 сентября 2011 10:55 · Поправил: manco New!
Цитата · Личное сообщение · #10

Качал с какого-то пиндосского сервера, но сам его не ставил, т.к. девайс не рутован.

Вот еще лог, видимо так запускается демон из программы. В иде видел несколько возможных ключей --gsm, --cdma, --debug и еще какие-то.
Code:
  1. Internal error log:
  2.  09-10 04:52:13: [RootShell.execCommandUnThreaded]: executing command "chmod 755 /data/data/fahrbot.apps.rootcallblocker.pro/105714150293"...
  3.  09-10 04:52:14: [RootShell.execCommandUnThreaded][stderr]: 
  4.  09-10 04:52:14: [RootShell.execCommandUnThreaded]: Returned value: 0
  5.  09-10 04:52:14: [RootShell.execCommandUnThreaded]: finally destroying process.
  6. <b> 09-10 04:52:14: [RootShell.execCommandUnThreaded]: executing command "/data/data/fahrbot.apps.rootcallblocker.pro/105714150293 --gsm"...</b>
  7.  09-10 04:52:14: [RootShell.execCommandUnThreaded][stderr]: 
  8.  09-10 04:52:14: [RootShell.execCommandUnThreaded]: Returned value: 0
  9.  09-10 04:52:14: [RootShell.execCommandUnThreaded]: finally destroying process.
  10.  09-10 04:52:15: DaemonSocket.checkVersion(): Running version: 51, Requested version: 51
  11.  09-10 04:52:15: DaemonSocket.checkVersion(): Running version: 51, Requested version: 51
  12.  09-10 04:53:14: fahrbot.daemon.phone.FEATURES_CHANGED received, oldFeatures: 0xFFFFFFFF, features: 0x2
  13.  09-10 04:53:14: checkLicense: ch: null
  14.  09-10 04:53:15: LicenceChecked: true c: fahrbot.apps.rootcallblocker.pro.utils.et@405eea78 ch: fahrbot.apps.rootcallblocker.pro.utils.et@405eea78
  15.  09-10 04:54:14: checkLicense: ch: null
  16.  09-10 04:54:15: LicenceChecked: true c: fahrbot.apps.rootcallblocker.pro.utils.et@40609b10 ch: fahrbot.apps.rootcallblocker.pro.utils.et@40609b10

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 21 сентября 2011 15:21 New!
Цитата · Личное сообщение · #11

Я проверил, это мой недоломаный.

Ранг: 33.7 (посетитель)
Статус: Участник

Создано: 22 сентября 2011 23:23 · Поправил: Leatherfase New!
Цитата · Личное сообщение · #12

так не в тему....нашел пару туторов по взлому))) в архивах стататьи и крякми на андроид)))
--> Тут <--

Ранг: 6.5 (гость)
Статус: Участник

Создано: 10 октября 2011 22:44 New!
Цитата · Личное сообщение · #13

SaNX, как успехи по взлому кэлл блокера 1.6.6 проф?
С интересом прочитал всю тему, есть огромное желание продолжать и развиать ее, так как инфы по лечению прог под андройд встречал мало(1-2 норм статьи и то все не подробно расписанно)...

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 10 октября 2011 23:32 New!
Цитата · Личное сообщение · #14

WmLiM пишет:
как успехи по взлому кэлл блокера 1.6.6 проф?

пока забросил.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 14 октября 2011 19:00 · Поправил: SaNX New!
Цитата · Личное сообщение · #15

Как из --> этой библы <-- вызвать функу GetRPN минуя само приложение?
Или мож у кого хексрэй для арма есть и сможете ее конвертнуть в удобоваримый язык?

Ранг: 6.5 (гость)
Статус: Участник

Создано: 14 октября 2011 19:43 New!
Цитата · Личное сообщение · #16

SaNX пишет:
вызвать функу GetRPN минуя само приложение?Или мож у кого хексрэй для арма есть и сможете ее конвертнуть в удобоваримый язык?

Я тебе могу скинуть хексрэй, если надо, я при дэбаге почему то не нашел функцию GetRPN ни в экспорте ни в импорте...

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 14 октября 2011 19:58 · Поправил: SaNX New!
Цитата · Личное сообщение · #17

Как не нашел?

Code:
  1. .text:000027C0 ; GetRPN(_JNIEnv *, _jstring *)
  2. .text:000027C0                 EXPORT _Z6GetRPNP7_JNIEnvP8_jstring
  3. .text:000027C0 _Z6GetRPNP7_JNIEnvP8_jstring            ; CODE XREF: CheckRPN(_JNIEnv *)+AEp
  4. .text:000027C0                                         ; CheckRPN(_JNIEnv *,_jstring *,_jstring *)+6p ...


Если хексрэй именно для арм - то давай, конечно.
И еще android_server скинь новый, если есть.

Ранг: 6.5 (гость)
Статус: Участник

Создано: 14 октября 2011 21:30 · Поправил: WmLiM New!
Цитата · Личное сообщение · #18

Качал вот по этой ссылке иду --> Link <-- было бы опыта по более я бы тебе сказал норм версия или нет... Вобщем я свободно дэбажу на своем теле и код приемлемый...

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 14 октября 2011 21:32 New!
Цитата · Личное сообщение · #19

ггг. это у всех есть. на другом теле нормально дебажилось, на новом - нихрена не ребэйзит падла.

Ранг: 6.5 (гость)
Статус: Участник

Создано: 14 октября 2011 21:39 New!
Цитата · Личное сообщение · #20

Почему тогда на вирт девайсе не дэбажешь?

Ранг: 6.5 (гость)
Статус: Участник

Создано: 15 октября 2011 23:29 New!
Цитата · Личное сообщение · #21

Вышел новый Apk Manager v5.0.2
--> Link <--

Ранг: 90.7 (постоянный)
Статус: Участник

Создано: 18 октября 2011 17:02 New!
Цитата · Личное сообщение · #22

Назрел вопрос. Неделю уже мучаю игрушку, из-за обфускатора вообще код не читабелен. Как мне не приаттачиться к процессу уже запущенному, а запустить его через android_server и остановить в самом начале кода, по аналогии с Win-приложениями? А то там процесс инициализации протекает без моего участия, и мне кажется , что там разгадка.
И еще вопрос про Dalvik код Иды. Можно ли и его через android_server дебаджить? А то я когда classes.dex в Иде открываю, он мне не дает дебаггер выбрать.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 18 октября 2011 18:19 · Поправил: SaNX New!
Цитата · Личное сообщение · #23

Далвик хер отладишь похоже вне эклипса. Я не нашел, по крайней мере.

По поводу запуска попробуй так: ставишь бряк, запускаешь прогу на теле. Нажимаешь аттач, вылазит список процессов. На теле прогу гасишь. В иде жмешь аттач, после того, как ида остановится в левой библе, запускаешь прогу на теле и в иде жмешь run. У меня так прокатывало, брякалось на функах, которые при запуске проги вызывались.

Выложи чтоль прогу, поглядим вместе

Ранг: 90.7 (постоянный)
Статус: Участник

Создано: 19 октября 2011 10:29 · Поправил: chelpa New!
Цитата · Личное сообщение · #24

Вот игра номер РАЗ --> Link <--

Использует кроме LVL еще какую-то защиту VZWLicense. В smali нужно искать места по vzw. Что только не пробовал, всё равно после первого уровня слетает, вернее по защите выходит. Вся проблема в том, что никаких сообщений про лицензии не пишет и понять, где лечить сложно. Да и вообще не понять чем себя игра считает - лицензией или нет

Вот игра номер ДВА: --> Link <--

не качает кэш. Запускается, проверяет пару checksum и дальше палочки в пин-понг играют, а ничего не качается, но должно. Не могу понять что кроме LVL фиксить, потому что опять же никаких сообщений про лицензию и возникают трудности

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 19 октября 2011 10:54 · Поправил: SaNX New!
Цитата · Личное сообщение · #25

Вторую прогнал антилвл - качает (http://rghost.ru/26203661). Но там гиг кэша качать -нах надо. Первую еще смотрю.

Вот первая:
Code:
  1. .class final Lcom/jakyl/ix/p;
  2. .super Ljava/lang/Object;
  3.     invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setCancelable(Z)Landroid/app/AlertDialog$Builder;
  4.     const-string v1, "Error Checking License"
  5.     invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
  6.     const-string v1, "Sorry, we cannot verify your license. Please ensure you have a valid internet connection and retry. Launching the Market to check your license."
  7.  
  8.     invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

Ранг: 90.7 (постоянный)
Статус: Участник

Создано: 19 октября 2011 11:02 · Поправил: chelpa New!
Цитата · Личное сообщение · #26

В первой меня диалоги и не мучают, как LVL пофиксил руками, всё без сообщений работало, но после первого уровня слетает, там где-то проверка. Хотя... надо там порыть.. спс.

Народ писал на форуме, что игра отлично работает на устройствах, где есть кнопка поиск. При запросе лицензии её нажимали и играли довольные дальше. Возможно LVL фиксить и не надо, а только сообщения о лицензии. Но это кривой взлом... не красивый. В следующей версии пофиксят и будет жопа, потому что не понимаем, где LVL перепроверяется и как. Вернее VZW перепроверяет, но понять полностью его работу не могу На smali мозг сломаешь Отладка Далвика нужна

SaNX пишет:
Вторую прогнал антилвл - качает


попался)) не качает)) я тоже так думал... там срабатывает защита, и палочки просто так играют, а цифры бегут для вида В этом и сложность. А LVL я и в ручную разбираю, но пока результата нет, да и не в нем дело, есть еще проверки

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 19 октября 2011 15:32 New!
Цитата · Личное сообщение · #27

Вот попробуй. Начал играть, что с инетом, что без инета не вылетает
http://rghost.ru/26225681

Ранг: 90.7 (постоянный)
Статус: Участник

Создано: 19 октября 2011 16:21 · Поправил: chelpa New!
Цитата · Личное сообщение · #28

дома попробую... с собой нет устройств на андроид 2.3
Меня больше интересует не сама возможность играть, а где правил В общем дома погляжу, а со второй игрой как? Будешь разбираться или лениво уже?

Как ты додумался, что тут надо править?
Code:
  1. .class public Lcom/a/a/a/p;
  2.  
  3. method private declared-synchronized a([BLjava/lang/String;)Z
  4.     .locals 6
  5.  
  6.     const/16 v1, 0x80
  7.  
  8.     const/4 v5, 0x0 //(поменял на 0x1)

Во втором месте я тоже пробовал манипулировать, но вот про это я бы не допёр без отладки. Мне понятно, что в ней находиться результат возврата V0 по умолчанию, просто само назначение этой функции как было разгадано, мне не понятно

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 19 октября 2011 18:56 · Поправил: SaNX New!
Цитата · Личное сообщение · #29

Ну короче смотри. Прога после вылета открывает маркет со своей страницей. Ищем по слову market://, попадаем в Lcom/jakyl/ix/iXActivity :

Code:
  1. .method static synthetic b(Lcom/jakyl/ix/iXActivity;)V
  2.     const-string v1, "android.intent.action.VIEW"
  3.     const-string v3, "market://details?id="
  4.     const-string v3, "&referrer=utm_source%3Dinapp%26utm_medium%3Dlaunchmarket%26utm_content%3D"
  5.     const-string v3, "%26utm_campaign%3Djakyl"
  6. .end method


Ищем, кто вызывает его, и находим Lcom/jakyl/ix/t:
раз
.method public final a(Lcom/android/vending/licensing/v;)V
и два
.method public final a(Z)V


Ну а тут смотришь и правишь джампы, чтоб оно не вызвалось. Но может еще где всплывут проверки, смотри уже дальше сам

Вторую надо дебажить. В либах libSpectralSouls.so есть функа:

Code:
  1.                EXPORT Java_com_hyperdevbox_spectralsouls_SpectralSouls_GetNumeroDialog
  2. .text:000277AC Java_com_hyperdevbox_spectralsouls_SpectralSouls_GetNumeroDialog
  3. .text:000277AC                 LDR     R3, =(unk_357D80 - 0x277B8)
  4. .text:000277B0                 ADD     R3, PC, R3
  5. .text:000277B4                 LDR     R0, [R3,#0xC]
  6. .text:000277B8                 BX      LR
  7. .text:000277B8 ; End of function Java_com_hyperdevbox_spectralsouls_SpectralSouls_GetNumeroDialog


Когда эта функа возвращает цифру 2, то показывают диалог о том, что нужно прогу купить. Узнать, куда ведет BX LR можно только дебагом

Ранг: 90.7 (постоянный)
Статус: Участник

Создано: 19 октября 2011 19:55 New!
Цитата · Личное сообщение · #30

По поводу первой игрушки:
Облом, дома запустил игру и подвижек не нашел. Когда заканчиваешь первый уровень, игра выходит. А значит мы с тобой в её взломе не продвинулись, а очень хотелось, чтобы это было так Я фиксил LVL и получал такой же результат, какой ты получил правя саму прогу, но у зарегистрированных пользователей игра не слетает после первого уровня. И не слетает даже у тех, кто кнопкой поиска проблему решает с лицензией (об этом я писал выше).

По поводу SpectralSouls:

В этой либе я уже неделю живу и заставить прогу скачивать кэш не получилось, кроме пары раз, когда случайно скачивались куски файлов. И по этому bx lr не один раз ходил ранее, меня дебаггер выкидывает с ошибкой, либо самопроизвольно запускается после эксепшена.

Ну в целом, спасибо за помощь. Жаль, что пока без ощутимой пользы.

Ранг: 456.3 (мудрец)
Статус: Участник
Android Reverser

Создано: 19 октября 2011 20:22 · Поправил: SaNX New!
Цитата · Личное сообщение · #31

chelpa
Значит, надо ждать более опытных товарищей, потому что я тоже больше ничего найти не могу

Надо как-то переводить далвик в нормальный джава код, чтоб потом можно было импортнуть в эклипс и дебажить там. А то весь слом далвика похож на гадание по гуще, блджад!

Кстати, можно еще использовать логи и потом мониторить их появление в DDMS:

Code:
  1.     const-string v1, "LicenseChecker"
  2.     const-string v2, "Binding to licensing service."
  3.     invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I


только вместо этих строк использовать какие-то свои метки и смотреть когда и что выполняется.

И еще: в первой игре мелькают строки "Load SceneOne"или типа того, можно еще поискать scenetwo и смотреть откуда оно должно вызваться и почему не вызывается.
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений

Видеокурс ВЗЛОМ