WINHTTP в Chrome
Зашкварился я на днях по незнанке. Суть такова: попробовал интереса ради дизассемблировать chrome.exe, заглянул в таблицу импорта, как и ожидалось, импортируются из Winhttp.dll всякие WinHttpSendRequest, WinHttpConnect да WinHttpOpen. Решил отследить их вызовы во время работы. Поставил брейкпоинты там где нужно. Запустил, поработал, остановки не произошло. Списал это на то, что функции используются в дочерних процессах, прогнал и их в отладчике. Ничего. И тут я подумал: " А вызываются ли они вообще?". Чтобы это установить, зашел в hiew, поменял адреса вызовов(WinHttpConnect и WinHttpSendRequest), кое-где их даже обнулил для верности(WinHttpConnect). И что же произошло? Верно, ничего. Работает как и раньше, и об исключениях не заикается. Выходит, он эти функции вообще не использует? Тогда зачем их импортировать? Да и как он в таком случае работает? Расскажите, что не так. Или покажите, где я накосячил.
Какой подозрительный лексикон…
По делу: где менял адреса? Система в DLL поменять их тебе не даст — заменит модифицированную на исходную. В самом Chrome.exe? Посмотри, не поменялись ли они обратно на исходные. Может, у него какие-то встроенные проверки целостности есть.
А вообще, движок открытый. В коде найдёшь ответы на свои вопросы точно.