Чтобы расширить ответ Матиаса, обратный инжиниринг требует нескольких различных тем знаний.Для начала, по крайней мере, базовая сборка является обязательным.Вам нужно будет учиться все больше и больше в зависимости от сложности того, что вы делаете, но, по крайней мере, понимать основы языка.Второе - это отладка.Существуют различные инструменты, которые могут вам помочь, вероятно, наиболее заметным в Windows является OllyDBG, в Linux мне нравится EDB или отладчик Эвана.Последнее, что вам нужно, это хороший дизассемблер, такой как IDA Pro (дорогой, но я считаю, что есть бесплатная версия).Есть много книг и онлайн-ресурсов, чтобы узнать об обратном инжиниринге, если вы действительно заинтересованы в этом.Удачи!