Показать сообщение отдельно

  #593  
Старый 06.09.2009, 10:16
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


По умолчанию

Вообще можно на Си писать сверхмаленькие приложения. порой даже меньше асма. Там оптимизатор офегительный. Но для этого нужно отказаться от всех либ. Тока на WinAPI писать. Также компилить с оптимизацие, без отладочной инфы, и мерджить секции. Также и на фамсе правильно секции нужно располагать.
ВОт пример - находит адрес hosts и дописывает туда запись. Размер килобайт. Хотя внутри можно еще дописать пару команд потому как много свободного места есть
Код:
format PE GUI 4.0
entry Start

include 'include\win32ax.inc'
include 'include\encoding\win1251.inc'

section '.code' code readable executable import writeable
library kernel32,'KERNEL32.DLL'
include 'include\apia\kernel32.inc'

Start:
 invoke GetSystemDirectory, buf, 256
 invoke lstrcat, buf, filename
 invoke CreateFile, buf, GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0
 cmp eax, 0FFFFFFFFh
 je Exit
 mov [hFile], eax
 invoke SetFilePointer, eax, 0, 0, FILE_END
 invoke WriteFile, [hFile], hostip, hostip_stop - hostip, ReadBytes, 0
 invoke CloseHandle, [hFile]
 Exit:
 invoke ExitProcess, 0

 hostip db 13,10,"192.168.2.1 myLan",13,10
 hostip_stop:
 filename db "\drivers\etc\hosts"

 hFile dd ?
 ReadBytes dd ?
 buf db 256 dup (?)
 
Ответить с цитированием