Вверх ↑
Этот топик читают: Гость
Ответов: 5227
Рейтинг: 587
#1: 2016-12-11 13:15:48 ЛС | профиль | цитата
Гипотетический вопрос:
А что было бы если бы основной пакет был бы ориентирован на третью версию дельфина

А вот ответ:
Тогда можно было бы использовать линкёр вместо компилятора для сборки модулей.
Возможность прилинковывать coff обьекные модули. (от fasm к примеру)
Для примера Unilink поддерживает смешанный режим и судя по всему с его помощью есть возможность делать PE x64 (не только ехе и длл но и дрова можно собирать, хотя для HiAsm это явно излишне)

Для примера:
Модули Kol из compiler прекрасно перекомпилировались с д3.
Первые грабли возникли с Share. Ибо д3 не знает определений функций с дефолтными аргументами,
посему для отката будет много и много секса

Это было так, к размышлению "на то что а если "
а я уже поэкспериментировал
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 4628
Рейтинг: 749
#2: 2016-12-12 11:47:38 ЛС | профиль | цитата
Не вижу смысла адаптировать что-либо для старых версий ("даунгрейдить"). В типах модулей не разбираюсь, но C-шные *.obj Delphi линкует. FPC - вроде нет, но он, кажется, умеет работать с coff. С другой стороны, может есть сторонние утилиты для сборки такого "винегрета". А смысл в чем? Нужен ASM - вставляй ассемблер прямо в код Delphi.
Драйвера - это любопытно, но если код всё равно нужно писать на чём-то другом, а потом склеивать его с кодом Delphi, то лучше сразу писать на C.
карма: 26

0
Ответов: 2059
Рейтинг: 132
#3: 2016-12-12 13:38:34 ЛС | профиль | цитата
andrestudio
Да, красиво плетёшь.
И мне нравятся такие рассуждения.
Netspirit пишет "то лучше сразу писать на C", с чем полностью согласен и тут уж не поспоришь.
Во всяком случае под Windows что либо рисовать лучше на С, да и язык более гибучий, как мне кааца.
Но на вкус и цвет все фломастеры разные, по этому такие мои рассуждения бессмысленны.

— Только вы, дорогой товарищ из Парижа, плюньте на все это! — Как плюнуть?! — Слюной, — ответил Остап, — как плевали до эпохи исторического материализма.

Всё упирается в человеко-часы, а вернее годы!
Иных уж нет, а те далече... Но и такие компоненты без труда можно переделать - опять же время.
Реально - это сделать какие то костыли, или подпорки к существующему.
По этому
Гипотетический вопрос:

такие вопросы не лишни.

P.S.
Нужен ASM - вставляй ассемблер прямо в код Delphi.

Ассемблер в Delphi-4 совсем убогий. Заточен только на мнемокод процессорных команд, да и то не всех.
В Delphi-7 чуть лучше - все команды уже можно написать, но и только. (Имею ввиду библиотеки и модули уж не подцепить.)

Редактировалось 2 раз(а), последний 2016-12-12 13:49:03
карма: 6

0
Ответов: 4628
Рейтинг: 749
#4: 2016-12-12 13:48:27 ЛС | профиль | цитата
flint2 писал(а):
Заточен только на мнемокод процессорных команд
Что это - не в курсе, но в D4 инструкцию "db" никто не отменял.
карма: 26

0
Ответов: 2059
Рейтинг: 132
#5: 2016-12-12 13:50:01 ЛС | профиль | цитата
Так и делаю.

LEA EBP , [EBP +8]
@MM104: db $FF,$44,$24,$18 // INC [ESP +24]
db $FF,$4C,$24,$14 // DEC [ESP +20]
@MM105: JMP @MM14
Но это не комфортно.


Не все coff файлы одинаково полезны, а только спецификаций Intel OMF (Object Module Format — формат объектного модуля).
Компиляторы Microsoft для реализации Win32 создают объектные файлы в формате COFF, которые не совместимы с форматом OMF Intel.

Редактировалось 4 раз(а), последний 2016-12-12 14:49:59
карма: 6

