Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизКомпилятор в EXE на Delphi с исходниками. Найти похожие ветки
← →
tmtlib (2010-01-06 00:23) [0]Если кто знаком с ассемблером, прошу протестить мой новый проект - компилятор ассемблера на Delphi: http://www.igrodel.ru/tdg3d/pe-asm0.2.zip
Пока что это только пробная версия, с некоторыми ограничениями.
Размер откомпилированных файлов 1кб!
← →
oxffff © (2010-01-06 00:28) [1]
> tmtlib (06.01.10 00:23)
А ведь начал ты с gamedev.ru. :)
← →
Rouse_ © (2010-01-06 01:14) [2]Код не тестил - глянул мельком. Вопрос, а почему столь мало опкодов?
Ммм, вообще молодец, только боюсь что расширять сложновато будет...
← →
Kerk © (2010-01-06 01:22) [3]А под какую ОС компилит? В смысле что там - COM, PE или что?
← →
Rouse_ © (2010-01-06 01:28) [4]
> Kerk © (06.01.10 01:22) [3]
>
> А под какую ОС компилит? В смысле что там - COM, PE или
> что?
Ну зудя по срезанному заголовку, это РЕ :)procedure RenderExeHeaders;
begin
fillchar(ExeBinary,sizeOf(exebinary),0);
{ --- header-1 (DOS) at $00 --- }
WriteS("MZ", $0); // "MZ" signature
Write4($40, $3C); // header-2 position
{ --- header-2 (WIN32-PE) at $40 --- }
WriteS("PE"#0#0, $40); // "PE" signature
← →
Rouse_ © (2010-01-06 01:31) [5]Кстати на такой заголовок гарантированно будут ругаться большинство псевдоантивирей :)
← →
tmtlib (2010-01-06 01:33) [6]Компилирует в win32 PE. Секция только одна (хотя в версии 0.1 три секции).
Добавление опкодов не самый сложный: к примеру для относительного jmp:
if xparse(cpu_s, "jmp 0x????????") then xcpu("E9"+xdigit(1));
xparse - проверяет строку на соответствие формату "jmp 0xDWORD",
xcpu - шлёт опкод E9 и число 0xDWORD
остальное по аналогии.
В версии 0.3 добавлю больше опкодов и длину секции расширять надо, а то код уже до предела почти влазит.
← →
Rouse_ © (2010-01-06 01:34) [7]
> Rouse_ © (06.01.10 01:31) [5]
>
> Кстати на такой заголовок гарантированно будут ругаться
> большинство псевдоантивирей :)
Собственно об чем и речь шла:
http://www.virustotal.com/ru/analisis/9f8d66fb65b69be12bfdb02dd783dcbfb24d5091805725bac080529ed663af82-1262730765
ЗЫ: хотя странно, я думал будет больше, видать детские ляпы некоторые начали править :)
← →
Rouse_ © (2010-01-06 01:39) [8]
> tmtlib (06.01.10 01:33) [6]
>
> Компилирует в win32 PE. Секция только одна (хотя в версии
> 0.1 три секции).
>
> Добавление опкодов не самый сложный
Не самый - верно, но ты не производишь формализации кода с рассчетом на программиста, который пишет в другом стиле (лишние пробелы - переносы кареки и т.п.)
А самое главное - отсутствие поддержки макросов. Это первое что необходимо сделать для асма. (но вообще молодец)
← →
tmtlib (2010-01-06 01:43) [9]peasm02.exe - так это ж на Delphi
http://www.virustotal.com/ru/analisis/76d5deb9a00d8918c3059beea1667391041941cc1951df0f46bbb928c444eb1b-1262731167
а вот hello.exe не все антивирусники полюбили.
← →
писатель ассемблеров (2010-01-06 01:43) [10]
> остальное по аналогии.
по аналогии
lock xchg ax,fs:[ebx*2+234567h][eax]
по аналогии у команды mov больше всего разнообразных кодов операции
mov ax,cs
mov eax,cr0
mov eax,fs:[0]
mov ebp,esp
mov gs:[eax+2],ebx
mov ebx,gs:[eax+2]
mov al,2
mov edx,1
....
Это все разные коды операции
> if xparse(cpu_s, "jmp 0x????????") then xcpu("E9"+xdigit(1));
не беспокоит, что в jmp смещение от текущего ip отсчитывается ?
← →
Rouse_ © (2010-01-06 01:44) [11]А, ну тогда все норм, я прост подумал что peasm02.exe это демо (не компилил ибо).
Ну а раз так, то предыдушее мое высказывание снимается - они все еще болеют детскими болезнями :)
← →
Rouse_ © (2010-01-06 01:47) [12]
> писатель ассемблеров (06.01.10 01:43) [10]
Ну ты наскочил :) Да еще и с атомарным префиксом :) (кстати наскок помню xchg в нем не нуждается). Дай парню крылья раскрыть :)
← →
tmtlib (2010-01-06 01:53) [13]xparse(cpu_s,"mov ??,??") мда... Конечно это не идеальный вариант. А что делать? Идея ведь возникла после написания дизассемблера под adsp21xx, там и опкоды-то все одинаковой длины. Поизучать ассемблер разве что как время выдастся.
← →
писатель ассемблеров (2010-01-06 01:54) [14]Как написавший за свою жизнь три ассемблера, могу сказать, что ни макросы, ни генерация PE-формата не составляют особенного труда, а вот распознавание команд архитектуры x86 и x64 - тут геморрой и поджидает.
Читай мануалы с http://www.intel.com/products/processor/manuals/index.htm
← →
Rouse_ © (2010-01-06 02:00) [15]Игорь, ну он-же свой ассемблер пишет, и уж парсер на собственный вариант урезанного асма то я думаю самое легкое написать :)
Вот например вот это: МАМА МЫЛА РАМУ - будед push eax :)
Чамубы и не? :))
← →
tmtlib (2010-01-06 02:01) [16]мануалы скачал ещё раннее. По сравнению с наглядными картинками в analog devices у intel всё выглядит не так приветливо. Дело даже не спасает футуристический шрифт. Реально помогли ollydbg и hiew.
← →
Rouse_ © (2010-01-06 02:03) [17]
> tmtlib (06.01.10 02:01) [16]
Кстати, у ольки исходник дизасма открыт, я в свое время когда упарился свой доводить там подглядывал - советую. Правда у тебя задача немног другая (сбор а не разбор :)
← →
tmtlib (2010-01-06 02:07) [18]вот только навешу сверху интерпретатор паскаля в свой ассемблер, тогда можно будет хоть чему-то порадоваться.
← →
Rouse_ © (2010-01-06 02:09) [19]
> tmtlib (06.01.10 02:07) [18]
>
> вот только навешу сверху интерпретатор паскаля в свой ассемблер
А вот это имхо рано... Пока что необходим простейший интерпретатор простейшего ассемблера - а вот потом.
← →
tmtlib (2010-01-06 02:12) [20]этим и занимаюсь
← →
oxffff © (2010-01-06 10:14) [21]
> tmtlib (06.01.10 02:07) [18]
> вот только навешу сверху интерпретатор паскаля в свой ассемблер,
> тогда можно будет хоть чему-то порадоваться.
Интерпретатор паскаля уже есть у меня. :)
Было бы здорово, если бы ты занялся оптимизацией при кодогенерации.
Вообщем взял бы на себя функции backend"а.
Вообщем напиши для чего ты этим занимаешься.
← →
Кто б сомневался © (2010-01-06 16:38) [22]
> Rouse_ © (06.01.10 01:31) [5]
>
> Кстати на такой заголовок гарантированно будут ругаться
> большинство псевдоантивирей :)
Уже кто то залил на вирустотал hello.exe.
Хваленный АП Mcaffee протупил.
4/41
← →
Anatoly Podgoretsky © (2010-01-06 17:19) [23]> Кто б сомневался (06.01.2010 16:38:22) [22]
У меня все чисто, никаких известных вирусов.
← →
Anatoly Podgoretsky © (2010-01-06 17:23) [24]Кстати я посмотрел по ссылке, ни один из четырех АВ не назвал это вирусом, у них только сомнение.
← →
Сергей М. © (2010-01-06 19:47) [25]
> tmtlib (06.01.10 02:07) [18]
Уже изобретенные велосипеды тебе в помощь:
http://www.brothersoft.com/publisher/virt-laboratory.html
http://npascal.sourceforge.net/
← →
Кто б сомневался © (2010-01-06 20:10) [26]
> Anatoly Podgoretsky © (06.01.10 17:19) [23]
>
> > Кто б сомневался (06.01.2010 16:38:22) [22]
>
> У меня все чисто, никаких известных вирусов.
Те антивирусы которым я реально доверяю (последняя инстанция):
Каспер. и DrWeb
Мнение основано на тестах во времена работы тестировщиком.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.004 c