Если программа написана объектно ориентировано, т.е. из отдельных "чёрных ящиков" со своими входами и выходами, то подключившись через шлюз ко входам и подав туда нужное воздействие мы получим искомую реакцию на выходе. Только нужно знать что и на какой вход нужно подавать и какая реакция системы на это воздействие будет. Такое внедрение позволяет сделать гибкое внешнее управление объектами на карте. Т.е. воздействуя на входы определённых "ящиков" можно двигать объекты, блокировать их, спаунить новые, менять типы объектов и т.п. Что-бы не было лишних "дырок" для мошенников, нужно хорошо подумать над тем, воздействие на какие входы можно разрешить. Но тут может быть такая проблема, что входы закопаны глубоко в коде, или воздействие на эти входы тянет за собой множество перекрёстых связей и т.п. Это знают только создатели программы. Поэтому им виднее что можно, а что нельзя.