|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 26, 2003 19:01:58 Вот такой кусочек кода: ... local MZh : PTR IMAGE_DOS_HEADER ... mov eax, modbase mov MZh, eax .if [MZh].e_magic!=IMAGE_DOS_SIGNATURE int 03h ret .endif ... В итоге компилятор ругается, что undefined symbol e_magic. Может я не так понимаю смысл ptr. |
|
|
Дата: Авг 26, 2003 19:12:12 Я не очень хорошо знаю синтаксис MASM но мне кажется, что скобки в выражении [MZh].e_magic не нужны |
|
|
Дата: Авг 26, 2003 19:15:19 Вроде нужны, но если убрать, то все равно такой же результат... |
|
|
Дата: Авг 26, 2003 20:05:13 Вроде так: ... mov di,modbase .if (IMAGE_DOS_HEADER PTR [di]).e_magic!=IMAGE_DOS_SIGNATURE int 03h ret .endif ... |
|
|
Дата: Авг 27, 2003 11:16:01 · Поправил: Four-F R4DX, твоя MZh на самом деле ebp+что-то. Поэтому [ebp+<что-то>].<еще что-то> работать не будет. Делай так: ... local MZh : PTR IMAGE_DOS_HEADER ... mov eax, modbase mov MZh, eax .if [IMAGE_DOS_HEADER PTR [eax]].e_magic != IMAGE_DOS_SIGNATURE int 03h ret .endif ... Обрати внимание на квадратные скобки. Во всех других случаях используют обычно круглые, например так: mov ax, (IMAGE_DOS_HEADER PTR [eax]).e_magic Но в .if это не работает - только квадратные! |
|
|
Дата: Авг 27, 2003 12:17:39 Спасибо большое, все работает. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070 |