原文:
Abstract: Unpacking is an art—it is a mental challenge and is one of the most
exciting mind games in the reverse engineering field. In some cases, the
reverser needs to know the internals of the operating system in order to
identify or solve very difficult anti-reversing tricks
employed by packers/protectors, patience and cleverness are also major
factors in a successful unpack. This challenge involves researchers creating
the packers and on the other side, the researchers that are determined to
bypass these protections.
The main purpose of this paper is to present anti-reversing techniques employed by executable packers/protectors and also discusses techniques and publicly available tools that can be used to bypass or disable this protections. This information will allow researchers, especially, malcode analysts to identify these techniques when utilized by packed malicious code, and then be able decide the next move when these anti-reversing techniques impede successful analysis. As a secondary purpose, the information presented can also be used by researchers that are planning to add some level of protection in their software by slowing down reversers from analyzing their protected code, but of course, nothing will stop a skilled, informed, and determined reverser.
Keywords: reverse engineering, packers, protectors, anti-debugging, anti reversing
In the reverse engineering field, packers are one of the most interesting
puzzles to solve. In the process of solving these puzzles, the reverser gains
more knowledge about a lot of things such operating system internals,
reversing tricks, tools and techniques. Packers (the term used in this paper
for both compressors and protectors) are created to protect an executable from analysis. They are used legitimately by commercial applications to prevent information disclosure, tampering and piracy. Unfortunately, malcodes also use packers for the same reasons but for a malicious purpose.
Due to a large number of packed malcode, researchers and malcode analysts
started to develop the skills to unpack samples for analysis. However, as time goes by, new anti-reversing techniques are constantly added into packers to prevent reversers from analyzing the protected executable and preventing a successful unpack. And the cycle goes on - new anti-reversing techniques are developed while reversers on the other side of the fence develop the skills, techniques, and tools to defeat them.