Questo è davvero uno dei casi in cui gli stessi strumenti usati dai "difensori" possono essere usati anche dagli "attaccanti". C'è un libro che era unico per il suo tempo, in quanto fu il primo a documentare i modi in cui la crittografia poteva essere usata non solo come difensiva, ma anche come offensiva (Crittografia Maliziosa: Esporre Cryptovirology, FWIW).
Tuttavia, ti ho detto che ti manca il collo di bottiglia più significativo, che deve essere misurato usando gli stessi profiler che gli sviluppatori di software utilizzerebbero. Determinare il collo di bottiglia più significativo usando i profiler e usarlo; non presupporre automaticamente che troverai il collo di bottiglia nel codice ricco di eccezioni.
Il problema computazionale con le eccezioni è che ci sono classi di ottimizzazioni che può disabilitare, ma ci concentriamo troppo su questo. Il vero problema, che non discutiamo abbastanza spesso, è che le eccezioni sono come goto
, ma in tre dimensioni (che si estendono non solo una funzione, ma più livelli di chiamate di funzione, per creare potenzialmente "codice spaghetti") ; se usati in modo inappropriato (cosa facile, come nel caso di goto
), possono trasformare la manutenzione in un serio mal di testa! Pertanto, il collo di bottiglia più significativo delle eccezioni è molto più probabile misurato in ore umane, piuttosto che in microsecondi CPU ...
Quindi, dal punto di vista della sicurezza, e ad un livello molto più alto del livello macchina ... a un livello personale , tu potrebbe certamente usare le eccezioni come una forma di negazione del servizio. DEFCON 23 ha presentato un'idea simile in una presentazione dal titolo Repsych: Psychological Warfare in Reverse Engineering . L'obiettivo, tuttavia, non è quello di abbattere un sistema ma di convincere gli sguardi indiscreti a arrendersi e andarsene . È una negazione del servizio interpersonale . Potresti usare questa tua idea con un successo moderato, per esempio per gli analisti antivirus.
Altrimenti, penso che dovresti concentrarti sull'utilizzo del tuo profiler per determinare il collo di bottiglia più significativo.