Achievements and challenges in software reverse engineering