Нет, не напишет. Не нужно говорить о том, чего не знаете и не понимаете.
Чтобы что то написать - необходимо иметь исходные данные.
В данном случае исходные данные по отслеживанию близами таких программ.
Я сомневаюсь, что последние эти исходные данные предоставят.
Создавать что либо по черному ящику - такое себе занятие.
С чем у вас будет работать программа? С каким ресурсом? Как вы будете вводить/выводить данные по ресурсу?
Процитирую вас же
Не нужно говорить о том, чего не знаете и не понимаете.
Клиент-серверное сообщение перехватывается посредством снифера. Например, как выглядят корни (root) - сервер отправляет пакет SMSG_MOVE_ROOT локальному клиенту, этот пакет вызывает смену флагов, остановку, если было движение, и многое другое. НО НА КЛИЕНТЕ. Сервер должен дождаться специального подтверждения CMSG_MOVE_ROOT_ACK и тогда уже запустить процесс смены состояний и на сервере, чтобы была синхронизация. Иначе сервер может изменить состояние до того, как клиент завершит свои изменения и будет рассинхрон. Потом уже сервер рассылает SMSG_MOVE_UPDATE всем видимым наблюдателем и таким образом изменяется состояние цели на наблюдаемых клиентах.
Мы читом убираем из этой цепочки ACK - и вуаля на нас нельзя повесить рут. Да, там есть другие моменты, что если не будет долго ответа с ACK - клиент кикается, но и это обходится другими хитрыми техниками, например запросом о фейковом телепорте.
Насчет ботов все просто, они используют protected-функции lua-движка, т.е сам клиент. Никакие левые API не нужны. Достаточно заставить клиент считать, что действие lua-движка не считается tainted (грязным) и пришло от легального интерфейса Blizzard. Ну и избежать обнаружения варденом. Т.к для инжекта в lua-движок нужна сторонняя DLL.
Мы нажимаем кнопку вперед - вызывается lua-функция MoveForwardStart(). Бот просто вызывает напрямую ее. А дальше клиент сам все делает, как и обычно. То же самое с кастами спеллов.