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