
06.09.2009, 10:16
|
|
Познавший АНТИЧАТ
Регистрация: 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 (?)
|
|
|