Цитата:
Сообщение от Konctantin
вот это уже очень интересно, получается:
декриптовать -> внести свою лепту -> обратно зашифровать и пускай идет дальше.
Но очень смущает то, что нужно работать с WinAPI, тобиш мне как человеку незнающему толком С++ будет тяжело приаттачить необходимые либы и заставить их работать на себя, но это все решается с помощью гугда и танца с бубном.
|
никуда не нужно зарываться.
1. идем на
http://www.proxycap.com/download.html , скачиваем и устанавливаем этот "proxifier". (ну или любой другой по вкусу, они все практически одинаковые). ВСЁ!!! про LSP и связанные с ним заморочки можно забыть - эта программа занимается ими сама.
2. добавляем socks4 прокси с адресом 127.0.0.1:наш_порт.
добавляем правила "wow.exe перекидывать на этот прокси, остальное не трогать".
3. идем на
http://ftp.icm.edu.pl/packages/socks...OCKS4.protocol , читаем описание протокола. проще не придумать.
реализуем сервер этого счастья хоть на C#, хоть на чём угодно другом.
4. добавляем логику типа такой:
Код:
принять соединение
соединиться с запрашиваемым адресом
ответить ок
принять первые 4 байта данных от клиента
если 3-4 байты равны "\xed\x01"(SMSG_AUTH_SESSION) или "\x12\x05" (SMSG_AUTH_SECOND_SESSION):
значит в этом соединении идут интересующие нас данные и его нада обрабатывать
иначе:
просто и тупо прокидывать данные между клиентом и сервером (battle.net / запрос новостей и т.п.)
5. думаем на тему "а как обрабатывать параллельно 2 и более соединения". select или треды - в помощь.
6. прикидываем (ida в помощь) когда и где в памяти wow.exe образуются интересующие нас ключи и читаем их оттуда.
Цитата:
Сообщение от Konctantin
Неясным осталось только то,
Не нашел внятного описания всему этому делу, и вообще-то хотелось узнать реализуемо ли это средствами С# (без написания отдельных длл-ок)?
|
у меня весь прокси полностью написан на питоне, так что на C# тоже можно.
Цитата:
Сообщение от Konctantin
Что-то чем дальше тем сложнее все становится.
|
это только в начале, потом легче пойдет.