Собираю единомышленников, кто остался верен машинному ассемблеру. Короче см пример. (код незавешен, просто я сейчас переписываю свой отладчик в более универсальный вид) 73613836__MyStile.rar
Большинство оставшихся нормальных людей, не испорченных туториалами iczelion'a и Four-F'a, не обитают в интернете, к великому счастью для них самих... TASM... 866... фиксированная табуляция... умеренное применение макросов -- когда-то это было почти стандартом в ассемблерных исходниках, а теперь благодаря интернету ничего этого нет. ;(
PROFi Ты делаешь аналог STS для писюка? tasm это видимо рулез для тех, кто к нему издавна привык, но, например, fasm позволяет обходиться без db 66h,8Bh,0F0h (и, как известно, написан давним фанатом tasm'а ЗЫ: в единомышленники меня вряд ли можно записать, несмотря на то, что я до сих пор не понял никчёмный смысл invoke ;(
PROFi команды с операндами слеплены имхо это и некрасиво и неудобно глянь как у меня. _1620402050__just a piece
Стиль автора темы довольно нагляден. Меня вот что не устраивает в современных IDE на кусок кода и на код в целом нельзя ставить контрольные суммы к примеру выделил часть кода сказал crc32 и он оформился как надо с контр.суммой. Отсюда, когда в дальнейшем будешь обращаешься будешь наверняка то, что ты писал в прошлом не бита измения! А если у тебя щас crc32 не совпадает, то каким то мис- тическим способом код может быть не верный
> смысл invoke а мне вот влом каждый раз писать: push par1 push par2 call Function уж лучше чистота ассемблера потеряется, за то мой труд чуточку уменьшится и нужная часть кода вполне можен уместиться на экране монитора и его можно глядеть без доп. движений мышью или стрелками
EvilsInterrupt При умеренном использовании макросов, твой код можно записать так: Код (Text): Function par1, par2
EvilsInterrupt спешу возразить, а если ты в стек заносишь сразу аргументы и адреса подпрограмм (ну естественно не push а типо rep movsd), тогда одним вызовом ret ты одновременно вызываеш ряд подпрграм из dll
Что касается TASM то здесь меня неустраивает только TLINK32, причины как минимум две: 1. Контрольная сумма = 0, следовательно драйвер написать приблематично 2. Если в коде отсудствует сегмент данных, да еще нет импорта, то он такое вытворяет. Да по tasm, инструция mov ax,cs в 32 битном сегменте превращается в mov eax,cs Если использовать tasmx, то возможно использовать такие метки как: _Дескриптор_кода: jmp _Переход _Переход:
Поэтому fasm и рулит! Ему линкер совсем не нужен (хотя можно использовать ms link). Можно создавать не только PE, но и вообще любые форматы файлов (хоть картинки)
S_T_A_S_ учись у PROFi все популярно возразил! )) И вообще сдеалал бы полезное дело, дописал бы дополнения к туториалом исцелиона сорцов на Fasm`e, было бы здорово!
Кто может посоветовать, как использовать tasm с каким либо другим линкером (не tlink32), а то последний меня уже сильно достал. И если есть возможность то приведите строку например: tlink32.exe -Tpe -aa -c -x Stelth.obj, Stelth.exe
PROFi Кто может посоветовать, как использовать tasm с каким либо другим линкером ulink? от некоторых багов tlink32 свободен... Контрольная сумма = 0, следовательно драйвер написать приблематично Контрольную сумму кто только не считает, и проги внешние есть, и даже hiew32 какой-нибудь ее правит автоматом, правда почему-то не дает вставить неверную
NullSessi0n Да я все время удивляюсь, у меня примерно такая же заготовка Win32 приложения. А Fasm попробую, во сяком случае стиль твоей программы написанной на fasm мне подходит, спасибо. Nothing Что касается контрольной суммы, то существует 2 вида программ ее считающие: 1. Использующие функцию WinAPI (не помню наизусть какую) 2. Непосредственно считающие ее. Последние мне наиболее симпатичные - алгоритм работает и в драйвере, а на только на уровне user. Поскольку таких (первого) програм много, то и проблем не возникает. Но ведь компилятор по умолчанию это должен делать. К сожалению Tlink32 - ... А вот tasm32 или tasmx мне нраиться, потому я и задаю вопрос можно использовать tasm в сочетании с другим линкером.