Всем привет. Есть программа, она общается со своим сервером по HTTPS. Мне нужно перенаправить её на свой командный сервер. Я в этих делах новичок, в прошлый раз просто пропатчил бинарник (перевел с https на http) и добавил редирект в hosts. Но сейчас патчить не вариант, а при простом редиректе на свой домен сертификат не проходит проверку (очевидно) Однако я так понял можно каким-то образом подменять сертификат, чтобы приложение думало что все ок. Есть какой-то материал почитать на эту тему, а то я даже не знаю что гуглить?
Там может быть, и скорей всего и есть, проверка контрольной суммы SHA1/SHA256 сертификата, и тупая подмена его не поможет. Имхо, самый просто вариант, поставить хук на вызов библиотечной функции из OpenSSL или виндового CryptoApi/WinAPI, смотря что программа использует, и возврат своего результата. Но это конечно придется подгружать свою либу в процесс, искать в импорте соответствующие вызов функций, и прочие прочие мелочи. Есть программа EchoMirage - http://www.woodmann.com/collaborative/tools/index.php/Echo_Mirage, и она работает подобным образом.
Так, а поподробнее можно? Допустим я программу запускаю со своего компа, и мне нужно перенаправить https://example.com на localhost.
Ты хочешь, чтобы при запросе программой https://example.com она попадала на https://127.0.0.1? ок, добавляешь в hosts запись "127.0.0.1 example.com". Но помимо этого на комп ты должен установить сертификат, который генерирует твой же серв, иначе программа не будет коннектиться, т. к. не доверяет данному серту. Если не знаешь, как это сделать, то нужны подробности: что именно за программа, что за серв.