Что значит ПО с открытым кодом? Это значит, что любой программист сможет улучшить или ухудшить приложение без дополнительных плясок с бубном. Это сделано для того, чтобы одному разработчику не пришлось корпеть над приложением. Закрытый код не значит, что его нельзя обойти. Сейчас есть кучи декрипторов, которые расшифровывают эти "ключи". Как сказали выше- бесплатный софт не всегда с открытым кодом, как и софт с открытым кодом не всегда бесплатный.