you'll need to learn C(++) and its inner workings either way, at least to understand how stuff works at the lower levels(everything uses C(++) to some extent internally, even the python or javascript you love so much are written in C(++)), and also because the game(dota) is written in C++(and likewise, if you were making a minecraft cheat, you'd need to learn java and its inner workings; if you were making a cheat for a C# game, you'd need to learn how C# works etc. - you choose your tools based on your target, there's no universal solution).
you can use whatever you want, as long as it has some interoperability with C(python, javascript, java, and basically every other language all have it), but you're still going to be working with C(and the target language(in case of dota it's C++)) and you'll still need to know/understand how C works and how computers and programming works in general to do anything meaningful.
FYI, python(and any other language that does not directly expose C linkage/asm/other low-level stuff, eg javascript or java or any other scripted/non-native language) on its own, without C bindings, is literally worthless.
you can't even print something to console using python, because python simply doesn't provide any way to do it(there's no syscalls, C linkage, asm etc.).
and before you say anything about the built-in
printfunction, well, it's written in C:
it's not a python function, it's an actual C function just registered within python's VM under the name "print", and whenever python encounters that name, it goes and invokes the corresponding C code(and you can't do what that function does in pure python(without any bindings whatsoever), that's why it's written in C, surely the developers of python(rather, its standard implementation, CPython) didn't do that for fun?)
yes, you can call C code from python(and that's the only reason the language even works at all), but don't forget that the code that does the heavy lifting is written in C, not in python. python only does insignificant lightweight stuff and outsources everything meaningful to C(that's why such languages are called scripted languages).
the same goes for javascript and all other non-native languages. C(and C++) actually directly expose C linkage, asm and other low-level facilities and that's why they are actually capable of doing stuff on their own. other languages simply have an interoperability layer with C, and outsource everything meaningful to C(what they do is actually pretty smart and other native languages also do that, but unfortunately, specifically C++ chose compatibility with C instead of interoperability with C and that's why it fucking sucks so much, it's literally C with two pluses and C is garbage - but you get what you get).
there are, of course, C bindings for python that can be used for working with processes, virutal memory, all kinds of system APIs etc., but to properly utilize them you'd still need to understand C and its inner workings to some extent.
the bottom line is that you at least need knowledge of C(++)'s inner workings(for interacting with the platform and for interacting with the target). even the RTTI you speak of is a C++ feature and if you don't know how C++(and C) works internally then you're going to have trouble understanding how RTTI works and how and when to (ab)use it.
you won't get very far with your "only nodejs and python" mindset(you need to know C(and its inner workings, first and foremost) either way, even if you don't use it directly).
the firmware of your hardware is written in C, your bootloader is written in C, your OS is written in C(++), the drivers for the keyboard you type with are written in C, your CPython(the python.exe that you run your python code with) is written in C, your V8(google's javascript engine used in nodejs) is written in C(++), your browser is written in C(++), some of your games are written in C(++), even C(++) itself is written in C(++) (old/previous versions of the language are used to implement compilers for newer versions of the language). you can't avoid C(++) if you touch any of these things at lower levels. if you're making a mod for a game then yeah you don't usually need to touch any C(++) stuff, but a cheat is way more low-level(and thus more powerful, and also way more unsanctioned, unofficial and less legitimate) than a mod.
this doesn't mean that C is good(it isn't) or that python is bad or whatever, but if you're going to dive into this shit then you'll have to learn to swim