Я не программист, но подозреваю, что в исходный файл прога записывает номер своей версии, а при открытии сравнивает кусок кода. Если совпадает, то откроется, если нет, то пошел на хер. Соответственно можно было бы написать конвертр, который тупо будет менять значение в этом куске кода...но опять же