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

 eXeL@B —› Программирование —› armv8-a дизассемблирование
Посл.ответ Сообщение

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

Создано: 21 декабря 2015 14:27 · Поправил: jemmini
· Личное сообщение · #1

пожалуйста, помогите дизассемблировать машинный код для armv8-a процессора

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

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

возможно, у кого-то есть доступ к дизассемблеру armv8-a, я дал бы код (буквально не более килобайта), который нужно расшифровать...




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

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

а что, ida pro не дизассемблирует?



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

Создано: 21 декабря 2015 14:39 · Поправил: jemmini
· Личное сообщение · #3

[wl] пишет:
а что, ida pro не дизассемблирует?

в стандартной поставке не дизассемблирует. а плагин стоит дорого.

но если у кого-то дизассемблирует, очень прошу помочь...

образец кода:
FD 7B B8 A9 FD 03 00 91 F3 53 01 A9 F7 63 03 A9
14 55 00 D0 B8 A3 01 91 F3 03 00 AA 80 82 29 91
00 20 09 91 1F 13 00 B9 F5 5B 02 A9 F9 6B 04 A9
1F 7F 00 A9 BF 5B 00 B9 BF BB 00 79 BF 7B 01 39
44 3D 11 94 E0 1B 00 34 9D 3B 0A 94 1F 08 00 71




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

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

https://www.onlinedisassembler.com/odaweb/loq6YAfl/0

-----
Лучше быть одиноким, но свободным © $me


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

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

Создано: 21 декабря 2015 14:56 · Поправил: jemmini
· Личное сообщение · #5

BoRoV пишет:
https://www.onlinedisassembler.com/odaweb/loq6YAfl/0

хороший сайт, успешно пользовался им, однако применительно к armv8-a он бессилен...
это он сейчас дизассемблировал ерунду...


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

в листингах похоже, бред.

и где в вашем листинге колонка соответствия машинных кодов мнемоникам?


вот вам проверка: дизассемблируйте команду "nop":

код:

1F 20 03 D5




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

Создано: 21 декабря 2015 15:15 · Поправил: DenCoder
· Личное сообщение · #6

Навсидку, код с 1го байта и каждый следующий после него 4ый байт в первых 16 байтах начинается с 0xFx (в ARM mode 0xEx) ->
Похоже, надо бы попробовать Thumb или Thumb2

vden, второй листинг(который уже успел спрятать) похож на правду

-----
IZ.RU




Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 21 декабря 2015 15:18 · Поправил: vden
· Личное сообщение · #7

мусор удален




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

Создано: 21 декабря 2015 15:23 · Поправил: DenCoder
· Личное сообщение · #8

Мне одному кажется, что это всё же big-endian ?

Для ARMv8a всё же возможны обе кодировки --> Link <--

Whether a processor supports both LE and BE depends upon the implementation of the processor. If only little-endianness is supported, then the EE and E0E bits are always 0. Similarly, if only big-endianness is supported, then the EE and E0E bits are at a static 1 value.

vden, arg_2E0 не катит )

vden пишет:
В иде, похоже, нет еще нормальной поддержки AArch64

Да, вполне возможно, какой-то гибрид с AArch64 - местами код похож на правду, но в общем бред.
In the AArch64 execution state, data accesses can be LE or BE, while instruction fetches are always LE.
Не знакомился ещё с этой новой фичей.

-----
IZ.RU




Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 21 декабря 2015 15:35 · Поправил: vden
· Личное сообщение · #9

Нужно radare2 попробовать. Там вроде есть AArch64.
Или capstone (вручную).




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

Создано: 21 декабря 2015 15:44 · Поправил: DenCoder
· Личное сообщение · #10

Вот похоже на правду
https://www.onlinedisassembler.com/odaweb/PSolK8Wr/0

Добавлено спустя 6 минут
jemmini постучался в личку:
приветствую.
форум, с его ограничениями, не дает мне писать до завтра.
"Вы слишком часто оставляете сообщения с момента регистрации. Подождите до завтра"

