· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Глюки fasm'а?

Посл.отвђт Сообщенiе


Дата: Апр 9, 2004 20:57:48

Сгрузил все секции(КРОМЕ .rsrc) в одну секцию .code в такой последовательности:
.CODE, .DATA, .IDATA файл после компиляции сглючил, атрибуты секции такие:
section '.code' code readable writeable executable

Глюки fasm'а или порядок расположения совмещаемых секций нужно изменить?
У IDA после такого совмещения крышу сносит и она не определяет названия
API функций, хотя подобная манипуляция в masm32 с секциями не приводит
ни к каким глюкам, и Ида всё различает нормально..

ЗЫ: Fasm 1.52


Дата: Апр 9, 2004 22:16:50

смотрите BEER-example
я сегодня смотрю:)
; no section defined - fasm will automatically create .flat section for both
; code and data, and set entry point at the beginning of this section


Дата: Апр 9, 2004 22:22:39 · Поправил: KiNDeR

BEER-example это не то. Код и данные это легко объединить, а вот код и импорт - это вроде в одну секцию не засунешь.
Я объединял:
code&data
import&data
В остальных случаях прога падала.


Дата: Апр 9, 2004 22:52:16

Хм, а я писал односекционные програмы с FASM (code + data + import + resources) и все работало ОК. К сожеленью работающий пример у меня нету, потому что делал я только как експеримент... А как IDA к етого относиться, мне все равно. :)


Дата: Апр 10, 2004 08:36:21

2KiNDeR:
Слушай ты как beer смотрел, вместе с этим самым beer'ом в животе? Там- и код, и данные, и импорт в одной секции.


Дата: Апр 10, 2004 09:03:02

format PE Console
entry start

include '%fasminc%/win32a.inc'

section '.snowbit' code data readable writeable executable

start:
  invoke  GetStdHandle,STD_OUTPUT_HANDLE
  invoke  WriteConsole,eax,_txt,6,NULL,NULL
  invoke  Sleep,2000
  invoke  ExitProcess,0

  _txt    db 'Hello!',0

data import
  library kernel32,'KERNEL32.DLL'

  include '%fasminc%/apia/kernel32.inc'
end data              


У меня все работало :). Отдельно я делал только секцию ресурсов


Дата: Апр 10, 2004 09:11:38

Snowbit

Прогу побольше сделай ;-) , а то в двух строчках fasm не может накосячить :-)


Дата: Апр 10, 2004 10:24:55

Все можно лепить в одну секцию.
И никогда FASM у меня не глючил, глючили только описания секций сделанные мной

_298988776__2nd.exe


Дата: Апр 10, 2004 22:25:06

Действительно я видимо неправильно описывал, для импорта нужно так как в примере beer:
data import

library kernel32, 'KERNEL32.DLL',\
          user32, 'USER32.DLL'

include '%fasminc%\APIA\KERNEL32.INC'
include '%fasminc%\APIA\USER32.INC'

end data


Строчки, выделенные красным видимо важны, без них глючит, наверно это макрос какой-то подключается..


Дата: Апр 11, 2004 10:27:34

Ресурсы в секции должны быть первыми


Дата: Апр 11, 2004 19:58:24

comrade

Я вообще секцию с ресурсами не трогал ;-)


Дата: Апр 13, 2004 09:46:28

А по-моему это FASM 1.52 глюкавый.


Дата: Апр 13, 2004 16:17:31
Правка

[offtop ли?]
Наблюдал я как-то такую картину:

  • компилирую исходник by Fasm.exe v1.51 — исходник рабочий
  • компилирую исходник by Fasm.exe v1.52 — исходник НЕ рабочий


PE заголовки почти идентичны у получившихся файликов (ну, кроме TimeStump), разница была только у 6-8 байт в секции ресурсов.

Причём макросы из новой версии FASM…
[/offtop ли?]


Дата: Апр 13, 2004 17:30:58

2IceStudent: есть и обратные варианты, например S_T_A_S_ давал исходник который не компилировался в 1.50 а требовал 1.51 - ну так был написан, но самое смешное то, что он компилировался в 1.51 консольной, а в 1.51 GUI - нет.


Дата: Апр 15, 2004 04:09:02 · Поправил: S_T_A_S_

В FASM 1.52 только изменен формат директивы load и добавлена директива store
Если есть глюки - скачайте последнюю версию, первый релиз был с ошибкой какой-то afaik


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057