0
Ответов: 5227
Рейтинг: 587
#6: 2016-12-12 19:19:18 ЛС | профиль | цитата
flint2, привет!
flint2 писал(а):
Так и делаю.

О! это ещё тот секс
Я так пытался FastMove адаптировать (которая патчит System.Move инструкциями SSE, SSE2, SSE3)
Netspirit, "винегрет" по сути любой PE, его ингредиенты это как раз модули которые мы пишем сами, вкус(качество) то от них зависит. Во вторых что собственно плохого готовить из них "Суп" когда они подготовлены профессиональными поворами т.е программистами. Во вторых есть "кросс платформенные" продукты которые не привязаны к API и уже обкатаны по самое ни хочу.

Вот тут то всё от повара и зависит, как их повкусней приготовить


Тема по дровам http://www.delphibasics.info/home/delphibasicsprojects/advanceddelphidriverdevelopmentkit

(правда AVG у меня на вирус орёт а жолудю от MS пофигу)
Есть утилита omf2d она как раз правит обьектные файлы, всю дорогу у меня с исходниками лежала, так и AVG на неё лаить начал. Короче х.з может пересобрать её что ли...

--- Добавлено в 2016-12-12 19:30:02

Закинул архив на вирус-тотал 26 / 54
Но поржать можно, с 10(ок) модификаций приписывают и я подозреваю только одному файлу...

--- Добавлено в 2016-12-12 19:54:35

Вот есть "картошка" неофициальная сборка KOL64 https://yadi.sk/d/2FCxPh9h33Fd6j
только с чем её варить х.з

Редактировалось 3 раз(а), последний 2016-12-12 19:54:35
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#7: 2016-12-12 19:55:08 ЛС | профиль | цитата
andrestudio писал(а):
что собственно плохого готовить из них "Суп" года они подготовлены профессиональными поворами

Я как то делал утилту, которая из dll делает нормальный код на D 4-7 для вставки в компоненты (через DLLLoader.pas).
+ из exe делал dll, если известны адреса нужных кусков(для определения адреса - трассируем, или точка входа), или сразу в код дельфи.
Делал ещё утилитку, которая собирает винегрет из exe скопилированных на разных языках в один exe без участия HiAsm.
Побоялся, что тапками закидают, по этому не стал выкладывать.
Если надо - найду, если не найду, то заново сделаю. Пока вроде не забыл все нюансы PE заголовка. (только не на этой неделе - дел по горло)
А вообще то PE какой угодно можно сделать и ни один антивирус не будет ругаться.(Это я не про вирусы, а про качество).

Редактировалось 3 раз(а), последний 2016-12-12 20:06:26
карма: 6

0
Ответов: 5227
Рейтинг: 587
#8: 2016-12-12 20:06:33 ЛС | профиль | цитата
flint2, о коллега да ты в теме значит
Тогда не торопись что то переделывать (вдруг опять велосипед получится )
Вот я тебе одну вЕшь покажу, только дочитай внимательно и сырцы прихвати, они очень полезны и калорийны для "Нашей кухни"

Читать и искать здесь http://www.freepascal.ru/forum/viewtopic.php?f=1&t=3961
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#9: 2016-12-12 20:07:43 ЛС | профиль | цитата
Спасибо!

Запрошенной темы не существует.

Я понял так, что по всему форуму искать (по теме).

Отставить искать!
Нашел.
"Формат объектных файлов"

Редактировалось 2 раз(а), последний 2016-12-12 20:36:25
карма: 6

0
Ответов: 5227
Рейтинг: 587
#10: 2016-12-12 20:45:23 ЛС | профиль | цитата
flint2, там бы идеей проникнутся важно, а сорцы тут http://download.shamangrad.ru/codetools/
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#11: 2016-12-12 20:54:57 ЛС | профиль | цитата
Понял.
Сейчас повнимательнее почитаю, а то и завтра с утра.
Всё упирается в relocations, в некоторых exe может и не быть такой секции, а вот в dll и dbj - обязательно.
Кстати, у меня вроде получше сорцы будут, ну на первый взгляд.
Завтра время будет - выложу с комментариями. Без них плохо ориентироваться.

