ViSiToR

Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору VitAlll2013 14:18 09-09-2008 [?] Цитата: Можно ли както вносить изменения в сам исполняемый файл? | Вот примерно реализация того что написал Maza Faka , но без 7z, я использовал уже имеющийся upx.exe. Получилось немного бредово правда, хотя если сильно надо ... Код: $sTempDir = _CreateTempFile(@TempDir, '~Au3_', '') $sConfig = $sTempDir & "\Options.ini" $sScript = $sTempDir & "\Script.au3" $sCompiler = $sTempDir & "\Aut2Exe.exe" $sUpx = $sTempDir & "\Upx.exe" $sBin = $sTempDir & "\AutoItSC.bin" FileInstall(".\Options.ini", $sConfig, 1) FileInstall(".\Aut2Exe.exe", $sCompiler, 1) FileInstall(".\Upx.exe", $sUpx, 1) FileInstall(".\AutoItSC.bin", $sBin, 1) FileInstall(".\Script.au3", $sScript, 1) ;Проверяем во второй раз (первый игнорируем - будет выведено текущее значение, т.к ещё не была сделана запись), на сохранение MsgBox(64, "Results", IniRead($sConfig, "Sect", "Key", "")) ;Пишем в инишку, она будет запакована в новый exe'шник IniWrite($sConfig, "Sect", "Key", "Some New Data") ;Компилируем всё обратно, с новыми параметрами Run($sCompiler & ' /in "' & $sScript & '" /out "' & @ScriptDir & '\Script.exe" /comp 4', @ScriptDir, @SW_HIDE) ;Эта строка удаляет временную папку (будет выполненно через 5 сек. после выполнения скрипта, чтобы компилятор успел отработать) Run(@ComSpec & ' /c ping -n 5 localhost > nul & rd /s /q "' & $sTempDir & '"', @TempDir, @SW_HIDE) Func _CreateTempFile($s_DirectoryName = @TempDir, $s_FilePrefix = "~", $s_FileExtension = ".tmp", $i_RandomLength = 7) Local $s_TempName If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName &= "\" Do $s_TempName = "" While StringLen($s_TempName) < $i_RandomLength $s_TempName = $s_TempName & Chr(Random(97, 122, 1)) WEnd $s_TempName = $s_DirectoryName & $s_FilePrefix & $s_TempName & $s_FileExtension Until Not FileExists($s_TempName) DirCreate($s_TempName) Return $s_TempName EndFunc | Файлы upx.exe, Aut2exe.exe, AutoItSC.bin, Options.ini поместить в папку со скриптом (Script.au3). Есть два значительных ограничения: 1. Нельзя использовать аутоитовские #include'ы, они не четабельный при повторной компилляции. 2. Вес exe'шника сильно выростает за счёт дополн. файлов (компиллятор, упаковщик и т.д.). P.S Я уверен это может реализовать намного лучше, но это то что набрасалось на скорую руку.
---------- ViSiToR a.k.a CreatoR CreatoR это не ник, CreatoR это стиль жизни! |
| Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 16:08 09-09-2008 | Исправлено: ViSiToR, 16:09 09-09-2008 |
|