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

 eXeL@B —› Основной форум —› Взлом Android приложений
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 июня 2014 14:47
· Личное сообщение · #2

VodoleY
Это да, но в AppUse заходим в Dashboard, давим Debug Mode, profit.

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

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 17 июня 2014 14:54
· Личное сообщение · #3

А бог его знает.. в тории наверно.. на практике.. такими амбициозными идеями не задавался

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 18 июня 2014 22:38
· Личное сообщение · #4

Помогите понять как тут снять проверку маркета http://rghost.ru/56424959
Регу через сайт я кое-как обошел (через но все ж), потом решил попробовать по тутору chelpa
нашел
Code:
  1.  byte[] vend_lic = new byte[]{0x28, 0x6F, 0x6D, 0x2E, 0x61, 0x6E, 0x64, 0x72, 0x6F, 0x69,   // com.android.vending.licensing.ILicenseResultListener
  2.                         0x64, 0x2E, 0x76, 0x65, 0x30, 0x64, 0x69, 0x6E, 0x67, 0x2E, 0x6C, 0x69, 0x63, 
  3.                         0x65, 0x6E, 0x73, 0x69, 0x6E, 0x67, 0x2E, 0x49, 0x4C, 0x69, 0x63, 0x65, 0x6E, 
  4.                         0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x4C, 0x69, 0x73, 0x74, 0x65, 
  5.                         0x6E, 0x65, 0x72};
  6.                 vend_lic[0xE] = vend_lic[0x11];
  7.                 vend_lic[0] = ((byte)(vend_lic[0] + 0x3B));
  8.                 parsel.enforceInterface(new String(vend_lic));
  9.                 parsel.readInt();
  10.                 String signedData = parsel.readString();
  11.                 String signa = parsel.readString();

Подсунул функцию из тутора, но:
parsel.readInt(); никуда не подставляется, а сигна не нашел где проверяется



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

Создано: 19 июня 2014 07:13 · Поправил: SaNX
· Личное сообщение · #5

XroM_N70
стрелка хитрожопо активируется. какую то версию я ломал, там было вот так:
Code:
  1.  String var2="com.ivolk.StrelkaGPS";
  2.                         String var3 = "km.h@m.s.Strelka";
  3.                        Object[] var5 = new Object[]{Integer.valueOf(1)};
  4.                        String var6 ="radar192:radar206:radar151radar0";
  5.                        c = new IvParameterSpec(var3.getBytes());
  6.                        d = new SecretKeySpec(var6.getBytes(), "AES");
  7.                        ec = Cipher.getInstance("AES/CBC/NoPadding");
  8.                        ec.init(Cipher.ENCRYPT_MODE, d, c);
  9.                    String str1 =((TelephonyManager)getSystemService("phone")).getDeviceId();
  10.                    char[] arrayOfChar = new char[24];
  11.                    arrayOfChar[0] = str1.charAt(7);
  12.                    arrayOfChar[1] = 'i';
  13.                    arrayOfChar[2] = str1.charAt(3);
  14.                    arrayOfChar[3] = str1.charAt(14);
  15.                    arrayOfChar[4] = '-';
  16.                    arrayOfChar[5] = str1.charAt(6);
  17.                    arrayOfChar[6] = str1.charAt(1);
  18.                    arrayOfChar[7] = 'v';
  19.                    arrayOfChar[8] = str1.charAt(2);
  20.                    arrayOfChar[9] = '-';
  21.                    arrayOfChar[10] = str1.charAt(10);
  22.                    arrayOfChar[11] = str1.charAt(5);
  23.                    arrayOfChar[12] = 'o';
  24.                    arrayOfChar[13] = str1.charAt(12);
  25.                    arrayOfChar[14] = '-';
  26.                    arrayOfChar[15] = 'l';
  27.                    arrayOfChar[16] = str1.charAt(9);
  28.                    arrayOfChar[17] = str1.charAt(0);
  29.                    arrayOfChar[18] = str1.charAt(11);
  30.                    arrayOfChar[19] = '-';
  31.                    arrayOfChar[20] = str1.charAt(13);
  32.                    arrayOfChar[21] = str1.charAt(4);
  33.                    arrayOfChar[22] = str1.charAt(8);
  34.                    arrayOfChar[23] = 'k';
  35.                    String str3 = String.valueOf(arrayOfChar);
  36.                       String lastResponse=padString("ivolk,StrelkaGPS,com.ivolk.StrelkaGPS,1,33,3,55,11,6,7,8,SaNX,12,13,14,15,16,17,18,"+str3+",20,21,22");
  37.                       outar=lastResponse.getBytes("UTF-8");
  38.                       inar=ec.doFinal(outar);
  39.  File newxmlfile = new File(data_dir+package_name+"/"+prefs_dir+"/"+prefs_name);
  40.                 newxmlfile.createNewFile();
  41.  
  42.                 FileOutputStream fileos = null;
  43.                 fileos = new FileOutputStream(newxmlfile);
  44.                 XmlSerializer serializer = Xml.newSerializer();
  45.  
  46.                 serializer.setOutput(fileos, "UTF-8");
  47.                 serializer.startDocument(null, Boolean.valueOf(true));
  48.                 serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
  49.                 serializer.startTag(null, "map");
  50.  
  51.                    serializer.startTag(null, "string");
  52.                 serializer.attribute("", "name", "rc");
  53.                 serializer.text(byteArrayToHexString(inar));
  54.                 serializer.endTag(null,"string");
  55.  
  56.                 serializer.endTag(null,"map");
  57.                 serializer.endDocument();
  58.                 serializer.flush();
  59.                 fileos.close();


