Wątek zablokowany 2016-10-02 00:45 przez furious programming.

Deserializacja AMF (flash remoting).

0

witam,

mam przechwycić dane z ruchu AMF pomiędzy przeglądarkową grą we Flashu a jej serwerem.
jako, że chodzi mi jedynie o "wydobycie" z ruchu danych, przekonany byłem, że nie będzie z tym większego problemu. skorzystałem z programu Charles Debugging proxy który ładnie prezentuje przechwycone dane w formie drzewa (jak rejestr windows czy drzewo katalogów) i przyjrzałem się surowemu zrzutowi ruchu poszukując w nim odpowiednich wartości, pokazywanych przez Charles'a.

okno Charles'a:

1154081404514f79c5825d8.png

okno hex edytora:

1768211745514f79febd808.png

niestety - wprawdzie wartości łańcuchowe w "surowym" zrzucie ruchu były łatwe do odnalezienia gołym okiem, jednak nie udało mi się namierzyć ŻADNEJ z prezentowanych przez program wartości liczbowej. Próbowałem różnych podejść zamieniając w słowach miejscami starszy bajt z młodszym:

[ 7049427 dec = 6B90D3 hex ->(zamiania)-> 6B00 D390 ? ]

... i nic.

utknąłem.

na obu załączonych zrzutach ekranu dla przejrzystości zaznaczyłem jeden i ten sam rekord danych

czy ktoś może mnie poinstrułować jak ten problem ugryźć?

0

odnośnie https://github.com/zedalaye/Delphi-AMF/

cytuje email od autora w odpowiedzi na pytanie czy istnieje jakakolwiek dokumentacja oraz czy ma informacje o użyciu jego kodu w innych programach:

Hello,

Delphi AMF is not used by any software in production. This was a proof of concept that may have been used in a software but that was abandonned. So I published this code because it took me a lot of work.

AMF.Message can only serialize data in AMF format. I never implemented the network protocol.

I used several "open" AMF implementations in other languages to write this code but can't remember which and I did't wrote any line of documentation.

Sorry. I can't help you more.

widzę jednak, że dodałeś jeszcze jednego linka, i wedle opisu pasuje jak ulał do mojego zapotrzebowania... są tylko 2 "ale":

  1. na stronie http://code.google.com/p/libamfx/wiki/AMF piszą że obsługiwana jest tylko dialekt AMF0, natomiast wersja AMF3 -nie.
    To, że do czynienia mam z wersją AMF3 poznać po nagłówku (na screenie z hexedytora)
    00 03 to AMF3

  2. zacząłem ten wątek w dziale Delphi, bo nie znam choćby powierzchownie innych języków, w tym c++ w którym napisano wspomniany projekt :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1