«Пиратим» Firefox в Windows 7
Тема навеяна публикацией «Установка Firefox 116 под Windows 7» и является продолжением пиратства Chrome Windows в Windows 7. Однако Mozilla куда более предрасположена к пользователям Windows 7, и дело здесь отнюдь НЕ только в 115.ESR версии.
Ассемблеры, хуки, Dependency Walker, LoadLibrary в наличии.
Просто напонимаю, что за автором популярного пакета VxKex ночью пришли и увезли на пативене. Так что ещё непонятно что опасней всего: ломать SecuROM/DENUVO или пиратить продукты популярных корпораций для одной из самых успешных операционных систем Microsoft.
Принципиально в ней ничего не поменялось.
Ну разве что кроме названий: chrome.exe > firefox.exe, chrome.dll > xul.dll и тд.
Первым делом идём в Dependency Walker. Из привычных bryprimitives.dll, kernel32.dll, user32.dll, для которых таблица импорта различается ... всего на несколько новых фукнций (2-4). Всякие CreateSyntheticPointerDevice, InjectSyntheticPointerInput — наследие плиток Windows 8.1.
Из новенького WinAPI: ntdll.(x64).RtlAddGrowableFunctionTable и ole32.RoGetAgileReference.
Чтобы не заморачиваться с написанием оберток всего лишь из-за одной фукнции в каждой dll, сразу подправил их таблице экспорта PETools на безобидные:
RtlAddGrowableFunctionTable >> NtClose
RoGetAgileReference >> CoInitialize
WinAPI RtlAddGrowableFunctionTable вызывалась при старте процесса, поэтому пришлось дополнительно за'nop'ить её вызов с возвратом в регистре общего назначения EAX = 1. Впрочем, ничего нового.
После релиза Chrome 125 (который случился после всего описываемого безобразия в этих строках для Windows 7), Google начала стандартно вставлять небольшие палки в колёса правки Major/Minor SubSystem version в PE Header. Значения 0xA/0 нужно изменить на 6/0 или 5/2.
Забавно, но ЗА БОРТОМ внеза
Читать на habr.com