потом вот эти arrayOfChar юзаются в разных местах кода.

-----
SaNX


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

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

Создано: 19 июня 2014 08:57
· Личное сообщение · #6

Очень похоже,что так оно и осталось...



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

Создано: 19 июня 2014 09:20
· Личное сообщение · #7

XroM_N70
да.
Code:
  1.  public void onCreate(Bundle arg9) {
  2.         int v7 = 8;
  3.         super.onCreate(arg9);
  4.         this.setContentView(0x7F03000B);
  5.         this.setTitle(String.valueOf(this.getString(0x7F060001)) + " - " + this.getString(0x7F060003));
  6.         Thread.currentThread().setUncaughtExceptionHandler(new km(Thread.currentThread().getUncaughtExceptionHandler()));
  7.         dv v0 = new dv(((Context)this), this.getPackageName());
  8.         String[] v1 = v0.a();
  9.         if(v1 != null && (v1[0].equals(this.getPackageName().substring(4, 9))) && (v1[2].equals(this
  10.                 .getPackageName()))) {


String[] v1 = v0.a(); - это как раз получение строки ivolk,StrelkaGPS,com.ivolk.StrelkaGPS,1,33,3,55,11,6,7,8,SaNX,12,13,14,15,16,17,18,"+str3+",20,21,22

и сравнение дальше. и так дофига где. вроде даже в нативе. короче, грузи в джэб и смотри.

-----
SaNX




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

Создано: 20 июня 2014 20:00
· Личное сообщение · #8

GikDbg.ART - Android ART Assembler-Level Debugger (ARM)

| Сообщение посчитали полезным: unknownproject, XroM_N70, CoolMax_86, Bronco, RAMZEZzz


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

Создано: 07 июля 2014 14:32
· Личное сообщение · #9

Dex to Java decompiler
https://github.com/skylot/jadx

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

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

Создано: 07 июля 2014 18:01
· Личное сообщение · #10

[wl] пишет:
Dex to Java decompiler

Ну и как он по сравнению с другими?



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

Создано: 07 июля 2014 18:33
· Личное сообщение · #11

Apokrif
джэб круче

-----
SaNX




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

Создано: 08 июля 2014 08:56
· Личное сообщение · #12

SaNX пишет:
джэб круче

Согласен, но иногда, лучше использовать разные decompiler-ы (для разных частей одного apk).

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


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

Создано: 08 июля 2014 11:10
· Личное сообщение · #13

а выложите кто-нибудь jeb, что-то ссылки все нерабочие



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 08 июля 2014 11:17 · Поправил: Jaa
· Личное сообщение · #14

[wl]
JEB_jxb-1.5.201404100

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

Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 13 июля 2014 13:16
· Личное сообщение · #15

На екзетуле появился комплект утилит под Андроид
http://prntscr.com/4271cv
если кому интересно - залью



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

Создано: 13 июля 2014 13:37 · Поправил: SaNX
· Личное сообщение · #16

sendersu
стрингдекрипторы с сорцами? если да - залей, может пригодиться. есть небольшое желание запилить деобфускатор для dexguard.
classnamechanger тоже можно поглядеть

-----
SaNX




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 14 июля 2014 22:35
· Личное сообщение · #17

https://www.sendspace.com/file/joq3hv
+src

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

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

Создано: 18 июля 2014 10:01
· Личное сообщение · #18

Добрый день. Как вставить в smali messagebox?)



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

Создано: 18 июля 2014 10:04
· Личное сообщение · #19

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

-----
SaNX


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

Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 18 июля 2014 12:16
· Личное сообщение · #20

http://4pda.info/news/27030/
BlueStacks HD App Player v.0.8.12.3119 Root + Mod (Android)
обнова

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 26 июля 2014 16:39 · Поправил: OKOB
· Личное сообщение · #21

https://github.com/droidsec/droidsec.github.io/wiki/Android-Tools

Android app dynamic reverse tool based on Xposed framework.

I. ZjDroid Introduction

ZjDroid is a reverse tool based on Xposed Framewrok. It can do following tasks:
1. Dump dex from memory;
2. Reverse app protect(packer) by key pointer to BakSmali in Dalvik;
3. Monitor dangerous API;
4. Dump specific memory;
5. Obtain DEX info of APK;
6. Obtain class info of DEX file;
7. Dump Dalvik java heap info;
8. Run Lua scripts in target process.

https://github.com/BaiduSecurityLabs/ZjDroid

-----
127.0.0.1, sweet 127.0.0.1


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

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

Создано: 12 августа 2014 12:56 · Поправил: chelpa
· Личное сообщение · #22

ОКОВ, огромное спасибо. Нашёл там же реализацию взлома биллинга, парень реализовал то, что я не смог реализовать, и именно так как я хотел Мои скудные знания java и андроида сильно мешают моим идеям реализовываться.
Я его тут поизучал, хак вообще мировой, он без root прав работает, правда не совсем, но к примеру в Cute the Rope я смог купить без root прав и всяких патчей



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

Создано: 26 августа 2014 09:37
· Личное сообщение · #23

Народ, подскажите как в JEB заставить java плагины работать? У меня при попытке запуска примера и другого плагина выдает :
Java scripts require the use of a JDK
An error occurred, the script could not be loaded



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

Создано: 26 августа 2014 09:53 · Поправил: SaNX
· Личное сообщение · #24

chelpa
Ну для начала поставить JDK

-----
SaNX




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

Создано: 26 августа 2014 10:11 · Поправил: chelpa
· Личное сообщение · #25

да стоит, уже сто версий пробовал ставить Сейчас еще раз попробую, может всё-таки не то качал что-то.
Обновление: по твоей ссылке если скачать, то JEB вообще не запускается, пишет, что ему JAVA 1.7 нужна))

