Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› asm --> obj, obj --> Delphi
Посл.ответ Сообщение

Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 мая 2008 13:12
· Личное сообщение · #1

Пытаюсь написать интерфейсную часть к небольшой библиотеке, написанной на asm. Имею obj в формате OMF, скомпилированные MASM (ml.exe v6.14.8444).
Однако при попытке скомпилировать проект на D2007 с использованием этой интерфейсной части получаю ошибку:
[DCC Error] PNGlib_.pas(162): E2045 Bad object file format: 'D:\Delphi_projects\_pnglib\PNGI_Decompress.obj'

Как выяснить, что не нравится компилятору? Ведь на остальные obj он не ругается...
Исходники (asm, obj, pas) в прилагаемом файле.

a68a_17.05.2008_CRACKLAB.rU.tgz - test.zip




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 16 мая 2008 14:14 · Поправил: OKOB
· Личное сообщение · #2

Делфя ест не все OMF файлы. Некоторые нужно прогонять через утилиту OMF2D от EliCZ.

Кусок из мануала
4) Convert OMF to widely acceptable OMF.

OMF2D Object.obj /OLNames.opt /OENames.opt >Object.dh

(It is recommended to use DFix.bat. Set the right paths in this file.)

5) Add files to Delphi project:
{$I Object.dh}
{$L Object.obj}

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 16 мая 2008 17:15
· Личное сообщение · #3

Используй Object file converter by Agner Fog

This utility can be used for converting object files between COFF/PE, OMF, ELF and Mach-O formats for all 32-bit and 64-bit x86 platforms. Can also be used as a cross-platform library manager, a dump utility, and a powerful disassembler supporting the SSE4 and SSE5 instruction sets. Source code included (GPL).

objconv.zip http://www.agner.org/optimize/objconv.zip

-----
EnJoy!




Ранг: 63.8 (постоянный), 2thx
Активность: 0.030
Статус: Участник

Создано: 17 мая 2008 03:15
· Личное сообщение · #4

Jupiter
пасиба за тулзу, давно зрела мысль сваять конвертер COFF <--> OMF, а тут оказывается есть уже готовое решение и даже более масштабное



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 17 мая 2008 08:20
· Личное сообщение · #5

Jupiter
Пробовал я эту утиль, да только результат тот же, хотя obj получается немного другой внутри, чем после ml
Может надо что в исходниках asm поправить? Не мог бы ты посмотреть, ибо я не очень в этом деле силен...
OKOB
omf2d что-то такое сделала, что на obj компилятор дельфи теперь не ругается, зато на перекрестные ссылки ошибка появилась. Вроде как в интерфейсной паскалевской части все правильно написал, или нет?



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 мая 2008 15:26
· Личное сообщение · #6

Замучился в конец с этой omf2d - не выходит валидный результат
Кто-нибудь, помогите, плиз!



Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 мая 2008 16:25
· Личное сообщение · #7

ciler у меня этот http://crackingpage.jino-net.ru/release/MASM2Delphi.rar простейший код нормально скомпилился, юзал 8-й masm. У тебя походу имена api в obj не в борландовском формате.



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 мая 2008 08:40
· Личное сообщение · #8

MiHaN
Твой простейший код и у меня хорошо скомпилился, но попробуй скомпилить мой! Я уже пробовал такие методы:
1) COFF obj --> через coff2omf.exe в OMF obj --> через omf2d.exe в борландовский формат OMF
2) OMF obj сделанные ml.exe --> через omf2d.exe в борландовский формат OMF

