Сейчас на форуме: morgot, Rio, CDK123, zds, tyns777, tihiy_grom, rmn (+4 невидимых)

 eXeL@B —› Программирование —› Неизвестная команда BYTE 0fh
Посл.ответ Сообщение

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

Создано: 11 октября 2008 18:32
· Личное сообщение · #1

Дизассемблировал программу для 64-битных CPU , у меня Athlon 32 битный , и вот эта команда неизвестная очень часто встречается в программе. Как узнать что она означает и как её перевести в 32битный формат



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

Создано: 11 октября 2008 18:33
· Личное сообщение · #2

Code:
  1. :009A54F9 0F                      BYTE 0fh
  2. :009A54FA 10A42488000000          adc byte ptr [esp+00000088], ah
  3. :009A5501 F3                      repz
  4. :009A5502 0F                      BYTE 0fh
  5. :009A5503 59                      pop ecx
  6. :009A5504 D0                      BYTE 0d0h
  7. :009A5505 F3                      repz
  8. :009A5506 0F                      BYTE 0fh
  9. :009A5507 59                      pop ecx
  10. :009A5508 D8F3                    fdiv st(0), st(3)
  11. :009A550A 0F                      BYTE 0fh
  12. :009A550B 59                      pop ecx
  13. :009A550C E089                    loopnz 009A5497
  14. :009A550E 94                      xchg eax,esp
  15. :009A550F 248C                    and al, 8C
  16. :009A5511 000000                  BYTE  3 DUP(0)





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 11 октября 2008 18:40
· Личное сообщение · #3

пишите письма в саппорт дизассемблера



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 11 октября 2008 18:47
· Личное сообщение · #4

что-то на кашу больше похоже, чем на осмысленный код

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 11 октября 2008 18:49
· Личное сообщение · #5

Более конструктивные предложения будут?



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 11 октября 2008 18:54 · Поправил: tempread
· Личное сообщение · #6

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




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 11 октября 2008 18:59
· Личное сообщение · #7

0fh это префикс команды. Частые команды есть в таблицах от производителей процов.

А вот коментарий - All opcodes for 64-bit media instructions begin with a 0Fh byte
Другими словами тебе нужны таблицы эти , сравнительно с 32 битной системой. А дизасм твой не может определить 64 битные команды. Все достаточно просто =) Гуглю в руки и искать таблицы.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




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

Создано: 11 октября 2008 19:21
· Личное сообщение · #8

mak
Ну вот,теперь понятно. Это SSE2 команды наверно,как я и думал..
Я использую Windasm10 и Ollydbg 1.10 для своих изысканий. Другой отладчик сможет определить что это за команды или нужен обязательно 64битный CPU ?



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

Создано: 11 октября 2008 19:24
· Личное сообщение · #9

Т.е. в иделе нужна такая программа которая откроет exe-шник, найдёт все эти 64-битные команды,заменит их на 32-битные аналоги и сохранит файл.




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 11 октября 2008 19:27 · Поправил: mak
· Личное сообщение · #10

=) ну в идеале я такого не видел. Это раз , а как же работа с памятью ? .. Пиши сам =) хотя по мне так затея не очень)

нет это не только ССЕ , это также команды СВАП и МОВС =)

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

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




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

Создано: 11 октября 2008 19:50
· Личное сообщение · #11

mak пишет:
да и вообще опять же говорю таблица те поможет все увидеть

Что в гугле набрать,я ж не знаю как эта таблица называется




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 11 октября 2008 20:07
· Личное сообщение · #12

=) книги в нете можно взять , как искать в гугле или гугль для хакеров.

BYTE 0fh 64 architecture opcodes например =)

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 11 октября 2008 20:58
· Личное сообщение · #13

есть такая фигня полезная, называется diStorm, явно поможет топикстартеру в правильном дизасме, включая медиа-инструкции



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

Создано: 14 октября 2008 16:03 · Поправил: ktoto
· Личное сообщение · #14

А вообще на 64 bit кажись по другому регистры обзываются.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 14 октября 2008 17:11
· Личное сообщение · #15

просто их по-больше стало, а eax, ecx и прочие остались



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 14 октября 2008 20:32
· Личное сообщение · #16

Kycok Caxapa
Есть плагин Olly FullDasm вроде,он показывает больше,но правда не все команды что видешь, а ту что курсор помечет

-----
My love is very cool girl.




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

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

Kycok Caxapa пишет:
Дизассемблировал программу для 64-битных CPU , у меня Athlon 32 битный , и вот эта команда неизвестная очень часто встречается в программе. Как узнать что она означает и как её перевести в 32битный формат

И как ты хочешь перевести 64 битный код в 32 битный используя 32 битный дизассемблер, ИДУ64 тебе в помощь.
PS: www.codeproject.com/KB/vista/vista_x64.aspx неплохой мануал для чайников.
PPS: Твой код:
Code:
  1. seg000:0000000000000000                 adc     [rsp+88h], ah
  2. seg000:0000000000000007                 mulss   xmm2, xmm0
  3. seg000:000000000000000B                 mulss   xmm3, xmm0
  4. seg000:000000000000000F                 mulss   xmm4, xmm0
  5. seg000:0000000000000013                 mov     [rsp+8Ch], edx




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 20 октября 2008 18:46
· Личное сообщение · #18

Сорри за офтоп, но книги по процам Intel присылают БЕСПЛАТНО.
Вот они...
Code:
  1. Items Ordered Item Number  Item Title        Ordered
  2. 253667-025US      Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2B: Instruction Set Reference, N-Z 1
  3. 253666-025US      Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M 1
  4. 248966-016US      Intel® 64 and IA-32 Architectures Optimization Reference Manual    1
  5. 253665-025US      Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture 1
  6. 253668-025US      Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide, Part 1 1
  7. 253669-025US      Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2 1


Мне как раз сегодня прислали - ещё не успел открыть. Так что вперёд - читать мануалы...
P.S. вместе со мной...


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


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