1) дота на с++, с++ собирается из человекочитаемого формата в родной машинный формат(в "инструкции" - это указания для процессора что ему делать). эти инструкции представляются байтами. последовательности из нескольких инструкций зачастую уникальные. в инструкциях есть абсолютные байты, а есть относительные. например представь условно инструкции:
прибавить 4
умножить на 10
разделить на 5
здесь абсолютные байты это байты для "прибавить", "умножить", "разделить", а сами числа 4 10 и 5 могут меняться между апдейтами доты(условно)
ты делаешь сигу(последовательность байт): "прибавить ?? умножить на ?? разделить на ??". если правильно всё сделать то сига будет уникальной(всего одна на весь файл dota2.exe условно), и ты берешь просто ищешь в памяти(файлы с диска в оперативку выгружаются при запуске приложух) эту сигу(последовательность байт). ищешь абсолютные байты а относительные(вопросики ??) пропускаешь(они могут быть любыми).
погугли(signature scanning, pattern scanning(синонимы) эта тема называется)
2) для начала visual studio качаешь там в установщике выбираешь
Посмотреть вложение 212615
и хелло ворлд компилишь дабы проверить что все нормально