![]() |
Отладка abc модификатора. avm2 verification.
Не спрашивайте зачем, но я в автоматическом режиме модифицирую байткод готовых флешек. Добавляю новые методы к классам и творю прочие нехорошие вещи. Собственно всё идёт нормально, но некоторые пациенты не работают после хирургического вмешательства:
Код:
VerifyError: Error #1107: Данные ABC повреждены, попытка чтения вне пределов. |
Хороший вопрос. Попробуй разные флеш дизасемблеры.
Вообще чисто логически такая ошибка может возникать при getlocal больше доступного или при обращении к fastmem "за пределами выделенного". Второе больше похоже на правду, это одно из самых распространенных причин вмешательства в байткод :) |
Fastmem не используется. Дизассемблеры пробую разные, yogda крышей едет на такой флешке, nemo404 не ест анпакнутые флешки, а пакер я ещё не сделал. Не уж то у эдоба нет никаких тулзов для дебага такого рода?
|
Хм. Ну тогда Вам логичнее было бы всё таки сказать, что Вы делаете с опкодами - возможно, где то есть подвох.
|
я тут на досуге в гараже ковырялся. не спрашиваете зачем, но я впаивал в разные транспортные средства всякие штуки, и сверлил разные дырочки для вентиляции. в итоге с велосипедами всё ок. но вот некоторые автомобили не заводятся и моргают на приборной доске разными лампочками. пытался возить по разным автосервисам, но мне только у виска покрутили. скажите, неужели у производителей авто нет никаких инструментов для того, что бы понять какого чёрта при наличии колёс мой автомобиль не едет сам? и заодно скажите: что я делаю не так!
|
Ну давайте расскажу, только что это изменит. Есть мастерфлешка, она подгружает другую, мы заранее знаем что в ней есть некий метод назовём его foo, задача: в подгружаемой флешки создать новый метод(bar) который будет содержать почти полную копию foo, но часть функционала будет убрана(забита nop(0x02)). Таким образом я не меняю длины тела переносимого метода, и нет необходимости пересчитывать эксепшены. Для добавления метода добавлена строка с именем, мультинейм, сигнатура метода, тело метода, прописан соответствующий трайт. На маленьких флешках всё работает. На больших >1000 методов препарированная флешка падает с вышеописанными симптомами. Где я прав а где нет рассказывать мне не надо, сам найду, мне лишь нужно получить хоть какой-нибудь фидбек от avm2 с тем где ей плохо становится.
|
AS3Verbose.
|
По логике такая ошибка может быть либо если обратиться к локальной переменной фукции / аргументу, которого не существует, либо при поиске мультинейма (опять же несуществующего). Но это только предположение...
|
| Часовой пояс GMT +4, время: 19:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.