Как заменить иконку в исполняемом файле?

1854
Mikhail

Мне известен ответ: как я могу заменить значки исполняемого файла приложения?

И этот ответ: https://stackoverflow.com/q/14370553/261217

Я пробовал Resource Hacker, Resource Hacker FX, XN Resource Editor и несколько других редакторов ресурсов, которые даже не помню. Все они уже сняты с производства и все они испортили исполняемый файл. Независимо от того, использую ли я новый значок или редактирую встроенный. Есть ли какой-либо современный инструмент, который я могу использовать для этой задачи, который не будет производить сломанный EXE? Я ищу решение для Windows 7 x64, для 32-разрядного приложения.

И вот мой exe: https://www.dropbox.com/s/cr3fm1yl5ukfc7c/KeysRemapper.exe?dl=0 . Я пытаюсь заменить второй значок (зеленая буква S).

2

1 ответ на вопрос

3
Vinayak

Файл упакован с использованием UPX, исполняемого компрессора.

Вы можете сначала распаковать его, а затем попробовать инструменты редактирования ресурсов, такие как Resource Hacker FX, PE Explorer или ResEdit и т. Д.

Вы можете распаковать исполняемый файл (если он не запутан), используя следующую команду:

upx -d -o unpacked_filename.exe input_filename.exe 

Я попробовал это, и это сработало для меня:

  1. Замена ресурса значка на распакованном EXE: UPX unpacked EXE editing using Resource Hacker FX
  2. Результат:

Icon resource replaced

Для правильной меры упакуйте исполняемый файл снова после замены ресурса значка. Vinayak 10 лет назад 1
Мне просто любопытно, как ты узнал, что он упакован с UPX? Raystafarian 10 лет назад 0
Большое спасибо, я скоро проверю это решение. Mikhail 10 лет назад 0
@Raystafarian Я скачал EXE и запустил [Universal Extractor] (http://legroom.net/software/uniextract) на нем. Он обнаружил, что EXE был упакован с помощью UPX, и спросил меня, хочу ли я его распаковать. Я сказал да. Тем не менее, я бы не рекомендовал использовать Universal Extractor, так как он довольно старый, и есть более полезная ветвь программы с последними двоичными файлами распаковщика, которые он использует (например, 7-zip, PeaZip и т. Д.), Но я не могу помните название программы. Vinayak 10 лет назад 2
В качестве альтернативы вы можете использовать [PEiD] (http://www.aldeid.com/wiki/PEiD), чтобы проверить, упакован ли EXE-файл или нет. Еще один способ сделать это - [сканировать файл с помощью VirusTotal.com] (https://www.virustotal.com/en/file/5ca455c3af274391a28156c86560be177377fe723b508abe225fa05878edaca7/analysis/1412325579/) и посмотреть, есть ли в нем исполняемый файл, который является вирусом или нет. Vinayak 10 лет назад 2
Но, безусловно, самый простой способ обнаружить наличие UPX - это открыть файл с помощью шестнадцатеричного редактора и выполнить поиск `UPX` (это не будет работать, если исполняемый файл был намеренно запутан после сжатия). Vinayak 10 лет назад 1
Я только что нашел [Вилку Universal Extractor] (http://forum.ru-board.com/topic.cgi?forum=5&topic=20420&start=440), если кому-то интересно. Я не проверил это полностью, поэтому используйте его на свой страх и риск Vinayak 10 лет назад 0
Кажется, EXE защищен от распаковки. Когда я пытаюсь запустить распакованную версию, он говорит «EXE поврежден» и завершает работу. Это не сообщение от системы, а от самого EXE-файла. Mikhail 10 лет назад 0
@Mikhail EXE-файл на самом деле является скриптом [AutoHotkey] (http://www.autohotkey.com/), который был скомпилирован в EXE, поэтому вы можете использовать [EXE2AHK] (http://www.autohotkey.com/download/Exe2Ahk .exe) в оригинальном упакованном исполняемом файле, чтобы получить скрипт AutoHotkey AHK и [скомпилировать его самостоятельно с выбранным вами значком] (http://www.autohotkey.com/docs/commands/Menu.htm). Vinayak 10 лет назад 0
Чтобы изменить значок EXE, отображаемый на рабочем столе, скомпилируйте его с помощью Ahk2Exe (без использования контекстного меню, вызываемого правой кнопкой мыши). Вы найдете `AHK2EXE` в` Program Files Directory \ AutoHotkey \ Compiler`. Убедитесь, что вы указали свой собственный значок при компиляции скрипта. Vinayak 10 лет назад 0
@Vinayak Да, я сам написал этот скрипт :) Но в системном трее есть две иконки: одна по умолчанию и одна, когда скрипт приостановлен. С AHK2EXE я могу указать только значок по умолчанию. Существуют решения для установки еще одного значка для приостановленного состояния на форумах AHK, но ни один из них не помог мне :( Mikhail 10 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/17614/discussion-between-mikhail-and-vinayak). Mikhail 10 лет назад 0