Привет вам! Подскажите люди, в своих вирях какую оптимизацию вы обычно делаете: по скорости или по размеру? На какую и при каких условиях лучше делать упор(или все оставить, как есть)?
имхо смотреть на скорость в вирях не стоит (если конечно они не на компонентах делфи построены ) лично я пытаюсь сделать размер поменьше, хотя и пишу на асме, где меньше уже и быть не может
scalter да, интересно, если ты пишешь на асме, то каким образом ты сам для себя автоматически можешь "разграничивать" оптимизацию по скорости с оптимизацией по размеру? т.е. по логике тогда при написании очередной асм-инструкции в вире ты кажд. раз должен задумыватся: "такссс, если я напишу xxx, то это будет оптимизация по скорости, а если yyy - то по размеру. а т.к. я решил писать придерживаясь xxx(yyy), то именно этот вариант мне и следует применить". так же никто не делает!!! ответ прост - потому что, программируя на асме, выходной размер скомпиленной программы и так уже стремится к минимальному (если еще с умом и знанием к делу подходить). так что, я считаю, что твой вопрос некорректен - как можно разграничить оптимизацию по скорости и по размеру применительно к программированию на асме? если ты и будешь пользоваться более "дорогими" (требующими больше тактов на исполнение) инструкциями, то это еще не значит, что выходной размер программы заведомо будет бОльшим.
varnie Что за ерунда? Выбирать между оптимизацией по скорости и по размеру приходится очень часто и ОСОБЕННО при написании на ассемблере. И дело совсем не в выборе подходящей инструкции. Простейший пример - CRC: 1) при оптимизации по скорости будет выбираться, разумеется, табличная реализация, а при оптимизации по размеру (если размер уж очень критичен, как это в вирусах и бывает) - это всего лишь пара операций (xor, да пара сдвигов), зато тормозить будет на ура. Или еще вариант, возможно более применимый к вирусам: при написании базонезависимого кода, что будете хранить в нем для получения адресов API: имена вызываемых API или чексуммы имен?
l_inc получается, что 99% всех вирей in-the-wild все поголовно тормозные? блин, я не в том контексте пост выше отписал, и походу вы меня недопоняли. я имел ввиду что при написании вирей ясен пень со скоростью исполнения не морочатся, а стремятся достичь наименьшего итогового размера. все остальное - дело десятое. тут тонкая грань, и в этом топике я старался пояснить что неверно все под одну гребенку грести как ИМХА топикстартер делает (т.е. сам ход его мысли в корне неверен -- где вы видели вирь, оптимизированный по скорости исполнения? может я и отстал от жизни, если так, то ткните меня носом. фпредь умнее буду.). последняя моя реплика: я считаю что неоспорима в любом случае вот именно эту суть я и хотел высказать фцелом выше. буду рад если докопаюсь с вами до истины в любом случае (истины фтом контексте, о котором я здесь толкую)!
varnie Опять-таки ИМХО очень зависимо. Если вирус перехватывает что-нибудь низкоуровневое, часто вызываемое, то в перехватчике я бы не стал надолго задерживаться, перекодируя семьсотметровый видеофайл в другой формат. В общем ИМХО t00x прав. Коротко и ясно.
l_inc прав насчет выбора. varnie, когда проделываешь некоторые вещи, то не хочется, чтобы твой Х-код задерживал передачу управления на сравнительно заметное время. В общем, я понял, конечно, все зависит от поставленной задачи. Но если работа виря отнимает относительно "мало времени", то все же лучше,как я понял, оптимизировать по размеру. Всем большое спасибо. Если что не так, напишите.
ИМХО в настоящее время когда обьем винта стремится к терабайту, ОЗУ гигабайту,ядро ОС десятки мегабайт. Экономить лишние 15-20 байт можно только из большой любви к исскуству ... В наше время упор делается на шифрование и антиэвристические механизмы.