Как рассчитать DS: [0040207A] вручную? - PullRequest
0 голосов
/ 30 сентября 2010

alt text

alt text

Как получить результат 77D507EA вручную из DS:[0040207A] согласно регистрационной информации выше? ОБНОВЛЕНИЕ

memory map

1 Ответ

1 голос
/ 30 сентября 2010

Я вижу, что вы используете OllyDbg, поэтому, чтобы сделать его немного более релевантным вашей ситуации:

DS указывает, что он (адрес) находится в сегменте данных, [0040207A] - это адрес всегмент данных.если вы перейдете по адресу 0x40207A (crtl + g in olly), вы увидите несколько байтов, это указатель на MessageBoxA.просто отметьте, что вы пропустили размер элемента, на который указывает адрес (в данном случае это DWORD PTR), полная инструкция должна быть MOV EAX, DWORD PTR DS:[0040207A]

В дампе данных (окно внизу слева),он должен выглядеть примерно так: 0040207A EA 07 D5 77

В окне ЦП он может быть должным образом проанализирован олли (зависит от плагинов и настроек), в этом случае он будет выглядеть примерно так: 0040207A MessageBoxA EA 07 D5 77 User32.MessageBoxA

Также нет, адрес 0040207A может быть не статичным, поэтому переход туда только в другом сеансе может не работать из-за перебазирования виртуализированного двоичного файла Windows

Update

Может показаться, что и ваши знания ассемблера, и знания архитектуры x86 действительно плохие, поэтому я бы порекомендовал вам прочитать эти темы, Википедия - хорошее начало , иначеВы не поймете, как адресация и указатели обрабатываются на уровне сборки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...