|
|
|||||
Modus ponens
|
Если библиотеку скомпилировали для отладки, то можно отладчиком что-нибудь посмотреть. Конечно понять что-то будет сложно... но если коротенькая функция то можно попробовать. Самый простой вариант - если известно, что функция обращается к свойству объекта, который вы передаете, можно в геттере этого объекта вызвать enterDebugger(). Если нет, то нужно смотреть синтаксис break для fdb - помоему там можно назначить точку останова по имени функции.
__________________
Hell is the possibility of sanity |
|
|||||
Можно протрейсить все вызовы функций внутри при помощи flash.trace.Trace, правда ещё нужно подтюнить mm.cfg чтоб это работало хоть с какой-то производительностью(включить TraceOutputBuffered). Также можно просто декомпилировать swc. Декомпайлер её скорее всего просто так не еъест, поэтому извлеките swc зипом и там получатся swf и xml файл. А вам зачем вдруг такая мысль посещает? Не все вопросы связанные с реверсингом можно обсуждать на этом форуме.
__________________
:) |
|
|||||
Цитата:
Более того, вообще мистика, есть класс FlashSocket extends EventDispatcher implements IWebSocketWrapper. В нем несколько публичных переменных. Я имею к ним доступ создав экземпляр класса. Все без проблем. Но когда создаю свою публичную в переменную в FlashSocket и обращаюсь к ней, при компиляции получаю ошибку: Геттерами/сеттерами такой же результат. |
|
|||||
А что вам мешает этот объект превратить в строку при помощи JSON (например вот этого http://www.blooddy.by/ru/crypto/)
|
|
|||||
Попробую описать проблему подробнее.
Сервер отправляет запросы клиенту так (сделал 5 разных вариантов):
debug - flashsocket writing 3:::rrrrrrrr debug - flashsocket writing 3:::[object Object] debug - flashsocket writing 3:::[object Object] debug - flashsocket writing 5:::{"name":{"tests":[555,777]}} debug - flashsocket writing 5:::{"name":{"tests":[555,777]}} //https://github.com/LearnBoost/socket.io-spec#Encoding /* 0 Disconnect 1:: Connect 2:: Heartbeat 3:: Message 4:: Json Message 5:: Event 6 Ack 7 Error 8 noop */ var dm:Object = deFrame(message); _mess = message; switch ( dm.type ){ case '0': this._onDisconnect(); break; case '1': this._onConnect(); break; case '2': this._onHeartbeat(); break; case '3': var fem:FlashSocketEvent = new FlashSocketEvent(FlashSocketEvent.MESSAGE); fem.data = dm.msg; dispatchEvent(fem); break; case '4': var fe:FlashSocketEvent = new FlashSocketEvent(FlashSocketEvent.MESSAGE); fe.data = JSON.decode(dm.msg); dispatchEvent(fe); break; case '5': var m:Object = JSON.decode(dm.msg); var e:FlashSocketEvent = new FlashSocketEvent(m.name); e.data = m.args; dispatchEvent(e); break; } Пытаюсь разными методами разобрать полученные методы - ошибок нет, но и ничего не выводится: |
|
|||||
Modus ponens
|
(fdb) help break Set breakpoint at specified line or function. Examples: break 87 Sets a breakpoint at line 87 of the current file. break myapp.mxml:56 Sets a breakpoint at line 56 of myapp.mxml. break #3:29 Sets a breakpoint at line 29 of file #3. break doThis Sets a breakpoint at function doThis() in the current file. break myapp.mxml:doThat Sets a breakpoint at function doThat() in file myapp.mxml. break #3:doOther Sets a breakpoint at function doOther() in file #3. break Sets a breakpoint at the current execution address in the current stack frame. This is useful for breaking on return to a stack frame. To see file names and numbers, do 'info sources' or 'info files'. To see function names, do 'info functions'. Abbreviated file names and function names are accepted if unambiguous. If line number is specified, break at start of code for that line. If function is specified, break at start of code for that function. See 'commands' and 'condition' for further breakpoint control.
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 18:27. |
|
« Предыдущая тема | Следующая тема » |
|
|