По сути, я пишу мод пользовательского интерфейса для игры.
Поддерживает загрузку файлов SWF для управления пользовательским интерфейсом.
Я уже создал fla с проектом AS3 с текстовой областью, который действует как регистратор и печатает все, что мне нужно, проблема в том, что у меня нет возможности извлечь оттуда данные.
Я пробовал:
- Буфер обмена с MouseEvent и без него (как указано в документации) - не работает.
Clipboard.generalClipboard.formats
возвращает пустой массив.
Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, 'myData')
буквально ничего не делает (с сериализацией и без нее).
Запись в файл вызывает исключение, код ошибки отличается в зависимости от подхода (1001, 1006 и т. Д., Точно не помню)
Ошибка отправки HTTP-запроса на ioerrorevent 1006
Попытка подключиться к локальной БД - MySQL или SQLite также не удается
Я предполагаю, что все эти проблемы каким-то образом блокируются самой игрой, чтобы моддеры не раскрывали важные данные.
Проблема еще и в том, что буквально нет документации и большинство авторов модов не используют взаимодействие с файловой системой и / или http-запросами.
Те моддеры, которые смогли записать в файл - либо игнорируют, либо месяцами не работают.
Итак, вопрос: Есть ли способ раскрыть какие-то данные из игры? Буквально все, что будет работать, будет соответствовать моим потребностям.
Для тех, кому интересно - я хочу написать рынок для продажи внутриигровых предметов (только за внутриигровую валюту) и сделать свою работу с открытым исходным кодом, как только это будет сделано.
На всякий случай - использование любого из этих подходов в самой среде IDE работает нормально, так что я предполагаю, что это каким-то образом блокируется игрой.
У меня была идея какой-то инъекции DLL или чего-то еще, но Google говорит, что это невозможно.
SWF-файл загружается во время выполнения в игре.
UPD:
Я новичок в ActionScript и самом Flash, буквально это мой самый первый любимый проект.
Ни один из AIR недоступен. Для своего самого первого теста я декомпилировал уже созданный мод и сделал некоторые пользовательские изменения (например, переименованный текст, просто чтобы убедиться, что он работает).
Компиляция выполняется через Adobe Flash CS6, я открываю FLA-файл и использую публикацию с FlashPlayer 11.2 и AS3.
Затем скомпилированный swf помещается в специальный архив (как того требует игра) и все. Мод работает, но я не могу извлечь данные из самой игры. Все, что позволит мне захватить данные в файл, буфер обмена, базу данных, отправить запрос сокета и т. Д., Будет работать для моих целей.
Я также пробовал компилировать с возможностью доступа только к локальному и только к сети - каждый раз одно и то же, для:
- http Я получаю ошибку IOError, что-то вроде [IOErrorEvent type = ioError bubble = false cancelable = false eventPhase = 2 text = Ошибка № 2031: Ошибка сокета. URL: http: // localhost: 4567 / testEndpoint? Test = myTestData] - при запуске приложения с Adobe Flash работает отлично; если работает как часть мода, загружается в игре - нету
- файл просто невозможно использовать, так как он является частью AIR
- socket - мне удалось
sometimes
получить запрос файловой полиции на бэкэнде, и я ответил на него, как было упомянуто в документации, а затем - в сокет ничего не поступает. - база данных буквально не работает, я использовал довольно старые библиотеки, нашел на github
- Буфер обмена -
Clipboard.generalClipboard.setData
- ничего не делает;System.setClipboard()
- ничего не делает, ошибок вообще нет - fscommand ('exec', 'sample.exe') - на всякий случай попробовал, согласно документации - не работает (поместите exe-файл в каталог
fscommand
рядом с исполняемым файлом и самим модом, только в кейс)
Я также добавил это:
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Подход dxgi.dll
, упомянутый в комментариях, работает с множеством проблем, но это может быть причиной того, что игра очень часто вылетает, поэтому, боюсь, я не смогу пройти проверку мода перед публикацией.
Так что в основном у меня нет идей.
Был бы признателен за любую помощь в этом.
На всякий случай - документации как модифицировать игру совершенно нет ...
textArea.text
в какую-нибудь другую переменную, например String, и использовать по мере необходимости? (например: сохранить на диск). (2) Если импортировано, вы можете попробовать узнать (может быть, с помощью декомпилятора?) имя var (или instance) текстовой области, а затем извлеките его с помощью некоторого пути, напримерmyString = myLoadedSWF.textArea.text;
... - person VC.One   schedule 24.07.2020