Software Reverse Engineering# Static and Dynamic Analysis. Debugger. Breakpoints. Hooking. Code Injections, Iat, Hot Patching. Examples Of Hooking Structures. Vulnerabilities and Their Usage. Exception Handling. Object-oriented and Bytecode Languages, Jit. Anti-reversing Techniques. Malware Hiding. Side Channel Attacks. Hardware Reverse Engineering. The Final Exam Will Take Place in Two 3-hour Parts On The Same Day With Computers. Learning Outcomes# By The End of The Course The Student Will# 1. Understand How Reverse Engineering of Software Is Performed, And Will Be Able to Implement Techniques For Understanding The Operation Of The Software, and For Modifying Its Operation. 2. Know Techniques For Preventing Reverse Engineering and For Making It More Difficult. 3. Understand The Width of This Area, Including The Application to Other Programming Languages, Side-channel Attacks, And Reverse Engineering of Hardware.
Faculty: Computer Science
(46209 - Structure of Operating Systems and 234123 - Operating Systems) or 46209 - Structure of Operating Systems or (234123 - Operating Systems and 236490 - Computer Security) or 236350 - Network Security
- Practical malware analysis : the hands-on guide to dissecting malicious software - Sikorski, Michael
- Reversing : secrets of reverse engineering - Eilam, Eldad.
- Reversing [electronic resource] : secrets of reverse engineering - Eilam, Eldad.
- Rootkits : subverting the Windows kernel - Hoglund, Greg
- The art of computer virus research and defense - Szor, Peter
- The shellcoder's handbook : discovering and exploiting security holes
- Windows internals - Russinovich, Mark E.