Ho un fuzzer per x86 Internet Explorer (in HTML) che ho pesantemente modificato per avere arresti anomali deterministici (in modo da poter eseguire più rapidamente l'analisi della causa principale). Sto tentando di implementare la registrazione tramite JS.
Finora ho qualcosa di simile a:
...
<script>
***
*log func
***
function LOG(){
var a = fso.OpenTextFile(filename, ForAppending, False, TristateFalse)
a.WriteLine('*** ITER: ' + iter + '\n')
a.Close()
}
***
*fuzzing func
***
function run(){
LOG()
//now doStuff to cause crash
}
***
*Init
***
var filename = "X:\logfile.txt"
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.OpenTextFile(filename, ForAppending, True, TristateFalse);
var a.WriteLine('*** SEED: ' + seed + '\n')
a.Close()
***
*body
***
run()
</script>
Cosa sarebbe più efficiente dell'apertura di un handle in un file di log, scrivere su di esso, quindi chiuderlo ... l'ipotesi sarebbe che per ogni messaggio / esecuzione / mutazione, si aggiunga un collo di bottiglia.