[Quote]

    cartmenezz
  • 1384
  • Longevity: 5 years 7 months
  • Posts: 314
  • REPUTATION:7

    [+] [-]
  • Location: Калининград
Блокировка проверки обновлений в Geek Uninstaller (правка в HEX-редакторе)

Зачем?

Возможно, не все согласятся что это вообще проблема, но меня окошко с сообщением о выходе новой версии всегда раздражало, к тому же программа сама обновляться не умеет, это надо идти на сайт, скачивать, заменять файл... При всем при этом каких-то существенных изменений обычно и нет. А програмка мне нравится, иногда бывает оставляю при настройке ПК.
Некоторое время назад, искал решение, спрашивал так же и тут в чате, и мне подсказали что в файле есть ссылка, которую нужно править в HEX редакторе (спасибо всем кто помогал, особенно conty9).
Учитывая свою слабую память, решил для себя все пошагово расписать (к тому же с HEX редакторами особо дел не имел, пришлось некоторые моменты гуглить).
Конспект получился довольно подробный (возможно даже излишне). Подумал, вдруг однажды кому-то пригодится, решил выложить здесь.-Geek Uninstaller ищет сведения о новой версии на сервере, в файле:
https://geekuninstaller.com/update.txt
Эта ссылка прописана в самом файле geek.exe, чтобы сломать проверку обновлений, нужно удалить или изменить ссылку.
Нужен HEX-Редактор , который умеет искать в разных кодировках (в данном случае Unicode). Например: WinHEX или HxD
Примечания:
  • В файле Geek.exe на самом деле склеено два файла: geek.exe и geek64.exe, при запуске на x86 используется основной, на x64 - распоковывается geek64.exe (в %TEMP%)
  • При повторном запуске, программа сверяем версию с сервером. На x64 системе также сверяет версию geek64.exe с той, что лежит во временной папке, запускается именно geek64.exe из временной папки, если она страрее - распаковывается более новый файл (тот, что вклеен в geek.exe).
  • Отсюда есть нюанс: если на x64 системе запускался оригинал geek_1.0 - в %TEMP% был распакован geek64.exe (v1.0), допустим уже вышла версия 2.0, даже если мы запустим Мод версии 1.0 (с отключенной проверкой обнов) - будет предложено обновление, так как при запуске geek_1.0_mod не будет распоковки мода geek64.exe, ведь в %TEMP% та же версия - будет запущен распакованный ранее оригинал, который проверит обновы на сервере.
  • Вывод: если точно не известно, был ли ранее на ПК Geek Uninstaller, надежнее держать и geek.exe (2в1) и geek64.exe , и ставить (класть) в соответствии с разрядностью Windows (к тому же в большинстве случаев только x64 и нужен, по крайней мере мне)
  • Нужно обработать обе ссылки в файле geek.exe (вторая как раз находится в теле geek64.exe), потом запустить мод, и забрать geek64.exe из папки %TEMP%

Потребуются:
    Beyond Compare
    WinHEX
    FileUnsigner
    CheckSumPe (от nikzzzz)

Порядок действий:
01. Открываем файл в WinHEX
02. Поиск >> Одновременный поиск (или значок "синий бинокль" на панели инструментов)
03. В поле поиска вписываем: update.txt
04. Ставим галочки на разных кодировках (ANSI, Unicode)
05. Ставим галочку "Показать вхождений", чтобы видеть список результатов, иначе для перехода к след.записи придется искать снова (вдруг их несколько)
06. Находим ссылки (в geek.exe их две, вторая в теле вшитого geek64.exe)
    далее два пути:
    (a) Меняем один (больше и не нужно) символ в ссылке - в правом текстовом блоке меняем букву на другую. Например: Вместо "geekuninstaller.com" делаем "deekuninstaller.com"
    (b) Или затираем всю ссылку - в правом блоке текстовом блоке встаем на начало ссылки "h" (https..), при этом также выделяется две цифры в HEX блоке, соответствующие этому символу ("68"), встаем на них, поглядывая на правый текстовый блок, начинаем вводить нули ("00"), вводим пока справа не сотрется вся ссылка (ОСТОРОЖНО! лишнего нельзя стирать!!!)
  • Можно в текстовом блоке выделить всю ссылку, выделение будет и в HEX, сохранится при редактировании (для наглядности).
07. После редактирования у файлов остается недействительная цифровая подпись, удаляем в FileUnsigner
  • Если запустить мод geek.exe (который 2в1) на x64 системе, в папку %TEMP% все равно распакуется geek64.exe с недействительной цифровой подписью, FileUnsigner ее не удалит, пока файл "вклеен".
