Если я шаг через отладчик в OllyDbg я вижуЧто делает MOV EAX, DWORD PTR DS: [ESI + EBP * 8]?
MOV EAX, DWORD PTR DS: [ESI + EBP * 8]
и регистр ESI = 0040855C и EBP = 00000000.
Мои проблема в том, я не знаю 2 регистра * 8
Если я шаг через отладчик в OllyDbg я вижуЧто делает MOV EAX, DWORD PTR DS: [ESI + EBP * 8]?
MOV EAX, DWORD PTR DS: [ESI + EBP * 8]
и регистр ESI = 0040855C и EBP = 00000000.
Мои проблема в том, я не знаю 2 регистра * 8
MOV EAX, DWORD PTR DS: [ESI + EBP * 8]
MOV - перемещение
EAX - в EAX (как правило, это будет значение, которое вы только что рассчитывали)
DWORD PTR - от значения, на который указывает
[DS: - в сегменте данных]
[ESI + EBP * 8] - ESI плюс 8 раз EBP.
Переместить значение в EAX в адрес, на который указывает ESI + EBP * 8 (ESI плюс 8 раз EBP, это означает, как именно это написано)
Это, вероятно, используется для загрузки данных из массива, где 8 - увеличить счетчик (который является EBP) до размера хранимой вещи (8 байтов), а ESI содержит адрес начала массива. Таким образом, если ЕВР равен нулю, то хранить данные в ESI + 0, если EBP = 1, то в конечном итоге при хранении ESI + 8 и т.д.
Последний абзац вашего ответа неверен! Вы должны обменять ESI и EBP. Кроме того, обычный синтаксис INTEL определяет, что первым операндом является место назначения. (См. Мой ответ) –
А, мой плохой, исправленный! Я давно не возился с сборкой Intel, и я как бы предположил базовый указатель EBP плюс индексацию ESI, потому что это более распространенный способ их использования. – cactus1
В обычном синтаксисе INTEL эта инструкция перемещает значение из памяти в EAX.
MOV EAX,DWORD PTR DS:[ESI+EBP*8]
Это, как правило, используется для экстракта значение из массива.
Массив расположен в памяти в DS: ESI.
Элементы индексируются через EBP.
Шкала 8 означает, что каждый элемент имеет длину 64 бит, и эта инструкция только считывает нижнее слово.
Не знаете, что вас смущает. Он просто загружает dword из памяти по адресу 'esi + ebp * 8', что, конечно,' 0040855C', так как 'ebp' равно нулю. (Умножение имеет приоритет, как вы могли бы помнить из школы.) – Jester