s0larian И link и polink идут в пакете масм. Оба собирают PE файлы. Если бы они были одинаковы, то не было бы смысла иметь их оба. Стало быть в чем-то их функциональность отличается. Вот и я хотел бы узнать в чем...
Ёлки, poasm и polink не имеют никакого отношения к Microsoft и "идти вместе" могут только если ты слил чей-то левый архив.
s0larian Скачай MASM32 и загляни в папку bin. Узнаешь много нового... Кроме poasm.exe и polink.exe там еще есть polib.exe и porc.exe
s0larian прав, MASM32 не имеет никакого отношения к Microsoft (кроме того, что в нем используются некотрые проги от MS).
K10 Могу прислать для коллекции GoAsm, GoLink и GoRC от Jeremy Gordon, а так же wasm, wlink и wlib от Open Watcom -- побольше ассемблеров хороших и разных А чем вам ассемблер от Pelle Orinius не понравился?
reverser "Некоторые проги" - это непостредсвенно компилятор и линкер? И вобще, причем здесь Майкрософт, речь идет о polink и poasm... Mikl___ Он мне не "не понравился", я хотел бы узнать, чем он отличается от ml.exe !
небольшие отличия синтаксиса, иногда более компактная кодировка, poasm отличается от masm примерно так же, как tasm отличается от masm'а если хочешь смотреть отличия несколько аналогичных программ в аттаче (сорцы и ехе)
Mikl___ Спасибо, счас помотрю А чем лучше polink? Пока что я заметил только что он не включает в бинарник "печать Баала", как link.exe...
Кстати хороший вопрос, самому интересно, руки все не дошли это раскопать. Пока же детишки флудят, а никто точного и конкретного ответа не дал.
K10 Я пользуюсь переделанным polink и 4-х байтным стаббом (смотрите в аттаче) Код (Text): set masm_path=c:\masm32 set filename=%1 if exist %filename%.rc ( %masm_path%\bin\rc /v %1.rc %masm_path%\bin\cvtres /machine:ix86 %1.res %masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo %filename%.asm || exit %masm_path%\bin\PoLink1 /SUBSYSTEM:WINDOWS /ALIGN:4 /MERGE:.data=.text ^ /LIBPATH:%masm_path%\lib /NOLOGO /STUB:%masm_path%\bin\stubby.exe %filename%.obj ^ %filename%.res || exit del %filename%.res ) else ( %masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo %filename%.asm || exit %masm_path%\bin\PoLink1 /SUBSYSTEM:WINDOWS /ALIGN:4 /MERGE:.data=.text ^ /LIBPATH:%masm_path%\lib /NOLOGO /STUB:%masm_path%\bin\stubby.exe %filename%.obj ) Osen "Кстати хороший вопрос" я не понял о чем вопрос?
Mikl___ Но с таким стабом файл может не заработать в Win98, или я не прав? Может разумнее все-таки использовать 64-х битный стаб, который законно содержит весь IMAGE_DOS_HEADER ? У меня сейчас (с polink) получается так: Код (Text): Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 MZ 00000010 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 @ 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000030 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 @ 00000040 50 45 00 00 4C 01 02 00 B0 B1 38 49 00 00 00 00 PE L °±8I Переделка polink, заключается в поддержке 4-х байтного выравнивания? А как ты его переделывал, дизассемблировал или есть где-то исходники?
K10 align=4 точно не будет работать в Vista и Win95/98, зато в WinXP экзешник минимального размера PoLink переделывался методом снятия блокировок, даже Ida не понадобилась, достаточно было hiew, а вообще можно найти исходники на сайте автора. Можно использовать 12-байтный стаб старая статья есть на wasm.ru Svet(R)off - Минимальная stub-программа вот такие exe под Win95/98 будут работать
А зачем это сделал hutch, наверное, проще спросить у него самого hutch's home page (Freeware Tools and Toys)