Сейчас на форуме: -Sanchez- (+7 невидимых)

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

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 12 сентября 2011 12:37 · Поправил: SaNX
· Личное сообщение · #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, очень годный жава декомпилер.
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

Ранг: 11.3 (новичок), 8thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2012 04:06 · Поправил: gsx3000
· Личное сообщение · #2

Пытаюсь поломать GoldenDict 1.5.6 в программе насколько я понял два способа активации

1. проверка лицензии через маркет
2. активация через файл /sdcard/GoldenDict/goldendict-key.txt

попытался подсунуть левый файл goldendict-key выдается ошибка:

Code:
  1. There was a problem with your license file /mnt/sdcard/GoldenDict/goldendict-key.txt: corrupted file data. Please fix the problem or remove the file.


Нашел эту проверку в файле GDActivity.smali

Code:
  1. if-nez v2, :cond_73
  2.  
  3. изменил на
  4.  
  5. if-eqz v2, :cond_73


Прежняя ошибка исчезла и проверку лицензии через маркет больше не запрашивает но при выборе какого-нибудь слова
в словаре появляется другая:

Code:
  1. Error: Installation corrupted. Please reinstall the app.


Лог через adb -e logcat:

Code:
  1. D/GoldenDict(20612): WordSearch thread starting
  2. D/GoldenDict(20612): Target url: content://mobi.goldendict.android/article/-1/-1/AI
  3. D/GoldenDict(20612): Request for resource: content://mobi.goldendict.android/article/-1/-1/AI
  4. D/GoldenDict(20612): Request for word AI
  5. D/GoldenDict(20612): Streaming article
  6. D/GoldenDict(20612): Beginning written
  7. D/GoldenDict(20612): Api exception: Installation corrupted. Please reinstall the app.
  8. D/GoldenDict(20612): Stream closed


Также в InstallLicenseFile.smali нашел код похожий на проверку файла

