|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Отладка abc модификатора. avm2 verification.
Не спрашивайте зачем, но я в автоматическом режиме модифицирую байткод готовых флешек. Добавляю новые методы к классам и творю прочие нехорошие вещи. Собственно всё идёт нормально, но некоторые пациенты не работают после хирургического вмешательства:
На мелких тестовых флешках всё идёт отлично, а на некоторых больших что-то куда-то уползает. Код прочесал уже несколько раз во всех направлениях но ошибки не вижу, а она есть. Собственно вопрос, существует ли какой-нибудь дебажный плеер или ещё что-нибудь, что бы отобразило где крешится верификация? |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Хороший вопрос. Попробуй разные флеш дизасемблеры.
Вообще чисто логически такая ошибка может возникать при getlocal больше доступного или при обращении к fastmem "за пределами выделенного". Второе больше похоже на правду, это одно из самых распространенных причин вмешательства в байткод
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Хм. Ну тогда Вам логичнее было бы всё таки сказать, что Вы делаете с опкодами - возможно, где то есть подвох.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
стервочка (я мужик)
|
я тут на досуге в гараже ковырялся. не спрашиваете зачем, но я впаивал в разные транспортные средства всякие штуки, и сверлил разные дырочки для вентиляции. в итоге с велосипедами всё ок. но вот некоторые автомобили не заводятся и моргают на приборной доске разными лампочками. пытался возить по разным автосервисам, но мне только у виска покрутили. скажите, неужели у производителей авто нет никаких инструментов для того, что бы понять какого чёрта при наличии колёс мой автомобиль не едет сам? и заодно скажите: что я делаю не так!
|
|
|||||
Ну давайте расскажу, только что это изменит. Есть мастерфлешка, она подгружает другую, мы заранее знаем что в ней есть некий метод назовём его foo, задача: в подгружаемой флешки создать новый метод(bar) который будет содержать почти полную копию foo, но часть функционала будет убрана(забита nop(0x02)). Таким образом я не меняю длины тела переносимого метода, и нет необходимости пересчитывать эксепшены. Для добавления метода добавлена строка с именем, мультинейм, сигнатура метода, тело метода, прописан соответствующий трайт. На маленьких флешках всё работает. На больших >1000 методов препарированная флешка падает с вышеописанными симптомами. Где я прав а где нет рассказывать мне не надо, сам найду, мне лишь нужно получить хоть какой-нибудь фидбек от avm2 с тем где ей плохо становится.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
AS3Verbose.
|
|
|||||
Modus ponens
|
По логике такая ошибка может быть либо если обратиться к локальной переменной фукции / аргументу, которого не существует, либо при поиске мультинейма (опять же несуществующего). Но это только предположение...
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 06:38. |
|
« Предыдущая тема | Следующая тема » |
Теги |
abc , abc bytecode , AVM2 , bytecode , debug |
|
|