Вообще, чем они занимаются, я уже года 3-4 назад прошел и всё заработало.

P.S.
Все coff2omf в интернете не подходят для наших целей.
Можно время не тратить.

Редактировалось 2 раз(а), последний 2016-12-12 21:01:25
карма: 6

0
Ответов: 5227
Рейтинг: 587
#12: 2016-12-12 21:21:05 ЛС | профиль | цитата
flint2, вот тебе ещё на закуску тогда опен-соурс проект компилятора com http://forum.hiasm.com/getfile/37961
Переделаешь под PE и будет вполне достойный продукт (кстати я от туда FFT взял для своей поделки)

Эх возможно свалю я из проекта с нового года, закатаю схемы и кол на болванки и уберу на полку, чёт устал я от симбиоза схем и кода, да и прока нет, ни одного моего элемента в HiAsm нет. Тогда зачем копья ломать

Редактировалось 1 раз(а), последний 2016-12-12 21:22:01
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#13: 2016-12-12 22:40:24 ЛС | профиль | цитата
чёт устал я от симбиоза схем и кода

У меня дело было так:
Задумал один проект около пяти лет назад.
В программировании был на уровне бейсика.
Нужны были куски с готовым объектным кодом от разных программ.
Стал изучать PE.
Чтобы сделать утилитки, нужно владеть языком, стал изучать Дельфи, С....
Потом на HiAsm набрёл.
Стал отрабатывать необходимые части для программы на компонентах, как на лабораторных мышках.
Потом оказалось, что из винегретов и HiAsm, того что я хочу не сделать, ну на HiAsm чего то смакетировать можно.
Но скорострельность...
Когда чего то большое делаешь, в общем винегрет и не нужен, в моём случае это точно.
Короче говоря завершаю проект на Delphi7.

Помимо программирования изучал лингвистику - морфология, синтаксис.
Вот так легко теперь получается. http://kelijah.livejournal.com/111957.html
Сейчас подключились пять человек.
Короче говоря, программирование, не ради программирования, а токма достижения цели для.
Вот что получается https://yadi.sk/d/kCbn9SHD32H4EH
(два примера синтезированы, в третьем,начало - синтез, концовка выдрана из mp3 того же диктора.
Думаю понятно, что txt в mp3 книжку.
Думаю, что к лету - осени закончу.

Тогда зачем копья ломать

У меня полно твоих решений!

Переделаешь под PE и будет вполне достойный продукт

Спасибо.

Редактировалось 1 раз(а), последний 2016-12-12 23:58:25
карма: 6

0
Ответов: 5227
Рейтинг: 587
#14: 2016-12-13 07:41:39 ЛС | профиль | цитата
flint2 писал(а):
Все coff2omf в интернете не подходят для наших целей

Это я уже понял. Вот предмет для изучения ftp://ftp.styx.cabel.net/pub/UniLink/ умеет мешать многие "ИНГРЕДИЕНТЫ"
Вообще то цель моя примерно будет такой (с кандачка по любому не получится. Придётся всё изучать предметно и досканально)
Создать конвертор COFF->OMF or OMF->COFF способный линковать необходимые объекты по внешним ссылкам из *.lib, *.obj
И покончить таки с этим произволом из за которого к дельфину ничерта не линкуется. (а что прилинковать поверь на слого "есть и не мало")
Надеюсь тема будет интересной и познавательной, ( ибо в таких кишках я ещё не ковырялся )а если получится то и востребованной.

Собрал пока доку по спецификациям частично пока буду переводить...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 132
#15: 2016-12-13 09:44:08 ЛС | профиль | цитата
Создать конвертор COFF->OMF or OMF->COFF способный линковать необходимые объекты по внешним ссылкам из *.lib, *.obj

Дело хорошее!
Позже посмотрю свои наработки этого плана, но я в основном PE COFF (exe и dll) занимался.
Подшей к делу http://forum.hiasm.com/getfile/37962
Там в pdf хорошее описание OMF.
(а что прилинковать поверь на слово "есть и не мало"

Вот из таких ребят героев делают Отечества мученья.

Редактировалось 1 раз(а), последний 2016-12-13 10:03:18
карма: 6

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)