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

 eXeL@B —› Основной форум —› Взлом Android приложений
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 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

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

Создано: 14 марта 2014 11:44
· Личное сообщение · #2

SaNX ну рутовать и рут эксплорер же ставить полюбому? я одну игру деребанил.. пока этого не сделал.. часть файлов тупо не видно

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




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

Создано: 14 марта 2014 15:05
· Личное сообщение · #3

ну чтоб в /data/data/ смотреть конечно нужен рут.

-----
SaNX





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 14 марта 2014 17:01 · Поправил: Kindly
· Личное сообщение · #4

Уважаемые спецы, можно ли что-то сделать с этим?
https://ssl.exelab.ru/f/action=vthread&forum=2&topic=21832&page=28#24

kunix, если для Вас и еще для кого это как оплачиваемая нехило в порядке вещей работа, то можно ведь просто проигнорировать, я не обидчивый

-----
Array[Login..Logout] of Life




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

Создано: 14 марта 2014 19:03
· Личное сообщение · #5

Kindly, неужели ваше рабочее время так мало стоит, что дешевле помыкаться по форумам и сэкономить аж целые 5-10$, чем заплатить производителю?
Хотя вы может торговать варезом собираетесь. Тогда другое дело

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

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

Создано: 24 марта 2014 17:01
· Личное сообщение · #6

всем ку.. а есть у нас чтото для снифанья трафа под андрюшу.. желательно.. с фильтрами на прогу и на протокол... (конкретно надо http траф)

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




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

Создано: 24 марта 2014 21:03
· Личное сообщение · #7

VodoleY
https://play.google.com/store/apps/details?id=org.sandroproxy



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

Создано: 25 марта 2014 15:04
· Личное сообщение · #8

LinXP выглядит не плохо..ток если прога не может ходить через прокси.. то это беда.. вопрос снят.. Shark убедил меня что копал в неправильном направлении

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




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

Создано: 27 марта 2014 09:00 · Поправил: Apokrif
· Личное сообщение · #9

VodoleY пишет:
а есть у нас чтото для снифанья трафа под андрюшу.. желательно.. с фильтрами на прогу и на протокол...

Не совсем то наверное, я в простейших случаях пользую fiddler на Win. А android-у говорю ходить через Win (т.е. через proxy). Ну и tcpdump тоже есть и Shark for Root



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

Создано: 27 марта 2014 09:20 · Поправил: Apokrif
· Личное сообщение · #10

Вопрос к спецам по Thumb
Есть примерно такой код
func1()

.text:0001435A LDR R1, =(a123 - 0x14362)
.text:0001435C MOVS R4, R0
.text:0001435E ADD R1, PC ; "123"

DCD a123 "123"

В func1 есть LDR загружающий адрес string "123"
Вместо "123" надо бы иметь "123123123", но очевидно не влезет, места не хватит…
Ближайшее место, где влезет за пределами досягаемости LDR.
В func1() тоже ничего не поменять, всё нужно.
Т.е. я вижу единственный вариант писать func2(), переносить в нее часть кода из func1() и делать всё в ней.
А есть другие подходы (проще?)



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

Создано: 27 марта 2014 10:58
· Личное сообщение · #11

Ну я не вижу других вариантов.

-----
SaNX




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

Создано: 27 марта 2014 11:20 · Поправил: kunix
· Личное сообщение · #12

Apokrif
LDR R1,=константа это фактически LDR R1, [PC, #смещение_константы_относительно_PC].
То есть в вашем случае LDR загружает в R1 некую 4-байтную константу X. И далее PC+X оказывается адресом строки 123.
Найдите, где хранится эта константа X (где-то после самой функции, недалеко), и пропатчите, чтобы PC+X указывал на новую строку 123123123.
Новую функцию писать не надо.

Чтобы найти под IDA, где лежит X, поставьте курсор на LDR, нажмите Q.
Получится LDR R1,=0xABCDABCD.
И в консоли вызовите Dfirst(адрес_LDR), она вернет адрес константы 0xABCDABCD.

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

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

Создано: 27 марта 2014 22:02 · Поправил: VodoleY
· Личное сообщение · #13

Apokrifполузакрытый вопрос. на нем и остановился ( Shark for Root )

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




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

Создано: 28 марта 2014 00:05 · Поправил: Apokrif
· Личное сообщение · #14

Apokrif пишет:
Вопрос к спецам по Thumb

Вместо "123" надо бы иметь "123123123", но не лезет…
Ближайшее место, где влезет - за пределами досягаемости LDR


kunix пишет:
LDR R1,=константа это фактически LDR R1, [PC, #смещение_константы_относительно_PC]
...
пропатчите, чтобы PC+X указывал на новую строку 123123123


Это #смещение_константы_относительно_PC должно быть PC to PC+1020 (word-aligned)
Никак в толк не возьму, как вы за эти пределы выходите так просто...
Научите пожалуйста?



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

Создано: 28 марта 2014 00:40 · Поправил: kunix
· Личное сообщение · #15

Apokrif,
У вас в коде по сути написано
Code:
  1. LDR R1, [PC, #(the_const-(PC+4))]
  2. ADD R1, PC, R1
  3. ....
  4. the_const DCD 0xDEADBEEF

Вы хотите именить значение регистра R1 после ADD? Ну так пропатчите саму the_const. Зачем патчить LDR и тем самым сдвигать the_const?
Еще раз, the_const это не сама строка. Это указатель на строку (становится им после прибавления ADD R1, PC, R1).
Если так не понимаете, то кидайте в личку базу IDA. Я уже не знаю, как и наче объяснить.

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

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

Создано: 28 марта 2014 01:39 · Поправил: Apokrif
· Личное сообщение · #16

kunix пишет:
Еще раз, the_const это не сама строка. Это указатель на строку

Во! Только что обратил внимание, что там indirect! Сейчас попробую передвинуть!
Огромное спасибо!

Еще вопрос доставучий
.text:0001435A LDR R1, =(a123 - 0x14362)
После Q превращается в
.text:0001435A LDR R1, =0x5B0C9
А как его опять вернуть в исходный вид:
.text:0001435A LDR R1, =(a123 - 0x14362)



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

Создано: 28 марта 2014 02:11
· Личное сообщение · #17

Apokrif, нажать O.



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

Создано: 28 марта 2014 03:49 · Поправил: Apokrif
· Личное сообщение · #18

kunix пишет:
нажать O.

Да нет, все варианты в Edit | Operand type | Offset 100-пудово не работают.
По идее д.б. Ctrl-O и после него анализ ссылок запустить?
После O или Ctrl-O выходит:
.text:0001435A LDR R1, =(loc_5B0C8+1)
.text:00014380 off_14380 DCD loc_5B0C8+1





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

Создано: 28 марта 2014 09:54
· Личное сообщение · #19

undef процедуры и еще раз P на начале функции
вообще O должно работать, два раза на нее нажми

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

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

Создано: 28 марта 2014 18:26 · Поправил: Apokrif
· Личное сообщение · #20

reversecode пишет:
undef процедуры и еще раз P на начале функции

Во, то что нужно!!!
Действительно возвращает в исходное состояние!
.text:0001435A LDR R1, =(a123 - 0x14362)

reversecode пишет:
вообще O должно работать, два раза на нее нажми

O или Ctrl-O тоже работает, только переключает между
.text:0001435A LDR R1, =0x5B0C9
и
.text:0001435A LDR R1, =(loc_5B0C8+1)

Может это потому, что сама строка в другом сегменте (.rodata, а не .text):
.rodata:0006F42B a123 DCB "123",0



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

Создано: 30 марта 2014 17:00
· Личное сообщение · #21

Всем привет.

Разбираю один exploit для Android. Передаю управление на свой код с привилегиями ядра. Задача -- обнулить uid. Извлекаю указатель на task_struct. Сканирую task_struct в поисках имени процесса comm[TASK_COMM_LEN]. Перед этим полем должна быть пара указателей на структуру cred и real_cred. Проблема в том, что эти указатели указывают на что-то странное. На структуру cred это не очень похоже, хотя и содержит id пользователя, но не имеет поля magic. В общем, запутался и не пойму, что там происходит.

Код ф-ии поиска:
Code:
  1. int f()
  2. {
  3.     unsigned int *p;
  4.     unsigned int *p3; //struct task_struct
  5.     unsigned int *cred; //struct cred
  6.     char *pc1, *pc2;
  7.     int i;
  8.  
  9.     register unsigned long sp asm ("sp");
  10.  
  11.     p = sp;
  12.     p = (int)& ~(THREAD_SIZE - 1); //p указывает на thread_info
  13.  
  14.     initial = p;
  15.  
  16.     p3 = (int *)(p[3]);
  17.  
  18.     task = p3;
  19.  
  20.     state = task[0];
  21.     stack = task[1];
  22.     flags = task[3];
  23.  
  24.     pc2 = (char *)p3 + 2056;
  25.     pc1 = (char *)p3 + 8;
  26.  
  27.     //Ищем имя процесса
  28.  
  29.     for (; pc1 != pc2;)
  30.     {
  31.         if (pc1[0] == 'N' && pc1[1] == 'a' && pc1[2] == 'm' && pc1[3] == 'e')
  32.         {
  33.             pc2 = pc1;
  34.             break;
  35.         }
  36.  
  37.         pc1++;
  38.     }
  39.  
  40.     if (pc1 != pc2)
  41.     {
  42.         return -2;
  43.     }
  44.  
  45.     cred = *(int **)(pc1 - 8);
  46. ...
  47. }


Если распечатать несколько dword'ов на которые ссылается cred, то я вижу: 7, 7d0, 7d0, 7d0, 7d0, 0, 0. 7d0 -- это id моего пользователя в телефоне. Сама структура task_struct до поля comm выглядит так:

Code:
  1. 0 //runnable
  2. da32a000 //stack
  3. 2 //usage
  4. 400000 //flags
  5. 0 
  6. 0 
  7. 1 
  8. 1 
  9. 78
  10. 78
  11. 78 
  12. 0 
  13. c0808d2c 
  14. 0 
  15. 400 
  16. 400000 
  17. 1
  18. d99cc3c0 
  19. 0 
  20. d99cc3cc 
  21. c4123b84 
  22. 1 
  23. 3fb39b63 
  24. 3f7 
  25. 895ebf
  26. 0 
  27. c43e10f3 
  28. f2 
  29. 895ebf 
  30. 0 
  31. 0 
  32. 0 
  33. 0
  34. c4123708 
  35. 0 
  36. 0 
  37. d99ce710 
  38. d99ce710 
  39. 0 
  40. 4
  41. 0 
  42. 0
  43. c4123790 
  44. 0 
  45. 0 
  46. 0 
  47. f
  48. 0
  49. 0 
  50. d99ce748 
  51. d99ce748 
  52. 0 
  53. c0f41344 
  54. d99ce3d4 
  55. 8c 
  56. d99ce760
  57. d99ce760 
  58. d99ce768 
  59. d99ce768 
  60. dc585a40 
  61. dc585a40 
  62. 1 
  63. 3a 
  64. 28
  65. 8 
  66. 0 
  67. 0 
  68. 0 
  69. 11 
  70. 0 
  71. 10000 
  72. 800000
  73. 1
  74. 163a //pid
  75. 163a //tgid
  76. b9dfb57 
  77. d99ce300 
  78. d99ce300 
  79. d99ce7bc 
  80. d99ce7bc
  81. d99ce43c 
  82. d99ce43c 
  83. d99ce680 
  84. d99ce7d0 
  85. d99ce7d0 
  86. d99ce7d8 
  87. d99ce7d8 
  88. 0
  89. db51ad08 
  90. db51ad00 
  91. 0 
  92. db51ad0c 
  93. db51ad00 
  94. d99ce478 
  95. db51af90 
  96. db51af80
  97. d99ce804 
  98. d99ce804 
  99. 0 
  100. 0
  101. 0
  102. 0 
  103. 1 
  104. 0
  105. 1 
  106. 0 
  107. 0 
  108. 0 
  109. 3 
  110. 11
  111. 1108 
  112. 1a915a67
  113. 1108 
  114. 1a915a67
  115. ac 
  116. 0
  117. 0
  118. 0
  119. 0
  120. 0
  121. 0 
  122. d99ce868 
  123. d99ce868 
  124. d99ce870 
  125. d99ce870 
  126. d99ce878 
  127. d99ce878 
  128. da456a00 //cred?
  129. da456a00 //cred?
  130. 0 //??
  131. 65616d4e //'Name'




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

Создано: 30 марта 2014 22:48
· Личное сообщение · #22

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



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

Создано: 07 апреля 2014 17:09
· Личное сообщение · #23

SaNX пишет:
ну чтоб в /data/data/ смотреть конечно нужен рут.


Если не "на живую" прям на девайсе, то можно:

adb backup -f ~/data.ab -noapk app.package.name
когда спросят пасс, его не указывать и у полученного data.ab отрезаешь первые 24 байта, получается обычный zip



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

Создано: 07 апреля 2014 17:52
· Личное сообщение · #24

может кто подсказать что твориться в данной функции
Code:
  1.  sub_4AC8                                ; CODE XREF:
  2. .text:00004AC8                                         ; sub_8C98:loc_9856p
  3. .text:00004AC8
  4. .text:00004AC8 time0           = -0x38
  5. .text:00004AC8 tp              = -0x34
  6. .text:00004AC8
  7. .text:00004AC8                 PUSH    {R4,LR}
  8. .text:00004ACA                 SUB     SP, SP, #0x30
  9. .text:00004ACC                 MOVS    R3, #0x72
  10. .text:00004ACE                 STR     R3, [SP,#0x38+tp.tm_year]
  11. .text:00004AD0                 MOVS    R3, #3
  12. .text:00004AD2                 STR     R3, [SP,#0x38+tp.tm_mon]
  13. .text:00004AD4                 MOVS    R3, #0xF
  14. .text:00004AD6                 STR     R3, [SP,#0x38+tp.tm_mday]
  15. .text:00004AD8                 MOV     R0, SP          ; timer
  16. .text:00004ADA                 MOVS    R3, #0
  17. .text:00004ADC                 STR     R3, [SP,#0x38+tp.tm_hour]
  18. .text:00004ADE                 STR     R3, [SP,#0x38+tp.tm_min]
  19. .text:00004AE0                 STR     R3, [SP,#0x38+tp]
  20. .text:00004AE2                 STR     R3, [SP,#0x38+tp.tm_isdst]
  21. .text:00004AE4                 BLX     time
  22. .text:00004AE8                 ADD     R0, SP, #4      ; tp
  23. .text:00004AEA                 BLX     mktime
  24. .text:00004AEE                 LDR     R1, [SP]        ; time0
  25. .text:00004AF0                 BLX     difftime
  26. .text:00004AF4                 LDR     R3, =0
  27. .text:00004AF6                 LDR     R2, =0
  28. .text:00004AF8                 BLX     __aeabi_dcmpgt
  29. .text:00004AFC                 SUBS    R3, R0, #1
  30. .text:00004AFE                 SBCS    R0, R3
  31. .text:00004B00                 NEGS    R0, R0
  32. .text:00004B02                 MOVS    R4, #1
  33. .text:00004B04                 ANDS    R4, R0
  34. .text:00004B06                 ADD     SP, SP, #48
  35. .text:00004B08                 MOVS    R0, R4
  36. .text:00004B0A                 POP     {R4,PC}
  37. .text:00004B0A ; End of function sub_4AC8

В моем понимании там должны браться текущие даты и сравниваться с вшитыми



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

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

XroM_N70
какой знакомый код. Видеорегистратор?

XroM_N70 пишет:
В моем понимании там должны браться текущие даты и сравниваться с вшитыми

так и есть

-----
SaNX




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

Создано: 08 апреля 2014 09:02 · Поправил: VodoleY
· Личное сообщение · #26

Всем доброго времени суток.. А вот такой вопрос.. Кто может порекомендовать модель девайса.. для хорошего дебага под андроид. Проблема вобщем одна.. очень частые зависоны при дебаге.. у мну ща для эксперементов дешевый GSmart 202+ .. пробывал под блюстеком.. а тут случайно не самый дешевый Acer s510 у товарища взял... и весьма удивился стабильности.. Есть ли бюджетные модели... посоветуйте. И вообще.. с чем разрыв дебагера и тела может быть связано?

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




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

Создано: 10 апреля 2014 09:20 · Поправил: Apokrif
· Личное сообщение · #27

VodoleY пишет:
Есть ли бюджетные модели... посоветуйте.

IMHO, Nexus 8GB как раз для этого и задумывался.
С другой стороны, иметь "девайс ТОЛЬКО для хорошего дебага" как-то жаба душит...



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

Создано: 10 апреля 2014 09:55
· Личное сообщение · #28

Apokrif пишет:
"девайс ТОЛЬКО для хорошего дебага" как-то жаба душит...

бро.. я уже почти в наркомана превратился.. перезапуская сессии и делая одно и тоже .. я типа ГОТОВ уже заплатить денег.. ток 500у.е платить.. жаба давит.. но реально на Асере.. небыло зависонов.. мне его просто не так часто дают... стараюсь выпрашивать.. и тестить девай.. тут вроде Асер на томже проце выпустил бюджетку.. окло 100 у.е. стоит.. вот это было бы решение

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




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

Создано: 10 апреля 2014 12:39
· Личное сообщение · #29

А мож проблема в андроид_сервере и тебе просто новее версия нужна? У меня HTC Desire S, One X, Asus TF300T - везде дебажит нормально.

-----
SaNX




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

Создано: 10 апреля 2014 13:01
· Личное сообщение · #30

SaNX да вот уже репу чешу и думаю.. ищу суть проблемы. странно что ток на одном из 3ех девайсов дебаг норм идет.

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





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

Создано: 10 апреля 2014 13:06
· Личное сообщение · #31

железо не причем
версии ондроидов сравнивайте
скорее всего в дешевом железе более кастомная кривая версия дроида


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 38 . 39 . >>
 eXeL@B —› Основной форум —› Взлом Android приложений
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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