Установил версию 1.7 jdk , всё равно пишет при запуске плагина:
Java scripts require the use of a JDK
An error occurred, the script could not be loaded



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

Создано: 26 августа 2014 11:25
· Личное сообщение · #26

chelpa
JC_HOME
c:\Progra~1\Java\jdk1.8.0_11

JAVA_HOME
c:\Progra~1\Java\jdk1.8.0_11

системные переменные установлены?

-----
SaNX




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

Создано: 26 августа 2014 11:50
· Личное сообщение · #27

SaNX пишет:
системные переменные установлены?

да, причина была в этих переменных, всё заработало. Спасибо.




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

Создано: 17 сентября 2014 10:01 · Поправил: Maximus
· Личное сообщение · #28

Ребята не пинайте сильно, пробую свои силы во взломе Android приложения. Итак:

1. Есть приложение чат-клиента (900кб.):
http://rghost.ru/58057833

2. Скачал apktool (Версия 1.5.2) и декомпилировал apk командой:
apktool d файл.apk папка

3. Файл обфусцирован proguard'ом, но по тутору от chelpa в шапке без труда нашел место проверки регистрации. Оно находится в файле smali\app\comm\gm.smali. Далее сделал модификацию этого файла опять таки по тутору.

Было:
Code:
  1.     invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
  2.  
  3.     .line 64
  4.     invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
  5.  
  6.     move-result v1


Стало:
Code:
  1.     invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
  2.  
  3.     .line 64
  4.     const/4 v1, 0x0


На выходе имеем папку с проектом с измененным файлом (1.4 мб):
http://rghost.ru/58057889

4. Дальше все это дело компилирую взад (apktool b папка crackemecracked.apk) и подписываю jarsigner. На выходе имею apk (900кб):
http://rghost.ru/58057906

Устанавливаю на телефон и ... приложение падает

Вопрос к профи: Что я сделал не так и куда дальше копать?

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




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

Создано: 17 сентября 2014 11:20 · Поправил: SaNX
· Личное сообщение · #29

Maximus
логкат покажи, когда падает прога

ЗЫ: из sdk\tools\monitor.bat

-----
SaNX





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

Создано: 17 сентября 2014 12:53
· Личное сообщение · #30

Получившийся лог, надеюсь это то что нужно

d941_17.09.2014_EXELAB.rU.tgz - log.txt

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




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

Создано: 17 сентября 2014 13:01 · Поправил: SaNX
· Личное сообщение · #31

Maximus
Caused by: java.lang.NullPointerException
at app.comm.c.CommApp.onCreate(SourceFile:85)
sget-object v0, Lapp/comm/c/CommApp;->q:Landroid/app/Application;

invoke-static {v0}, Lapp/comm/Speex;->init(Ljava/lang/Object;)I

move-result v0

if-nez v0, :cond_0

.line 85
const/4 v0, 0x0

invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

Переход не срабатывает - сыпет эксепшен.

а переход не срабатывает, потому что проверяется подпись пакета:
v19 = (*(int (__fastcall **)(int, _DWORD))(*(_DWORD *)v3 + 24))(v3, "android/content/pm/Signature");
v20 = (*(int (__fastcall **)(int, int, _DWORD, char *))(*(_DWORD *)v3 + 132))(v3, v19, "hashCode", "()I");

в библе libspeex_jni.so

поправь, чтоб выполнялось сравнение и резальт стал =1:
if ( v22 == 773970320 || v22 == 1710700290 || v22 == 130026776 )
{
speex_init(v24);
result = 1;
}
else
{
LABEL_12:
result = 0;



И это. После пересборки пакета всегда проверяй его содержимое. В данном случае в оригинальном пакете есть папка jsr305_annotations, и врядле твоя 1.5.2 закинула ее в новый пакет.

-----
SaNX


| Сообщение посчитали полезным: Maximus
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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