Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Есть откомпилированный проект на Delphi (исходники тоже есть). В программе есть константа (const ver=12). можно ли изменить ее ЗНАЧЕНИЕ методом перезаписи нескольких байт exe файла? И как найти ее «расположение» в файле. Понимаю, что выглядит коряво, но другого выхода нет.. 🙁
Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006
Репутация: нет
Всего: 121
Слишком общий вопрос, который к тому же задан не в том разделе. Нужно анализировать ассемблерный листинг готовой программы примерно в тех местах, где в исходнике находится код использующий данную константа. Если константа хранится в памяти и просто читается отттуда, то достаточно будет узнать адрес этой памяти и поменять там её. Если же она вставляется как непосредственный операнд, то придётся искать все места её использования и менять уже там. Проблема решаема только в случае, если ты знаешь ассемблер и умеешь пользоваться хотя бы отладчиком.
ТОНКОСТИ.v2 ∦ minecraft_hex.exe на телефоне? Как поиграть в проклятый майнкрафт на смартфоне? #11
Это сообщение отредактировал(а) W4FhLF — 25.7.2007, 11:02
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Ну некоторые (начальные) знания по ассемблеру у меня есть softice я пользовался и куски кода на асме делал. Но или я тебя не понял или ты меня. надо заменять значение константы не в ходе выполнения программы, а изменить это значение записав в файл exe пару байтов туда, куда надо. Я сделал предположение, что раз константа декларируется в исходниках один раз, то и в exe ее легко заменить.
Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006
Репутация: нет
Всего: 121
а чтобы это сделать надо наверное программу загрузить в дизассемблер/отладчик и проанализировать код, так ведь?
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
Константу сложно найти, она заменяется еще на компиляции
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
[quote]
а чтобы это сделать надо наверное программу загрузить в дизассемблер/отладчик и проанализировать код, так ведь?
Ну. так-то да. Но я думал, что есть какой-то умный «способ гуру».
Цитата |
Константу сложно найти, она заменяется еще на компиляции |
🙁 Последний гвоздь в крышку гроба моей мечты.
В общем сделать особо_умный_парсер_экзешников для замены константы не получится. Дело еще в том, что версии софтины все равно будут меняться достаточно интенсивно. и даже, если после анализ удастся сделать «заменитель констант», который будет напрямую писать в экзешник все равно придется каждую версию программы изучать заново. 🙁
Как запустить EXE файл, если Windows его не запускает
Вот! Сформулировал.
А как вообще можно напрямую пришивать какой-то идентификатор в файл, причем пришивать так, чтобы этот самый файл мог его считать? Ресурс? Но всю эту операцию надо производить на freebsd сервере, где есть только php и perl.
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
Но можно сделать по другому. Ты можешь менять саму переменную + ты можешь дописать в конце файла данные, а потом считать
Это сообщение отредактировал(а) Diesel Draft — 25.7.2007, 13:38
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Цитата |
Но можно сделать по другому. Ты можешь менять саму переменную + ты можешь дописать в конце файла данные, а потом считать |
Да-да! Вот этот способ подойдет.
Просто тупо дописываю в конец файла какое-то значение, а затем его считываю при выполнении?
Насколько я помню сам эксе при этом не пострадает. Реально!
А вот еще одна загвоздка — этот ехе файл хранится в setup.exe, который сделан при помощи inno setup. 🙁 То есть процесс такой:
1) Юзер кликает на ссылку http://www.zlo.ru/evil.php?id=99
2) PHP скрипт дописывает в exe файл значение 99
3) Каким-то образом создается файл setup.exe — тут загвоздка, сервер на freebsd и я вообще в упор не знаю ни одного создателя install, который работает под free, а создает windows setup.
Что можно в этой ситуации наколдовать?
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
Я так понял ты хочешь персонализировать программу, чтоб никто другой не пользовался, да? Я тебе сейчас статью найду на Дельфи, может переделаешь на РНР, єто вполне реально
Добавлено через 6 минут и 18 секунд
в DRKB я видел статью как дописать в конец программы, к сожалению сейчас нет собою базы.
Кстати я так подумал, ты ж можешь этот ключ заменить по всему файлу. Главное чтоб ничего другое не заменил и чтоб размер совпадал
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Ну, если дашь статью, буду благодарен.
Цитата |
Я так понял ты хочешь персонализировать программу, чтоб никто другой не пользовался |
Не совсем так. программа сетевая и уникальный экзешник нужен только для того, чтобы выяснить по какой ссылке скачана программа. Т.е. программа обращается по сети к серверу и передает некоторые параметры (как раз этот идентификатор экзешника), чтобы сервер понял, откуда взята эта программа.
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
Гм, а файл-ключ использувать не хочеш?
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Так было бы просто идеально.
Но пользователь не хочет качать файлы, он хочет нажать на одну ссылку и потом нажать на «сохранить».
Нужно именно скачать один файл SETUP.exe, который уже в себе имеет ключ. это заодно снимает проблему подмены ключа — подменить его в ексешнике будет уже значительно труднее.
Добавлено через 1 минуту и 57 секунд
Хотя дело тут даже не столько в обеспечении секретности ключа, сколько в обеспечении НЕРАЗРЫВНОСТИ пары ключ-программа.
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
гм, наверно я ошибся, я думал ты забираешь архив прям на сервере.
Тогда тебе лучше вписать в программу константой ключ, только определись з размером, потом поменяіть будет сложно возьми, HEX редактор и найди этот ключ. Теперь у тебя есть адрес где он лежит и ты можешь заменить его.
Вариант №2: Возможно инсталлер исказит данные программы, и ты не найдешь их. Тогда ты можешь вписать прям в SETUP.exe. А потом при инфляции запустить программу регистратор, которая считает SETUP.exe и запишет в твою программу.
Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2007
Где: Красноярск
Репутация: нет
Всего: нет
Пожалуй этот вариант надо потестить:
1) Юзер кликает на ссылку СКАЧАТЬ.
2) PHP дописывает в конец исполняемого файла SETUP данные из GET переменной.
3) Исполняемый файл SETUP скачивается на комп юзера.
4) Юзер его запускает.
5) Сетуп производит инсталляцию программы
6) Запускается спецпрограмма, которая считывает данные из конца файла SETUP.EXE и дописывает их в конец файла ПРОГРАММА.EXE
7) Спецпрограмма сама себя удаляет.
8) Конец.
Спасибо, W4FhLF и Diesel Draft.
Буду реализовывать, если я чего-то не упустил.
Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine
Репутация: нет
Всего: 5
Источник: forum.vingrad.ru
Installation Location
Minecraft: Java Edition is stored in the ./home/minecraft/mc-instances/mc-INSTANCEIDHERE/ directory, it can be accessed via the Files menu for your game instance, or, sFTP/SSH . Files added to the instance’s directory will be detected by the control panel and software utilizing them.
The instance ID is in your browser URL, eg: «panel.creeper.host/TestServer/services/mc/mc-5c604c6ddc398/files» when visiting any submenu for that instance.
Uploading files using the ‘root’ login details for SSH/sFTP may cause problems with the control panel being able to access files/folders. Where possible, always login using the standard ‘minecraft’ level key.
An example of a healthy structure listing (Note: «Files» menu does not show the /home/minecraft/* part of the file structure):
- /home/minecraft/mc-instances/mc-INSTANCEIDHERE/server.jar
- /home/minecraft/mc-instances/mc-INSTANCEIDHERE/configs/
- /home/minecraft/mc-instances/mc-INSTANCEIDHERE/mods/
- /home/minecraft/mc-instances/mc-INSTANCEIDHERE/world/level.dat
- /home/minecraft/mc-instances/mc-INSTANCEIDHERE/server-icon.png
Any files dropped into the /home/minecraft/ directory via sFTP/SSH will not be detected by the instances sub-menus, they must be within the /home/minecraft/mc-instances/mc-INSTANCEIDHERE/ directory.
Источник: www.creeperhost.net
Где находится экзешник майнкрафт
Interl0per
Ответов: 12
#1: 2012-07-02 02:13:25 ЛС | профиль | цитата
Пытался зайти в игру.Скачал файл для 64 битных систем.Распаковал.Пытаюсь зайти. Пишет у вас нет файла mc-run.exe. Пытался включить в архве говорит : Невозможно выполнить Сusers*** ( имя пользователя )AppDataLocalTempRar$EXa0.071client-1.0-full-x64mc-run.exe
а теперь вопрос. как это исправить .
З.Ы все джавы обновлял пытался запустить без антивируса запускал от имени админа. Стоит вин 7
#1.1 контекстная реклама от партнеров
Shadow
Ответов: 8912
NeverClan
[W] Constructors
#2: 2012-07-02 02:15:16 ЛС | профиль | цитата
Какой файл запускаете? Действительно ли есть mc-run?
Interl0per
Ответов: 12
#3: 2012-07-02 02:19:08 ЛС | профиль | цитата
В архиве есть а вылезать из него не хочет
Запускал из архива без распаковки . с распаковкой нету екзе
Shadow
Ответов: 8912
NeverClan
[W] Constructors
#4: 2012-07-02 02:39:41 ЛС | профиль | цитата
Interl0per писал(а):
В архиве есть а вылезать из него не хочет
Какой архиватор?
Rainbow_Dash
Ответов: 605
#5: 2012-07-02 03:04:30 ЛС | профиль | цитата
Из архива и не должен запускаться. Если при распаковке нету экзешника, это странно. Попробуйте перекачать архив, мало ли. Или посмотреть логи антивируса — может он файл за что-нибудь нехорошее принимает и сносит.
Пишет у вас нет файла mc-run.exe.
Какой файл Вы запускаете, что он такое пишет?
На небе только и разговоров, что о море, и о закате.
Interl0per
Ответов: 12
#6: 2012-07-02 12:23:45 ЛС | профиль | цитата
архиватор у мну WinRAR на лицензию не ругается.я 100 раз перекачивал и с зеркала перекачивал ниче не помогает.
Пишет нету mc-run если отдельно екзешник вынести и остальные файлы.
Octum
Ответов: 960
#7: 2012-07-02 12:25:03 ЛС | профиль | цитата
Interl0per, У вас какая ОС?
Lelouch_CC
Ответов: 389
WestWood
Основатели
#8: 2012-07-02 12:27:54 ЛС | профиль | цитата
Слава Украïні — героям слава!
Interl0per
Ответов: 12
#9: 2012-07-02 14:06:40 ЛС | профиль | цитата
я написал у меня вин 7.
player$0
Ответов: 13
#10: 2012-07-02 14:18:40 ЛС | профиль | цитата
Антивирус удаляет. Попробуйте выключить антивирус и попробовать заново. Если не помогло, добавьте архив в доверенные файлы.
ФорумыПоддержка Ломаный екзешник. ← Ctrl 1 Ctrl →
Copyright 2023 by Project Galaxy team
Поиск
Твинки
Друзья
Администрация
Источник: forum.minecraft-galaxy.ru