08. После всех изменений желательно подправить контрольную сумму файлов, в CheckSumPe
-
Дополнительно: Удаление цифровой подписи geek64.exe, вклеенного в geek.exe:
  • Не уверен, так ли это надо (поидее можно вообще нигде не убирать ЦП, пусть она и не проходит проверку)
  • geek64.exe, который будет распаковываться, не будет идентичен тому, что обработан FileUnsigner - у последнего в конце файла будет пустота вместо подписи,
    а у того что будет распаковываться из geek.exe после этого метода - в конце будут нули (но иначе не получится, если просто удалить, изменится размер файла, работать не будет)
01. Берем три файла:
    geek_mod (2в1, после HEX правки и обработки FileUnsigner),
    geek64_mod (после распаковки из geek_mod и обработки FileUnsigner),
    geek64_unpacked (geek64, который распаковывается при запуске geek_mod)
02. Открываем все три файла в WinHEX
03. Открываем geek64_mod и geek64_unpacked в Beyond Compare (Выделяем файлы - ПКМ - Сравнить)
  • сравнивать файлы можно и в WinHEX, но это не очень удобно
04. В Beyond Compare: Сеанс >> Сравнить файлы используя >> Сравнить Hex
05. Смотрим оличия (кнопка "перечеркнутый знак ="), чтобы оценить "масштаб"
06. Жмем на панели "*", чтобы отобразить все содержимое, с помощью кнопок "Вверх/Вниз" на панели можно перемещаться от одного отличия к другому (если их несколько), жмем
  • Отличия подсвечены красным, если выделить позицию, внизу отобразится "адрес байта" (или нажать ПКМ). Это нам и нужно, это "смещение (offset)", запоминаем/записываем

07. В WinHEX идем на вкладку geek64_unpacked, Навигация >> Перейти к смещению (Alt+G) - Вводим значение из предыдущего пункта и переходим. И то же самое на вкладке geek64_mod
  • Так как в целевом geek_mod смещение будет другое, нужно его найти:
08. Выделяем в geek64_unpacked "Блок данных" (в HEX), которые надо будет менять (с запасом, чтобы исключить ложное совпадение)

09. Правка >> Копировать блок >> Хекс значения (Shift+Ctrl+C)
10. Идем на вкладку geek_mod, Поиск >> Найти Хекс значения (Ctrl+Alt+X) (или кнопка "Бинокль HEX"). Вставляем и ищем то, что копировали

  • Теперь на всех трех вкладках мы находимся на смещении, с которого начинаются отличия
11. На вкладке geek64_mod выделяем и копируем блок изменений, вставляем на вкладке geek_mod в то же смещение:
Правка >> Данные из буфера >> Записать (Ctrl+B), именно записать а не вставить (если выбрать Вставить (Ctrl+V), то блок не заменится а добавится (размер файла увеличится))

12. На вкладках geek64_unpacked и geek64_mod переходим (Alt+G) к смещению следующего отличия.
  • Так как основная часть ЦП находится в конце, в geek64_mod этот блок будет просто отсутствовать, поэтому переходим на смещение, что перед блоком данных с ЦП (так как оно есть в обоих файлах).
  • Проверяем, что на вкладке geek64_mod далее и правда пустота
13. Теперь надо найти смещение начала ЦП в файле geek_mod - действуем как в пунктах "8-10":
    выделяем блок с частью ЦП на вкладке geek64_unpacked,
    копируем Хекс значения (Shift+Ctrl+C),
    вкладка geek_mod, Поиск >> Найти Хекс значения (Ctrl+Alt+X) (или кнопка "Бинокль HEX"). Вставляем и ищем то, что копировали
  • Теперь мы знаем смещение начала ЦП файла geek64_mod, вклеенного в geek_mod - 5FC9D0
14. На вкладке geek64_unpacked встаем на смещение начала ЦП (35EA00), выделяем все данные до конца файла:
Правка >> Определить/Задать Блок >> Начало Блока = Текущая позиция, Конец блока = Конец файла
  • Галочка должна стоять на строке "Конец" (а не "Размер"), жмем OK, блок выделится
  • Внизу будет указан выделенный Блок (Блок: 35EA00-36264F) и Размер выделения (Размер: 3C50)

15. Вкладка geek_mod, встаем на смещение начала ЦП (5FC9D0), и:
Правка >> Определить Блок >> Начало Блока = Текущая позиция, Размер = 3C50
  • и галочка должна стоять на строке "Размер"
  • После применения выделится блок ЦП

16. Так как просто удалить блок мы не можем, чтобы не нарушить работоспособность файла, будем заполнять его нулями:
Правка >> Заполнить блок (Ctrl+L) - Заполнить Hex значениями: 00

17. Сохраняем geek_mod.exe, запускаем, и проверяем отсутствие ЦП у распаковавшегося geek64.exe
  • Контрольные суммы у вшитого geek64 так не поправить (внутри geek.exe)
  • По идее, нули в конце файла не проблема, но все-таки отдельно обработанный geek64_mod более правильный (никаких лишних нулей, подправленная в CheckSumPeконтрольная сумма), так что предпочтительнее, конечно, использовать его


Display posts:    

Current time is: 13-Apr 01:21

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum