Что нового

[Данные, строки] Вставка в exe файл своего значения

ArgoNaft

Новичок
Сообщения
129
Репутация
0
Существует такая задача: патчить файл (exe) после компиляции Autoit и заменять скажем слово soxo1 на какое то другое ... Я долго думал куда положить свои данные вот придумал сюда можно :smile: почему нет.
Код:
BLOCK "080904B0"
	{
		VALUE "FileDescription", "soxo1"
		VALUE "FileVersion", "3, 3, 8, 1"
		VALUE "CompiledScript", "AutoIt v3 Script: 3, 3, 8, 1"
	}
Но мне надо делать замену из командной строки это раз во вторых, те другим exe найти в exe soxo1 заменить скажем на слово time. Как это сделать правильно? Я уже все глаза стер, помогите пожалуйста.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
ArgoNaft
Файл не должен быть упакован UPX'ом. Открой файл в Notepad++ и проверь что это слово будет найдено. Если нет, то код скорее всего сжать внутри exe, поэтому чтобы иметь свой текст в бинарнике, можно прописать его либо в ресурсы либо дописать к концу exe-файла. Внутри скрипта слово читаешь чтением ресурса или концовки файла, а снаружи можно патчить также либо ресурс, либо конец.
 
Автор
A

ArgoNaft

Новичок
Сообщения
129
Репутация
0
А можно пример добавления в конец файла строки какой мне надо ... :-[ а то у меня сомнения что можно просто взять и дописать в конец файла слово и exe Будет работать
 

sims

Осваивающий
Сообщения
184
Репутация
24
Используй ресурсы.


ArgoNaft [?]
у меня сомнения что можно просто взять и дописать в конец файла слово и exe Будет работать
Скрипт дописывается в конец exe интерпретатора и работает же.
 
Автор
A

ArgoNaft

Новичок
Сообщения
129
Репутация
0
ну вот пример можно, у меня просто не получается :smile:
 
Автор
A

ArgoNaft

Новичок
Сообщения
129
Репутация
0
ну у меня задача патчинга стоит какой там ini файл :smile:
Все вот говоря говорят а примера так и не могу привести :scratch:
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
ArgoNaft [?]
ну у меня задача патчинга стоит какой там ini файл
Если EXE твой, то просто смени метод решения задачи.
А если не твой, то о чём речь...
На форуме уже решали эту задачу, ищи поиском.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
ArgoNaft
Не знаю, что ты там собрался прятать, но скажу с уверенностью - это еще глупее, чем прятать в ini.

5xvgx.png
5xvk6.png

И скрипт работает без проблем.

Запись:
Код:
$hFile = FileOpen( @ScriptFullPath, 17 )
$sWord = StringTrimLeft( StringToBinary( 'soxo1' ), 2 )
$bWrite = Binary( '0x00' & $sWord )
FileWrite( $hFile, $bWrite )
FileClose( $hFile )



Чтение:
Код:
$hFile = FileOpen( @ScriptFullPath, 16 )
$sBinary = FileRead( $hFile )

$aResult = StringRegExp( $sBinary, '415533214541303600([0-9A-F]+)$', 1 )
MsgBox( 0, 0, BinaryToString( '0x' & $aResult[0] ) ) ;Наше слово

FileClose( $hFile )
 
Автор
A

ArgoNaft

Новичок
Сообщения
129
Репутация
0
http://autoit-script.ru/index.php/topic,15299.0.html
По моему это единственный верный выход для этого вот решения ... или я до сих пор глупый?
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
ArgoNaft [?]
По моему это единственный верный выход для этого вот решения ... или я до сих пор глупый?
Выход для чего? Для каких целей тебе это надо?

Я тебе привел решение твоей проблемы, раз оно тебе не подходит - значит формулировка не та, создавай опять новую тему.
 
Автор
A

ArgoNaft

Новичок
Сообщения
129
Репутация
0
мне нужно написать трекинг установки, как в выше указанном примере. Но есть одна загвоздка, нельзя менять имя установщика. Вот как есть он Install.exe так он и должен быть таким. А теперь задача: как мне отслеживать входящий GET SUBID в install.exe? Вон пример выше. Они патчат файлик. Формулировка соответствует тому что мне нужно, проблему я уже решил и мне нужен был всего лишь метод добавления в файл в exe моей строки через патч. Да вы дали решение - спасибо.
 
Верх