вот код команды "nop" для armv8-a:

1F 20 03 D5

пускай дизассемблируют, кто сможет. и тогда поглядим.
а всё, что там сейчас привели в листингах - бред полный.


Тем не менее, AARCH64 на сайте поддерживается. Вот он и nop -> --> Link <--

Добавлено спустя 8 минут
так вот как оно, автодобавление относительного времени правки работает

-----
IZ.RU




Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 21 декабря 2015 15:55 · Поправил: vden
· Личное сообщение · #11

декодинг из capstone:

Code:
  1. ****************
  2. Platform: ARM-64
  3. Code: 0xfd 0x7b 0xb8 0xa9 0xfd 0x03 0x00 0x91 0xf3 0x53 0x01 0xa9 0xf7 0x63 0x03 0xa9 0x14 0x55 0x00 0xd0 0xb8 0xa3 0x01 0x91 0xf3 0x03 0x00 0xaa 0x80 0x82 0x29 0x91 0x00 0x20 0x09 0x91 0x1f 0x13 0x00 0xb9 0xf5 0x5b 0x02 0xa9 0xf9 0x6b 0x04 0xa9 0x1f 0x7f 0x00 0xa9 0xbf 0x5b 0x00 0xb9 0xbf 0xbb 0x00 0x79 0xbf 0x7b 0x01 0x39 0x44 0x3d 0x11 0x94 0xe0 0x1b 0x00 0x34 0x9d 0x3b 0x0a 0x94 0x1f 0x08 0x00 0x71 
  4. Disasm:
  5. 0x0:    stp     x29, x30, [sp, #-0x80]!
  6. 0x4:    mov     x29, sp
  7. 0x8:    stp     x19, x20, [sp, #0x10]
  8. 0xc:    stp     x23, x24, [sp, #0x30]
  9. 0x10:   adrp    x20, #0xaa2000
  10. 0x14:   add     x24, x29, #0x68
  11. 0x18:   mov     x19, x0
  12. 0x1c:   add     x0, x20, #0xa60
  13. 0x20:   add     x0, x0, #0x248
  14. 0x24:   str     wzr, [x24, #0x10]
  15. 0x28:   stp     x21, x22, [sp, #0x20]
  16. 0x2c:   stp     x25, x26, [sp, #0x40]
  17. 0x30:   stp     xzr, xzr, [x24]
  18. 0x34:   str     wzr, [x29, #0x58]
  19. 0x38:   strh    wzr, [x29, #0x5c]
  20. 0x3c:   strb    wzr, [x29, #0x5e]
  21. 0x40:   bl      #0x44f550
  22. 0x44:   cbz     w0, #0x3c0
  23. 0x48:   bl      #0x28eebc
  24. 0x4c:   cmp     w0, #2
  25. 0x50:
  26.  


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


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

Создано: 21 декабря 2015 16:06 · Поправил: DenCoder
· Личное сообщение · #12

Оно, на оде то же самое. Просто я по предыдущим линкам не применил(apply) архитектуру
вот, то же самое https://www.onlinedisassembler.com/odaweb/PSolK8Wr/0

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

-----
IZ.RU


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

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

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

DenCoder пишет:
Оно, на оде то же самое.

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

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

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

Создано: 22 декабря 2015 10:11
· Личное сообщение · #14

всем спасибо, особенно DenCoder и vden ! как говорится, всё гениальное просто. действительно, сайт поддерживает armv8-a , просто называется это aarch64
вопрос решен!




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

Создано: 22 декабря 2015 10:25
· Личное сообщение · #15

слитая ида68 тоже должна все расспознавать, arm64(aarch64) она поддерживает



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 22 декабря 2015 12:49
· Личное сообщение · #16

посмотрел ida 6.8, точно, поддерживает
нужно загружать в 64-битную версию и указать сегмент как 64 битный


 eXeL@B —› Программирование —› armv8-a дизассемблирование
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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