Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Изменить текст в сжатом EXE (http://forum.oszone.net/showthread.php?t=275592)

VilAnoR 11-01-2014 20:20 2286978

Изменить текст в сжатом EXE
 
Вложений: 1
Здравствуйте!
Для начала хотел спросить, возможно ли это вообще? Перепробовал все - от извлечения ресурсов до программ для русификации.
Необходимо изменить текст в интерфейсе.

mwz 11-01-2014 20:23 2286980

VilAnoR, распаковать ("разжать") исходный EXE -- заменить -- упаковать (сжать).
Вроде бы так.

VilAnoR 11-01-2014 20:27 2286985

Да, но у меня, к сожалению, сложности с распаковкой исполняемого файла. Как бы Вы посоветовали это сделать?

XPEHOMETP 11-01-2014 21:02 2287012

Дамп из памяти?

VilAnoR 11-01-2014 21:14 2287017

Цитата:

Дамп из памяти?
Нужен? Или имеется в виду имеющийся?

mwz 11-01-2014 21:30 2287034

VilAnoR, надо знать, чем упакован этот файл.
Видимо всё же каким-то из стандартных упаковщиков (7-zip в него входит -- но не совсем корректно) -- так что надо или анализировать в файле заголовок-признак упаковщика, или "тупо" пробовать разные известные распаковщики.

XPEHOMETP,
Точно, это может и проще всего -- если он выгружается в память полностью, а не оверлеями.

PS
VilAnoR, снять дамп запущенной программы из памяти.
PPS
Попробовал натравить на него UniExtract.exe -- но тот определил как 7-zip SFX и вытащил то же самое, что можно вытащить просто с помощью 7-zip. :(

VilAnoR 11-01-2014 21:36 2287041

Не могли бы Вы, мне, пожалуйста, дать процедуру снятия дампа, дабы все было верно?

mwz 11-01-2014 21:49 2287056

VilAnoR, <....> (воспользовался другим универсальным распаковщиком, который всё это проделал с дампом сам).

PS
За результат не ручаюсь: разработчик мог заложить некоторые защитные механизмы. Так что дальше ковыряйте сами.
PPS
И точно: распакованный не запускается нормально, в отличие от исходного... Возможно нужна более свежая версия распаковщика.

VilAnoR 11-01-2014 22:03 2287064

Спасибо за проделанную работу. Каким ПО теперь воспользоваться для решения поставленной задачи? А именно, изменения текста.

mwz 11-01-2014 22:13 2287074

VilAnoR, так он у вас запустился? У меня и в WinXP не стал, вызвав ошибку...
Анализ некоторым инструментарием не позволил определить, чем сжат исходный файл -- так что только если вернуться к дампам памяти. Но тут я уже не посодействую...

VilAnoR 11-01-2014 22:23 2287083

mwz, нет, не запустился.

mwz 11-01-2014 22:36 2287090

VilAnoR, так о чём и речь... Мне его не хотелось запускать без песочницы -- но потом всё же запустил и увидел, что облом.
А если не запускается -- то смысла в остальных действиях нет. Сейчас попробовал (скачал) ещё несколько инструментов -- тоже не помогли, с резюме: "Тип упаковщика определить не удалось".

VilAnoR 11-01-2014 22:40 2287093

mwz, на самом деле распаковка частично помогла, смог выделить 8000+ string ресурсов против 400 у нераспакованного варианта. Но это все же не все.

deviance 11-01-2014 22:52 2287099

Рабочий вариант.

VilAnoR 11-01-2014 23:01 2287107

deviance, Благодарю!
mwz, есть работающий вариант, что дальше?

mwz 11-01-2014 23:32 2287128

VilAnoR, у меня в активе только ResourceHacker http://www.angusj.com/resourcehacker/ и его расширение ResourceHacker-FX http://rammichael.com/resource-hacker-fx (патчит исходный файл не удаляя его, а кладя результат рядом -- так что можно затем пользоваться как оригиналом, так и расширением). Но я крайне редко занимаюсь такими вещами -- и, видимо, есть и более совершенные варианты.

deviance, просто из любопытства (можно не отвечать): использован дамп памяти, или определён метод упаковки? :)

deviance 12-01-2014 00:05 2287149

mwz, использован дамп, метод упаковки - UPX. Из файла удален служебный заголовок UPX, поэтому upx -d не срабатывает.

VilAnoR 12-01-2014 00:51 2287192

mwz, ResourceHacker, к сожалению, не открывает ресурсы. Уже пробовал.

Все, проблема решена ResTunerом! Спасибо большое за распаковку!

VilAnoR 12-01-2014 01:15 2287216

Правда я поторопился, выдает ошибку при обратном сохранении "невозможно найти y?.dll", но это видимо я что-то не верно делаю

VilAnoR 12-01-2014 01:35 2287232

После некоторых операций суть ошибки сводится к тому, что после редактирование приложение не запускается под win 32. Я пока что сам попробую разобраться что к чему. Видимо нужно компилировать обратно будет.

VilAnoR 12-01-2014 03:13 2287282

Пробую через Delphi, но не особо в нем понимаю. Проблема вот какая, распакованный файл получается разделить на ресурсы, но далее собрать вместе не выходит - если вместо скомпелированного файла формы добавить его же отредактированный, он получается расширения dfm, а программа перестает запускаться под win32.
Теперь мне необходимо как-то изменить одну из форм в программе, чтобы она при этом запустилась после изменения.

mwz 12-01-2014 12:41 2287439

VilAnoR, я так понял, вы хотите изменить только надпись.
Не пробовали изменить ресурс-надпись так, чтобы длина осталась неизменной (использованием пробелов хотя бы, или добив шестнадцатеричными нулями в конце)?
Скорее всего это можно сделать шестнадцатеричным редактором прямо в распакованном файле.


Время: 11:44.

Время: 11:44.
© OSzone.net 2001-