Итак ребята,по этому счету я не нашел практически ничего (мб разучился гууууглить?))).
бывает когда возможностей BASM не хватает,а писать все на низком уровне нет ни времени ни желания,особенно у тех кто работает с malware.
Поэтому есть прекрасная штука по вшитию ассемблерного кода.
Чем этот метод хорош:все идет в куче,не надо никаких библиотек таскать.
Итак:
;messagebox
.386
.model flat,stdcall
option casemap:none
include include\windows.inc
include include\kernel32.inc
include include\user32.inc
includelib lib\kernel32.lib
includelib lib\user32.lib
.data
mes db 'HOW ARE YOU?',0
tit db 'MASM',0
.code
public testproc
testproc proc
invoke MessageBox,0,addr mes,addr tit,0
invoke ExitProcess,0
testproc endp
end
так у нас выглядит исходник.он немного отличается от стандарта:
нету метки старт,public описывает идентификатор, как доступный из других модулей.
дальше оформляем любой код в процедуру.
делаем только ассемблирование, линковку не проводим.
на выходе получаем file.obj
теперь конвертируем его программой coff2omf (в конце поста ссылка на скачивание программ)
затем полученный объектник еще раз конвертируем в понимаемый для делфи через omf2d
все.осталось только подключить объектник к нашей программе.
перед implementation указываем ф-ю
function testproc: dword; stdcall;
а после implementation
подключаем командой {$L name.obj}
function testproc: dword; stdcall; external;
бывает когда возможностей BASM не хватает,а писать все на низком уровне нет ни времени ни желания,особенно у тех кто работает с malware.
Поэтому есть прекрасная штука по вшитию ассемблерного кода.
Чем этот метод хорош:все идет в куче,не надо никаких библиотек таскать.
Итак:
;messagebox
.386
.model flat,stdcall
option casemap:none
include include\windows.inc
include include\kernel32.inc
include include\user32.inc
includelib lib\kernel32.lib
includelib lib\user32.lib
.data
mes db 'HOW ARE YOU?',0
tit db 'MASM',0
.code
public testproc
testproc proc
invoke MessageBox,0,addr mes,addr tit,0
invoke ExitProcess,0
testproc endp
end
так у нас выглядит исходник.он немного отличается от стандарта:
нету метки старт,public описывает идентификатор, как доступный из других модулей.
дальше оформляем любой код в процедуру.
делаем только ассемблирование, линковку не проводим.
на выходе получаем file.obj
теперь конвертируем его программой coff2omf (в конце поста ссылка на скачивание программ)
затем полученный объектник еще раз конвертируем в понимаемый для делфи через omf2d
все.осталось только подключить объектник к нашей программе.
перед implementation указываем ф-ю
function testproc: dword; stdcall;
а после implementation
подключаем командой {$L name.obj}
function testproc: dword; stdcall; external;
и вызываем просто как процедуру
конец:)
ссылка на скачивание программ
http://splashed.ucoz.ru/coff2omf_omf2d.rar
PS:
друзья блог открыт для анонимного комментирования,если есть какие то вопросы,оставляем комменты,по возможности отвечу:)
ссылка на скачивание программ
http://splashed.ucoz.ru/coff2omf_omf2d.rar
PS:
друзья блог открыт для анонимного комментирования,если есть какие то вопросы,оставляем комменты,по возможности отвечу:)
Комментариев нет:
Отправить комментарий