Code:
  1. :cond_39
  2. invoke-virtual {p0}, Lmobi/goldendict/android/InstallLicenseFile;->n()[Lmobi/goldendict/android/a/c;
  3.  
  4. move-result-object v2
  5.  
  6. const-string v3, "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSB7dNXi6RpHa1uMOLdkHfRNZXnt/kD/woSSPkc1FYWKs7pjGKo+cA/OFBoHj8zMII0apX3kOy7ZODIiOF+PfGqX0Vf5udRFjZf6QU56nyqRQDGWjfgfSjobystSoNXOM+TruSC7LWv6897Fe9Lz02Gm4aUMSf/3YtCIYabh0XgwIDAQAB"
  7.  
  8. invoke-static {v3}, Lmobi/goldendict/android/a;->a(Ljava/lang/String;)[B
  9.  
  10. move-result-object v3
  11.  
  12. invoke-static {p0, v2, v3, v0, v1}, Lmobi/goldendict/android/a/a;->a(Landroid/content/Context;[Lmobi/goldendict/android/a/c;[BLjava/io/File;Lmobi/goldendict/android/a/b;)Z
  13.  
  14. move-result v0
  15.  
  16. nop #if-nez v0, :cond_8b 
  17.  
  18. # License file installed successfully.
  19. ....


И опять таже ошибка (Installation corrupted. Please reinstall the app.) не могу понять как программа определяет целостность.
Подскажите можно ли как-нибудь удалять провеку лицензии через маркет (anti lvl не пашет) или лучше все таки найти проверку целостности?



Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 03 декабря 2012 10:40
· Личное сообщение · #3

gsx3000

есть подозрение, что вот этим "content://mobi.goldendict.android/article/-1/-1/AI", а в частности "-1/-1" он оповещает свой сервис, что есть проблемы в проверке лицензии, но это лишь подозрения. Проверить можно поставив ломанный маркет и посмотрев, что придёт туда при удачной проверке лицензии.

А так мы с SaNX смотрели его по очереди Но терпения не хватило у обоих докопаться до истины. Предположения и находки были такие:

- Видели как CRC уходит в библиотеку. Видимо CRC библиотеки, так как CRC classes.dex можно проверить только из нее.
- Есть две бибилиотеки. Одна открытая и адекватных кодов и проверок не содержит, но является передаточным звеном в другую библиотеку, которая пожата чем-то (не спец в этой области, не знаю чем на андроиде жмут). У титана кстати тоже бибилотеки пожаты и похоже тем же самым.
- Для сообщения о повреждённой инсталяции причнами служат: изменные CRC компонентов, изменение подписи пакета, неправильные данные о лицензии SignedData и Signature, но с признаками о якобы положительной проверке (видимо перепроверка), а также патч далвик кэша или создание одекса к приложению. Как он узнает о патч далвик кэша для меня загадка.
- SaNX заметил, что после проверки лицензии в папке данных приложения (/data/data/mobi.goldendict/)появляется архив с 8 байтами или в районе того, не помню уже. Видимо этот архив содержит признаки проверки лицензии (Если есть терпение, то сравни эти архивы со сломанным маркетом и без него).

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

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 декабря 2012 17:49
· Личное сообщение · #4

подскажите, возможно ли например приобрел игру/программу в ней находится файл лицензии, который с помощью рут можно перекинуть на другй аппарат (путь \data\data\com.программа.android\profile) , можно ли его внедрить в apk и прописать пути для установки



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 04 декабря 2012 17:57 · Поправил: ELF_7719116
· Личное сообщение · #5

mishanet
Скорее всего - возможно! Формат apk по своей сути - обычный архив zip. По аналогии с Symbian, распаковать apk, добавить файл лицензии(прописать путь в файле ресурсов возможно) и заново пересобрать.

Для примера, суть вкратце: http://developer.alexanderklimov.ru/android/apk-whatitis.php



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 декабря 2012 00:48
· Личное сообщение · #6

нашел на заморских форумах
You can save it in /res/raw folder
If you save your file as yourfile.txt
Code:
  1. InputStream inputStream = this.getResources().openRawResource(R.raw.yourfile);

или
The way I've done this in the past is just store whatever it is you want to add in the res/raw directory of the project, then when the program first runs, copy the raw resource wherever you want it in the tree.
Code:
  1.  // Copy the helper app from resources to an executable in our classpath
  2.   protected void CopyExtraBin() {
  3.     // check if it's already there
  4.     File helper = new File("/data/data/com.mypath.myprog/helper_app");
  5.     if (helper.exists()) {
  6.       // already there, nothing to do.
  7.       return;
  8.     }
  9.     InputStream setdbStream = getResources().openRawResource(R.raw.helper_app);
  10.     try {
  11.       byte[] bytes = new byte[setdbStream.available()];
  12.       DataInputStream dis = new DataInputStream(setdbStream);
  13.       dis.readFully(bytes);
  14.       FileOutputStream setdbOutStream = new FileOutputStream(
  15.           "/data/data/com.mypath.myprog/helper_app");
  16.       setdbOutStream.write(bytes);
  17.       setdbOutStream.close();
  18.  
  19.       // set executable permissions on our helper
  20.       Process process = Runtime.getRuntime().exec("sh");
  21.       DataOutputStream os = new DataOutputStream(process.getOutputStream());
  22.       os.writeBytes("chmod 755 /data/data/com.mypath.myprog/helper_app\n");
  23.       os.writeBytes("exit\n");
  24.       os.flush();
  25.  
  26.     } catch (Exception e) {
  27.       Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
  28.       return;
  29.     }
  30.   }

вопрос код достаточно прописать в strings.xml ?



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 06 декабря 2012 09:15
· Личное сообщение · #7

mishanet пишет:
вопрос код достаточно прописать в strings.xml ?

с чего бы вдруг в массив строк можно стало писать исполняемый код?

-----
SaNX




Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 06 декабря 2012 10:49
· Личное сообщение · #8

mishanet пишет:
вопрос код достаточно прописать в strings.xml ?


Вставлять код надо в smali, найти активити, которое запускается первым и ему прописывать код по копированию файла. Файл до копирования можно держать в апк в /res/raw/ или в /assets.

И имейте в виду, что код будет не такой как Вы привели в примере, его еще надо перевести в смали.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 06 декабря 2012 19:18
· Личное сообщение · #9

SaNX
добавь в шапку полезность --> Link <--

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 06 декабря 2012 21:49 · Поправил: SaNX
· Личное сообщение · #10

ajax
ага, сам его юзаю. странно, что забыл добавить

ЗЫ: добавил джд-гуи и фернфлавер.

-----
SaNX




Ранг: 22.4 (новичок), 23thx
Активность: 0.020
Статус: Участник

Создано: 07 декабря 2012 21:42 · Поправил: Dazz
· Личное сообщение · #11

SaNx, а как запустить FernFlower?
Я запускаю так: java fernflower.jar 34.class
и так: java fernflower.jar
и получаю ошибку:
Error: Could not find or load main class fernflower.jar

update:
Запустил apkanalyser-5.2-exec.jar и глянул, какой командой запускается jar.
Запустил также:
javaw.exe -jar fernflower.jar
javaw.exe -jar fernflower.jar 34.class

Никаких ошибок нет, но и ничего не происходит..

update2:
Нужно было в конце команды добавить название выходной папки, т.е.
javaw.exe -jar fernflower.jar 34.class test

И не работает с классом java моб.телефонов. Получилось с классом android.



Ранг: 4.9 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 07 декабря 2012 22:56
· Личное сообщение · #12

Нашел readme от Fernflower в нем описание параметров и небольшие примеры.

45b3_07.12.2012_EXELAB.rU.tgz - fernflower.txt

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

Ранг: 22.4 (новичок), 23thx
Активность: 0.020
Статус: Участник

Создано: 07 декабря 2012 23:32 · Поправил: Dazz
· Личное сообщение · #13

А это тот же FernFlower, который был в онлайн reversed-java.com?

update:
Все, нашел http://kr105.com/blog/general/fernflower-el-mejor-descompilador-de-java/
Здесь архив с fernflower.jar, readme.txt, license_en.txt
В license_en.txt написано, что автор Stiver из reversed-java




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 08 декабря 2012 12:49
· Личное сообщение · #14

по моему личному мнению, лучшим декомпилятором, в том числе под андроид, до сих пор остается jad.exe
всё остальное - попса



Ранг: 4.9 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 09 декабря 2012 22:47
· Личное сообщение · #15

Может кому пригодится онлайн комбайн на основе JAD позволяет выводить диаграмму классов в виде графов, выводить строки, Used permissions, Activities, Services и т.д. также можно работать над проектом совместно.

Dexter is an interactive Android software analysis environment with collaboration features.

Analysis capabilities include static and dynamic modules, heuristic result enrichment, a flexible tagging system and an API for automated processing / extending.

_http://dexter.dexlabs.org




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 11 декабря 2012 02:42
· Личное сообщение · #16

http://www.android-decompiler.com/

| Сообщение посчитали полезным: SaNX, Fedonin, t0ShA, c4sp3r, BAHEK

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 11 декабря 2012 12:29
· Личное сообщение · #17

reversecode
Выглядит очень прикольно. Подождем релиза

-----
SaNX




Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 14 декабря 2012 13:01 · Поправил: chelpa
· Личное сообщение · #18

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

8e98_14.12.2012_EXELAB.rU.tgz - tutor.txt

| Сообщение посчитали полезным: SaNX, c4sp3r, gsx3000, t0ShA

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 14 декабря 2012 14:48
· Личное сообщение · #19

chelpa
все ок, только не requestCode, а responseCode, ну и
Меняем на такое:

invoke-virtual {v0, v1}, Ljava/security/Signature;->verify([B)Z

move-result v0

goto :cond_2

правильней бы менять move-result v0 на const/4 v0, 0x1, а то мало ли дальше проверка будет

-----
SaNX




Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 14 декабря 2012 15:24 · Поправил: chelpa
· Личное сообщение · #20

SaNX пишет:
правильней бы менять move-result v0 на const/4 v0, 0x1, а то мало ли дальше проверка будет


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

А с кодом, да, обозвал не правильно Главное что суть ясна и инструмент народу выдан Уже на трёх приложениях опробовал. Надо бы их сюда подцепить, но размер у них общий большой. К сообщению не привяжешь, а на обменнике канет в лету

Вот реализованный пример: http://rghost.ru/42233667



Ранг: 11.3 (новичок), 8thx
Активность: 0.010
Статус: Участник

Создано: 14 декабря 2012 16:16
· Личное сообщение · #21

chelpa

Можешь плиз оригинал не патченный выложить хочу по тренироваться)



Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 14 декабря 2012 17:28
· Личное сообщение · #22

Вот оригинал: http://rghost.ru/42236405
Вот вылеченная, тут еще пофиксена проверка подписи пакета в бибилотеке, а то не работал в режиме slide: http://rghost.ru/42236433

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

Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 17 декабря 2012 17:27
· Личное сообщение · #23

Вот еще один более яркий пример. Игрушка имеет довольно замысловатую проверку в своей библиотеке, разбор, которой затянулся бы надолго. Но используя мой метод, взлом занимает минут пять.

Вот оригинал: http://rghost.ru/42309223
Вот вылеченная копия: http://rghost.ru/42309294

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


Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 18 декабря 2012 21:15
· Личное сообщение · #24

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

-----
zzz


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

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 18 декабря 2012 21:47 · Поправил: SaNX
· Личное сообщение · #25

zeppe1in
дык тот тутор
chelpa пишет:
Только это не для новичков.

Для совсем зеленых в инете туторы есть (--> тут, например<--).

-----
SaNX




Ранг: 90.7 (постоянный), 32thx
Активность: 0.020
Статус: Участник

Создано: 19 декабря 2012 09:15 · Поправил: chelpa
· Личное сообщение · #26

zeppe1in

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

Про сами функции писать прямо там, наверное еще больше нагрузило бы информацию и сделало ее трудночитаемой. Это после удачной практики, можно для общего развития разобраться что там делается Всегда же можно скомпилировать и посмотреть в Java Сама функция просто расставляет временные метки в той подписанной строке, чтобы они не устаревали и всегда были текущими

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

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 20 декабря 2012 12:47 · Поправил: SaNX
· Личное сообщение · #27

Ждем пятниццу --> Link <--

-----
SaNX





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 20 декабря 2012 17:53
· Личное сообщение · #28

Ребза, а кто нить знает сайт по оформлению типа гуглплей, но только где выложен сломанный платный софт с гуглплей, ну или если хотите аналог борды для андроида?

-----
StarForce и Themida ацтой!





Ранг: 114.1 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 20 декабря 2012 18:37
· Личное сообщение · #29

Maximus http://4pda.ru/ качай кл в маркете, для 4pda, там немерено софта и игр

-----
minimaL_patсh на руборде




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 20 декабря 2012 21:24
· Личное сообщение · #30

--> Blackmart <-- - клиент типа гуглплэй, там варез

-----
SaNX


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

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 21 декабря 2012 21:00 · Поправил: SaNX
· Личное сообщение · #31

Релизнули. Работает --> Link <--

-----
SaNX



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати