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

Сейчас на форуме: Adler (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · 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 (новичок)
Статус: Участник

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

Немного оффтоп. Может тогда в шапке выкладывать ссылки на софт и статьи.

| Сообщение посчитали полезным: dgyst


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

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

Никто не шаред в андроидах чтоле? Где вы, [wl], TolyaN3z, intro?

| Сообщение посчитали полезным: dgyst


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

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

Я пробовал и return 0, и return 1 и return 2. Сообщение не вылазит, но и блок работает не верно.
3 наверно после проверки чего-то выходит и это что-то и мешает работать верно.

| Сообщение посчитали полезным: Abraham


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

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

SaNX
C хорошей проги начал. Спасибо, жаль, что ничем помочь не могу, но буду рад ломанной версии

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

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

tundra37 пишет:
3 наверно после проверки чего-то выходит и это что-то и мешает работать верно.

похоже, что нет, т.к. я сделал так, что 3 никогда не будет в этом Int-е.


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

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

в файле fahrbot\lib\phone\lectus.java прямо в коде находится zip-файл по частям, который в процессе работы распаковывается, там находится ELF-файл размером почти в мегабайт (rilproxy), так что похоже, что натив в программе есть

| Сообщение посчитали полезным: Abraham


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

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

Блджад! Я так и думал, кстате. Уж больно подозрителен джава на 6 с лишним метров. Как его распаковать? Неужто придется все эти массивы выдирать?

ADD:
файл я дернул (тут http://rghost.ru/21547521 ~1метр), но чето легче не стало.
там есть строка REGISTRATION_STATE, но переход вида BX LR, хз куда он ведет.

[wl], hex ждем вас

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

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

Вобщем, сделал, что создаваемый файл всегда имеет одно и то же имя.
smali\fahrbot\lib\phone\dolor.smali
было:
Code:
  1. .method static Ut(Ljava/io/File;)Ljava/io/File;
  2.     invoke-static {}, Ljava/lang/System;->nanoTime()J
  3.     move-result-wide v0
  4.     invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
  5.     move-result-object v0
  6.     new-instance v1, Ljava/io/File;
  7.     invoke-direct {v1, p0, v0}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V

стало
Code:
  1. .method static Ut(Ljava/io/File;)Ljava/io/File;
  2.     invoke-static {}, Ljava/lang/System;->nanoTime()J
  3.     move-result-wide v0
  4.     invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
  5.     move-result-object v0
  6.     new-instance v1, Ljava/io/File;
  7.     const-string v0, "rcb.so"
  8.     invoke-direct {v1, p0, v0}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V


Файло создается, но всегда потом удаляеццо. Почистил уже все java/io/File;->delete()Z, однако файло все-равно удаляеццо. Есть еще какие функи для удаления файла?

ЗЫ: цель в том, чтоб самому записывать патченный файл, чтоб прога его не создавала и не удаляла, а просто запускала готовый. Тогда можно будет его подебажить на предмет REGISTRATION_STATE.


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

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

удаление файла происходит в методе fahrbot.lib.phone.BasePhoneDaemonService.run()
...
try
{
if(feugiat1.Ut != null)
flag = ((java.io.File)feugiat1.Ut).delete();
}
...

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

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

А вот хрен там. Я убрал эту строку сразу - файло все равно удаляеццо. Похоже, нативная библа себя стирает.

кстати, вышла версия 1.6.8, дык она вообще не декомпилируется. This dex file has link section блаблабла ignoring. Мож есть решения для этого?


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

Создано: 17 сентября 2011 23:49 New!
Цитата · Личное сообщение · #12

SaNX пишет:
она вообще не декомпилируется


выложи .apk или .dex.

Что используешь? Глядя на то, что получаешь smali, то apktool.
Попробуй dex2java.


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

Создано: 17 сентября 2011 23:56 · Поправил: [wl] New!
Цитата · Личное сообщение · #13

а либа кстати и не либа вовсе, а отдельное приложение, общаются с интерфейсом через сокеты.
возможно имеет смысл написать отдельное короткое приложение, серийник та вытащить, или еще что..

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

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

OKOB
ни апктул, ни декс2джава не работают на этом файле.
файло тут: http://rghost.ru/22010651

[wl]
дык там вроде серийника как такового и нет, лицензируется через гугловский LVL. да и не настолько я в этом разобрался, чтоб самому писать приложения под андроид


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

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

я тоже не разбираюсь, просто увидел такое:

package fahrbot.lib.phone;
public final class et{
...
public final String toString()
{
...
return String.format("%s { cId: 0x%04X %04X, serial: %d, DataSize: %d }", aobj);
}
}

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

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

Вводить его некуда

Если просто не ломанную поставить, то оно скажет: нужно проверить лицензию через интернеты. И все, никаких серийников


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

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

я тут покурил java-исходники проги, за состояние зарегистированности отвечает только одна переменная:

package fahrbot.apps.rootcallblocker.pro.utils;
public final class et{
boolean Ut;
}

можно попробовать поменять ее значение на true в функциях этого класса:
public final void et()
public final void Ut(com.android.vending.licensing.Duis duis)

и посмотреть, будет ли прога считать себя зарегистрированной после проверки лицензии на сайте

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

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

Мож я чего то и не догоняю, но в этих классах она и так пишется как тру:

Code:
  1. .method public final et()V
  2.     .locals 3
  3.     .prologue
  4.     const/4 v2, 0x1
  5.     const-string v0, "license check dontAllow"
  6.     iput-boolean v2, p0, Lfahrbot/apps/rootcallblocker/pro/utils/et;->Ut:Z


Code:
  1. .method public final Ut(Lcom/android/vending/licensing/Duis;)V
  2.     .locals 3
  3.     .parameter
  4.     const/4 v2, 0x1
  5.     const-string v1, "license check error: "
  6.     iput-boolean v2, p0, Lfahrbot/apps/rootcallblocker/pro/utils/et;->Ut:Z


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

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

в джаве это выглядит так:
Code:
  1.     public final void Ut(com.android.vending.licensing.Duis duis)
  2.     {
  3.         java.lang.String s = (new StringBuilder()).append("license check error: ").append(duis).toString();
  4.         java.lang.Object aobj[] = new java.lang.Object[0];
  5.         fahrbot.lib.log.lectus.Ut(s, aobj);
  6.         Ut = false;
  7.         if(Ut == null)
  8.         {
  9.             return;
  10.         } else
  11.         {
  12.             Ut.Ut(this);
  13.             return;
  14.         }
  15.     }


Code:
  1.     public final void et()
  2.     {
  3.         java.lang.Object aobj[] = new java.lang.Object[0];
  4.         fahrbot.lib.log.lectus.dolor("license check dontAllow", aobj);
  5.         Ut = false;
  6.         if(Ut == null)
  7.         {
  8.             return;
  9.         } else
  10.         {
  11.             Ut.Ut(this);
  12.             return;
  13.         }
  14.     }


а в smali я не разбираюсь. Кроме того, мне кажется, что LVL все-таки просто для отвода глаз, иначе бы работало с antilvl

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

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

Попробовал, вообще убрал if-ы, ничего не изменилось. Натив 100% проверяет регу


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

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

какие if-ы? В этих функциях? они как раз нужны, так как записывают результат проверки лицензии куда-то там в потроха.

блин, как же не хватает нормальных инструментов для работы с dex-ами, тот же ApkManager не хочет у меня работать, да и вообще все как-то через жопу

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

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

Под "убрать ифы" я имел ввиду приведение к такому виду:

Code:
  1.        java.lang.Object aobj[] = new java.lang.Object[0];
  2.         fahrbot.lib.log.lectus.dolor("license check dontAllow", aobj);
  3.         Ut = True;
  4.         Ut.Ut(this);
  5.         return;



[wl] пишет:
блин, как же не хватает нормальных инструментов для работы с dex-ами, тот же ApkManager не хочет у меня работать, да и вообще все как-то через жопу

ну apktool нормально декомпилит до сорцов.


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

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

Разбираться неохота пока...
Ты уверен, что во всех случаях java-часть проги выдает true для переменной Ut?
native-прогу я вообще не понимаю - где она берет импорты например? список пуст. Как отлаживать её, запущенную на эмуляторе, в ИДА? Мобилы у меня нет

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

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

Небольшая презентация по реверсу андроида, немного говорится и про реверс натив кода.

{ Атач доступен только для участников форума } - DeepSec_2010_Reverse_Forensics.rar

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

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

[wl] пишет:
Ты уверен, что во всех случаях java-часть проги выдает true для переменной Ut?

нифига не уверен.

[wl] пишет:
native-прогу я вообще не понимаю - где она берет импорты например?

а вот хз. первые несколько версий навитела под андроид также без импортов были, однако все работало.

[wl] пишет:
Как отлаживать её, запущенную на эмуляторе, в ИДА? Мобилы у меня нет

Отлаживать было бы легко, если б она сама себя не стирала. Вот чего надо добиться в первую очередь.

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

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

Sanx, тебе удалось декомпильнуть 1.6.8?


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

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

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


dedexer ее взял, но на выходе ddx файлы похожие на smali и работать с ними не камильфо.

Есть еще есть --> DED <-- тулса, но только Линух и МакОсь и проверить не могу.


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

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

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

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

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

Я так понял там в секции кода, если ее так можно назвать, встречаются опкоды, например 0xED, которые backsmali не знает и выдает эксепшн.


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

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

локализованная ошибка - 50% исправленная ошибка.
кстати вы не заметили, что в исходниках dex2ar не хватает некоторых файлов? что-то там "v3.Main"
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений

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