{'fraction_non_alphanumeric': 0.01968019680196802, 'fraction_numerical': 0.0, 'mean_word_length': 5.564516129032258, '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}}
Reversing Engineering Data Structures in Binary Programs: Overview and Case Study

All the unnecessary information of data structures and types is removed at the end of compilation. However, the high level information is extremely valuable and necessary for many fields such as debugging, reverse engineering, security etc. Without data structures information, reverse engineering is extremely hard to perform. Unfortunately, even the most advanced techniques and tools for reverse engineering are very weak in this part. Recently, several new solutions have been proposed and each has made some achievements. In this paper, we summarize challenges in this problem, then analyze three existing outstanding approaches, discuss their limitations and at last propose some possible directions to make further efforts.