Chiariamo la questione: tu vuoi che un certo file rimanga leggibile da una applicazione Z, ma non da una applicazione K (che consente di modificarlo), senza cambiare le specifiche del file (perché né Z né K sono applicazioni tue)? Detta così semplicemente non è possibile, perché, se entrambe le applicazioni supportano il file in questione alla stessa maniera, il file risulta leggibile dall'una se e solo se lo è anche dall'altra.

Se il punto è offuscare in qualche maniera il file (in modo che rimanga "eseguibile" ma se aperto per modificarlo sia sostanzialmente illeggibile), tutto dipende dal tipo di file in questione.

Se il punto è crittografare il file, andrà decrittografato "al volo" prima che l'applicazione principale ne faccia uso, nel qual caso tipicamente si fa un "launcher" di qualche genere che si occupa di decrittografare il file e lanciare l'applicazione subito dopo (anche se ovviamente non è una soluzione "a prova di bomba", visto che la chiave di decifratura sta nel launcher e il file in chiaro probabilmente deve essere salvato da qualche parte durante l'esecuzione dell'applicazione).

Ergo: chiarisci un po' meglio la richiesta (ed eventualmente valutiamo se questa è la sezione più corretta).