1, with basic programming ability, such as C, C++,c, C + + as a very basic language, do not require mastery, but must write, write a small tool completely no problem, at the same time to C + + class, inheritance, virtual table virtual function is very familiar with, a lot of games are used in C + + development, and relatively large, only the basic grasp In order to better read the code from the assembly layer, many times we look at a single assembly instruction is completely no problem, but once the combination will be completely unintelligible, through the need for high-level language corresponding to the assembly language implementation to master, such as the principle of functional work, several calling conventions, Parameter passing and return value must be mastered, which is a lot of information on the Internet. Better understand Python,python as a scripting language that can be used to develop a lot of reverse debugging tools plug-ins, can help us save a lot of manual work.
2, the knowledge of Windows system, because the plug-in will design a lot of Windows system knowledge, so to have a certain grasp of windows, such as Windows API, and the appearance of common injection, hook technology and Windows system exception handling mechanism, etc. can go to the Guanghai forum to learn the common use of Plug-in wizard, accelerator gear and injection equivalent knowledge, books can be see "Windows core Programming", the more knowledge of the bottom level, analysis of plug-in technology is easier.
3, the use of the reverse analysis tool proficiency, we usually work in the face of the binary executable program, to do plug-in our first analysis of the target program, so commonly used debugging tools WinDbg, ollydbg, static analysis tools Ida must be skilled use. Online tutorials are more, you can go to the Snow forum to use the relevant Crackme practiced hand study.
4, master the shell principle and skills, familiar with the common encryption and decryption algorithm, anti-debugging skills, we often encounter a lot of shell procedures, so we must be familiar with the principle and basic knowledge of the shell, skilled in the use of shelling skills, but also a variety of anti-debugging skills must be very familiar with, in the analysis process, Generally encounter a lot of encryption and decryption algorithms, it is necessary to have a variety of encryption and decryption algorithm features have a certain ability to quickly identify, so that faster to help us to analyze the core function of the target program. This can be read in the "Encryption and decryption" This book, very good and detailed. The above is the basic learning ideas, reverse and plug are involved in more knowledge, learning things will be more, and the cycle will be longer, but I believe a word tiandaochouqin, as long as the efforts will have a harvest, other aspects such as network knowledge also need to learn, we learn the reverse plug technology, the purpose is more to remove a variety of plug-ins, Better service for our game enthusiasts, rather than using these technologies to undermine the fairness of the game.
How to learn reverse engineering?