|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 14, 2004 07:36:21 Как бы это перевести в формат понятный fasm'у: lea eax, seh push (SEH PTR [eax]).SafeEip ; <- вот эту строчку |
|
|
Дата: Июл 14, 2004 08:01:01 Наверное так: push [eax+SEH.SafeEip] |
|
|
Дата: Июл 14, 2004 08:16:58 Сам же и отвечаю: lea eax, [seh]
virtual at eax
sh SEH
end virtual
push [sh.SafeEip] |
|
|
Дата: Июл 14, 2004 10:32:42 Дык это тоже самое, что и: push [eax+sh.SafeEip] |
|
|
Дата: Июл 14, 2004 11:27:36 S_T_A_S_ Ты прав, так push [eax+SEH.SafeEip] тоже самое. |
|
|
Дата: Июл 14, 2004 13:28:19 Asterix Вообще, с virtual imho лучше, так и в макросах proc делают. Он как раз для того, что бы избавиться от eax+ используется. А ещё такой макрос можно попробовать, чтобы писать меньше: macro .assume reg, structure
{ virtual at reg
.#reg structure
end virtual }
; используем
.assume eax, SEH
push [.eax.SafeEip] Область видимости .eax - до следующей глобальной метки (которая не начинается с точки).
Т.е. как раз в пределах текущей proc Единственный момент, если в структуре где-то внутри используется alidn, то будут проблемы с компиляцией. Надо вместо него использовать cспециальный макрос, который написал Privalov: macro falign value
{ virtual
inc byte [dword $]
load addrimm from $-4
end virtual
rb (value-1)-(addrimm+value-1) mod value } |
|
|
Дата: Июл 14, 2004 20:54:17 S_T_A_S_ А ты смотрел макросы Four-F для SEH(в KmdKit), можно ли такие же реализовать на fasm? Нужная веСЧь, imho ;-) ЗЫ: проблемы при компиляции с align у меня возникли когда я забыл написать end virtual :-) |
|
|
Дата: Июл 15, 2004 14:12:21 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063 |