想掌握下面这些知识需要学习什么语言呢

求助:想掌握下面这些知识需要学习什么语言呢?
远程线程、多线程,HOOK,内存共享,PE文件基础,OD分析,脱壳
解密,反汇编分析、进程保护技术,底层钩子技术,NP/CE/CALL

想掌握上边的这些知识,都得学什么语言呢?
个人感觉是:c、c++、汇编、必须得学
其他的还得学什么呢?win32编程得学吗?还有其他的吗?

谢谢!
------解决思路----------------------
操作系统是必须的,最好探索内核。 
------解决思路----------------------
引用
个人感觉是:c、c++、汇编、必须得学

这只是基本工具。 
------解决思路----------------------
看看windows 核心编程这本书吧
------解决思路----------------------
只需要看3本书,就可以掌握你需要的只是

Windows核心编程 Windows内和情景分析  Windows内核原理与实现
------解决思路----------------------
泡“看雪论坛”