Con il software, funziona  reverse engineering  (esiste anche un  sito StackExchange dedicato  per domande di reverse engineering). Estrarre i segreti dai binari compilati è stato fatto e rifatto e rifatto fin dai tempi dei primi giochi "protetti da copia" per personal computer, negli anni '80. La linea di fondo è che non è possibile nascondere un valore segreto in un'applicazione. 
 Quello che puoi fare è nascondere un segreto  specifico del cliente  nell'applicazione. Questo è simile a dare a ogni cliente la propria login + password, tranne che il cliente umano non lo vede (è nascosto nell'applicazione). Ciò non impedirà il reverse engineering, ma potrebbe aiutare a mitigare le conseguenze: se un dato "application secret" sembra fuoriuscire troppo (ad esempio  centinaia  di diversi client lo usano), allora puoi invalida quel segreto sul server, senza influire sul resto della tua base di utenti. (Presumo qui che la tua chiave privata, da nascondere nell'applicazione, sia utilizzata per parlare con un server che controlli.) 
 Questo è in qualche modo equivalente al  modello di sicurezza Blu-Ray : ogni giocatore (fisico) ha un giocatore- chiave specifica, ei distributori di contenuti possono mettere in blacklist le chiavi che sono note per essere trapelate tramite reverse engineering (la blacklist effettiva usa un sistema elegante chiamato  broadcast crittografia  perché ha bisogno di funzionare anche senza una rete, ma un telefono Windows è un  telefono , quindi presunto network-able).