В 1-м случае на выходе при компиле делфийского проекта получаю "Bad object file format..."
Во 2-м - кучу "Unsatisfied forward or external declaration"... (((
HELP!!!




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 20 мая 2008 09:02
· Личное сообщение · #9

ciler я не дельфист и omf2d нашел через дельфовые форумы. Так там полно разборок по поводу совместимости и использования omf2d. Особенно касается имен секций и их последующего объединения. Погугли...

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 мая 2008 10:53
· Личное сообщение · #10

OKOB
Уже несколько дней гуглю, перечитал и опробовал все что нашлось, однако с места не сдвинулся




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 20 мая 2008 16:14 · Поправил: OKOB
· Личное сообщение · #11

чей coff2omf используешь?
у меня есть
COFF to OMF Object Module Conversion Utility, Version 1.00.195
Copyright (C) 1994 by Walter Oney
All rights reserved
а еще оказывается есть
COFF to OMF Converter Version 1.0.0.74 Copyright (c) 1999, 2000 Inprise Corporation

второй должен бы взлететь или поведать, что не так

правка:
хотя "королевство делфи" говорит об обратном
2. Есть специальная утилита: COFF2OMF.EXE. Причем ее есть 2 штуки. Одна от свмой Borland, так вот ОНА НЕ РАБОТАЕТ! Нужно использовать утилиту, сделанную Walter Oney.

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 мая 2008 18:09
· Личное сообщение · #12

ciler я взял из твоих CRC.asm - всё нормально скимпилилось, а чтоб все проверить надо батник делать. Разбирись аккуратно, какие компилсятся, какие нет. Юзай утили из моего примера и никаких "Bad object file format" не будет.



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 21 мая 2008 07:49
· Личное сообщение · #13

OKOB, юзал coff2omf by Walter Oney.

MiHaN, не компилятся в "правильный" OMF формат только вот это:
PNGI_Decompress.asm
PNGI_DeInterlaceProcs.asm
Смотрел исходники, но так и не понял что там не так



Ранг: 37.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2008 08:27
· Личное сообщение · #14

ciler попробуй переименовать файлы в 8.3.



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 21 мая 2008 08:36
· Личное сообщение · #15

sss, врядли это как-то влияет, ибо PNGI_GetDecompressedSize.asm компилится нормально...



Ранг: 37.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2008 10:11
· Личное сообщение · #16

Попробуй. Всякое бывает... Тем более версия Они 1994 года.



Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 21 мая 2008 13:54
· Личное сообщение · #17

ciler тебе sss дело говорит, переименовал я PNGI_Decompress.asm в 1.asm и coff2omf его сконвертил, а с родным именем он его игнорирует, поэтому omf2d ругался и отсюда "Bad object file format".
Там дальше правда делфи ругается, что PNGI_GenHufTable описана, но среди api не найдена, но это уже не проблема форматов.



Ранг: 26.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 22 мая 2008 15:50
· Личное сообщение · #18

Фух... победил
Не так конвертил omf2d, оказывается....... Всем спасибо!



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 21 марта 2010 15:09
· Личное сообщение · #19

Может кто дать COFF to OMF Object Module Conversion Utility ? Говновасм не работает.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 21 марта 2010 15:28
· Личное сообщение · #20

Так выше в теме Jupiter objconv приаттачил, он конверирует из COFF в OMF.
Или нужна какя-то конкретная утилита?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 21 марта 2010 15:31
· Личное сообщение · #21

Code:
  1. D:\Security\DisAsm&Debug\IDA\IDA5>objconv -fomf zlib.lib zlib_omf.lib
  2.  
  3. Input library: zlib.lib, Format: COFF, Output: zlib_omf.lib, Format: OMF
  4. Error 2030: Unsupported relocation type (0)


cppasm пишет:
Или нужна какя-то конкретная утилита?

именно




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 21 марта 2010 15:45 · Поправил: Модератор
· Личное сообщение · #22

progopis

ты тулзу от Agner Fog гонял? не помогает?

objconv.zip


ДОБАВЛЕНО:

пока писал ответ, тема обновилась
так тебе zlib конвертнуть для делфе?

-----
EnJoy!




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 21 марта 2010 15:53
· Личное сообщение · #23

Я делаю сигну злиба для ИДы и пока безуспешно. Попробую ещё idb2sig.


 eXeL@B —› Программирование —› asm --> obj, obj --> Delphi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати