Изменить встроенный порт назначения в скомпилированном приложении - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть скомпилированное клиентское приложение без исходного кода. Он подключается через TCP к моему серверу через порт 7777 (это место назначения). Я хотел бы изменить приложение, чтобы использовать другой порт, и нет никаких настроек на клиенте, чтобы изменить его легко. Это заставляет меня поверить, что оно жестко запрограммировано в приложении.

Я немного повозился с этим, но я не профессиональный реверс-инженер, и мне оказывается слишком сложно разобраться в одиночку. Возможно ли то, что я пытаюсь достичь, возможно?

Ответы [ 3 ]

3 голосов
/ 09 сентября 2011

Как вы скомпилировали это без исходного кода?Этот вопрос в стороне.

Найдите 7777 (hex 1e61), т. Е. 1e, затем 61 (или наоборот) в двоичном редакторе и измените его.

0 голосов
/ 09 сентября 2011

Вы можете использовать socat для создания прокси-сервера пересылки TCP.Из примеров socat :

socat TCP4-LISTEN:www TCP4:www.domain.org:www

устанавливает простой перенаправитель TCP-портов.При использовании TCP4-LISTEN он прослушивает локальный порт «www» до тех пор, пока не будет установлено соединение, примет его, затем подключится к удаленному хосту (TCP4) и начнет передачу данных.Он не будет принимать второе соединение.

Это менее гибкий подход, чем использование iptables, поскольку прокси-сервер socat должен работать на том сервере, к которому подключается ваш клиент.

0 голосов
/ 09 сентября 2011

Это будет зависеть от платформы и доступных инструментов. Если вы можете использовать strace в своей среде, вы можете обработать вывод и определить, где открыт порт, и с этой информацией вернуться в двоичный файл, разобрать его, найти функцию, которая выполняет вызов, и попытаться определить как номер порта туда попал.

...