Нужно понимание принципов работы windows приложений, а именно - как работать с библиотеками, как их писать, как реализовать dll injection
сами библиотеки можно писать и на С++ и на с#. Вообще смотря на чем сервер написан.
ну и да, отладка и ассемблер - на уровне