Участвую сейчас в очередной дискуссии о ГМО, и один участник натолкнул меня на довольно интересную аналогию.

1. Традиционная селекция. Вы открываете в программе окно настроек, и начинаете включать флажки и двигать ползунки наудачу, в надежде, что активируется нужная вам функция программы. При этом, разумеется, вы всегда ограничены теми возможностями, которые в программу изначально заложил автор. Остаётся, правда, небольшой шанс, что разработчик, давно отошедший от дел и не подозревающий о вашем существовании, именно в этот момент очнётся и выпустит патч, который решает как раз вашу проблему -- как он её видит.

2. Методы "зелёной революции" (облучение семян радиацией или обработка сильными химическими мутагенами). Вы открываете исполняемый файл программы в HEX-редакторе и начинаете навскидку менять байты в разных местах кода -- надеясь, что программа не только не перестанет запускаться, но и приобретёт новые функции. Если сделать это миллион раз, то, возможно, вам и повезёт. Но программа однозначно начнёт глючить и "падать" на ровном месте.

3. ГМО. У вас есть текст программы. Её написали не вы, да и получили вы текст методом обратного инжиниринга -- но он у вас есть. Вы берёте текст нужной вам функции из другой программы, и вставляете его в нужное место. Остаётся некоторый шанс, что это нарушит функционирование программы в другом месте, или, скажем, сделает её уязвимой к вирусам; но, в отличие от первых двух методов, вы прогоняете её через батарею очень въедливых тестов.

URL записи