{'fraction_non_alphanumeric': 0.023668639053254437, 'fraction_numerical': 0.0, 'mean_word_length': 5.0, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
JiTI: a robust just in time instrumentation technique

In this paper, we describe JiTI, a novel technique for instrumenting program binaries. The technique correctly deals with programs that contain traditionally hard to instrument features such as data in code, code in data, and self-modifying code. The technique does not require reverse engineering, program understanding tools or heuristics about the compiler or linker used. The basic is that a running process is cloned in memory, and that the cloned process is completely instrumented (code + data). By using the code of the instrumented process (clone) on the data of the original process, we can guarantee a correct instrumentation of the full code while keeping the process data untouched. JiTI has been completely implemented for SPARC processors and is used in a data race detector.