Isn't the 'Reverse Engineering for Beginners' book outdated already?

I've been asked often: Why are the compilers in the RE4B book are that old? Is the book itself outdated?

Because work on the book was started at the beginning of 2010. (This is why old MSVC 2008 is used in some places.)

It is not outdated, because:

1) Compilers don't evolve that fast, so the code generated by MSVC 2010 and by the latest MSVC may not differ much.

2) What you will reverse (malware, and the software in which you will hunt for vulnerabilities), for sure, does not always compiled by fresh compilers.

As far as I can recall, Oracle RDBMS (when I was still worked with it) was built using older versions of Intel C++. There is also a suspicion that the latest versions of Windows are also not always compiled by the latest versions of MSVC.

And it is not necessary to follow all the steps in the book exactly, so it is not so important to use the same compilers. Use the compilers that are already installed in your OS. And also, there is always Compiler Explorer.


Меня часто спрашивают: Почему в книге RE4B слишком старые версии компиляторов? Не устарела ли сама книга?

Потому что работа над ней была начата еще в начале 2010. (Поэтому местами даже используется MSVC 2008.)

Нет, не устарела, потому что:

1) Компиляторы меняются не так уж и быстро, так что код создаваемый MSVC 2010 и самым последним может не так уж и сильно отличаться.

2) То, что вы будете реверсить (malware, и тот софт, в котором будете искать уязвимости), понятно дело, не всегда компилируется свежими компиляторами.

На моей памяти, Oracle RDBMS (когда я еще им занимался) собирался старыми версиями Intel C++. Есть подозрение, что последние версии Windows тоже далеко не всегда собираются последними версиями MSVC.

А следовать всем шагам в книге в точности не обязательно, поэтому не так уж и важно использовать те же компиляторы. Пользуйтесь теми компиляторами, которые уже инсталлированы в вашу OS. А также, всегда есть Compiler Explorer.


Please drop me email about bug(s) and/or suggestion(s): blog@yurichev.com. List of other blog posts. BTW, I'm teaching. Follow me in social networks: Twitter, Telegram, GitHub, Discord, Facebook.