|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.04.2010, 10:41 | #1 |
Новичок
Джуниор
Регистрация: 14.04.2010
Сообщений: 2
|
Как праильно посчитать опкод?
Вопрос в следующем есть сall который переходит на определенный адрес:
FF /2 CALL 0x0c123456 Такую запись видел на одном из сайте. Вот как эту запись перевести в опкод?? |
14.04.2010, 11:05 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Берете таблицу опкодов для нужной архитектуры, учитываете некоторые моменты (разрядность, префиксы, модель памяти...) и получаете.
|
14.04.2010, 16:02 | #3 |
Форумчанин
Регистрация: 15.07.2008
Сообщений: 615
|
+можно загнать в отладчик(к примеру OllyDbg) и посмотреть напротив листинга дизассемблера на каждую команду
xor eax, eax
xchg [eax], eax |
15.04.2010, 06:07 | #4 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Цитата:
FF /2 это и есть опкод инструкции CALL внутри текущего сегмента, косвенная адресация адреса перехода через ячейку памяти в двоичном виде выглядит так 1111.1111 mod 010 r/m например Код:
в hex: FF15CC004000 ; call dword ptr [004000CCh] в bin: 1111.1111.00. 010.101.1100.1100.0000.0000.0100.00 00.0000.0000 F F mod =00 2 r/m=101 поле mod задает что именно кодируется в r/m, если mod =00 и r/m=101 тогда следующие 4 байта непосредственный адрес в памяти Последний раз редактировалось Mikl___; 15.04.2010 в 06:15. |
|
15.04.2010, 11:20 | #5 |
Новичок
Джуниор
Регистрация: 14.04.2010
Сообщений: 2
|
Mikl___ спасибо за хорошее разъяснение
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как праильно воспользоваться функцией GetFileTime | Assemblerru | Общие вопросы C/C++ | 0 | 27.03.2010 20:35 |
как посчитать арктангенс? | Yura_n | Общие вопросы C/C++ | 1 | 18.06.2009 17:38 |
Как посчитать дни? | Sergius X | SQL, базы данных | 6 | 26.05.2009 18:15 |
Как посчитать | Kovalenko.lokal | БД в Delphi | 16 | 07.05.2008 17:50 |
Как посчитать матрицу? | RECREATOR | Помощь студентам | 8 | 30.11.2007 07:10 |