Showing posts from July, 2020

How I Compile Reverse Engineering Exercises For Maximum Learning And Minimum Noise

Imagine if your first reverse engineering exercise was to reconstruct an encrypted IAT – if you don’t fully know what that means, that’s the point: beginner reverse engineering exercises should be clear (and fun)! Anything that can throw off the analysis of a reverse engineer, such as optimized inlined functions, shouldn’t be in beginner exercises. Secondly, I would like my exercises to run on as students' computers as possible. These are the goals I strive for when creating CyberQueens exercises, and here is how I configure my compiler to meet those goals. Ensuring A Clear And Concise Executable is Compiled To prevent the compiler from adding any unintended opcodes or logic, which could confuse aspiring reverse engineers, set all of the following build properties: To disable uninitialized memory checks (and other debugging) checks from being automatically compiled into the code , set the compilation target to Release. This can be done from VS’s main page, as seen in Fi