![]() |
eXeL@B —› Программирование —› Клиент-Сервер (Delphi) |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 февраля 2012 07:02 · Личное сообщение · #1 Приветствую всех! Есть флеш приложение, которое общается с сервером через порт по средствам TCP пакетов. Надо сделать простейшее приложение логина на сервер и получение любых данных. По идее если обращение из флеш, структуру пакетов можно откопать в нём же. Обычно сталкивался с GET, POST запросами, там всё ловил через HttpAnalyzerStd. Через что лучше работать с пакетами? Ставил различные снифферы пакетов, что-то всё работает очень сомнительно (когда в приложении куда-либо обращаешься, никаких посылок не ловится, а по идее данные должны запрашиваться от сервака). Вопросы: 1. Какой софт для анализа лучше в данном случае? (под винду) 2. С чего начать копать (в теории) PS: Если уж совсем не в тему форума, киньте в оффтоп, но там мало кто читает ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 28 февраля 2012 09:24 · Личное сообщение · #2 |
|
Создано: 28 февраля 2012 13:29 · Личное сообщение · #3 |
|
Создано: 28 февраля 2012 14:10 · Личное сообщение · #4 |
|
Создано: 28 февраля 2012 20:33 · Личное сообщение · #5 drone +1 charles пробовал, ничего хорошего не вытащил, думал не разобрался просто OKOB WPE PRO тоже пробовал, толи она сырая совсем, то ли я ) Остальное буду тестить, спс а по поводу как это может быть организовано во флеше может кто подсказать? флешка на несколько метров анализируется визуально тяжко, какие команды основные искать? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 29 февраля 2012 03:23 · Личное сообщение · #6 |
|
Создано: 29 февраля 2012 05:41 · Поправил: kiber_punk · Личное сообщение · #7 Isaev >>Какой софт для анализа лучше в данном случае? (под винду) Ну если пакеты нестандартные, то и анализировать придётся самому, вручную. - Берёшь обычный сниффер на RawSocket без анализатора; - сравниваешь дампы пакетов; - выявляешь различия (в зависимости от посылаемых команд) и закономерности, определяешь структуру пакета. ![]() |
|
Создано: 29 февраля 2012 17:59 · Личное сообщение · #8 |
|
Создано: 29 февраля 2012 19:28 · Личное сообщение · #9 |
|
Создано: 01 марта 2012 03:45 · Личное сообщение · #10 |
|
Создано: 02 марта 2012 20:04 · Поправил: Isaev · Личное сообщение · #11 OKOB в тему, спс Теперь я вообще сомневаюсь, что там через сокеты ) в аттаче скрипт коннекта, если кому интересно строки public static const HTTP:int=1; public static const TCP:int=0; наводят на мысль.... но http запросы не ловятся абсолютно ничем! kiber_punk пишет: С нуля оно как-то попроще пишется Ну это на любителя... Может в данном случае именно так, т.к. писалось это всё явно не прямыми руками ) ![]() ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 17 апреля 2013 10:55 · Личное сообщение · #12 Вернулся на досуге к вышеизложенной проблеме... в идеале надо научиться коннектиться к серверу и получить хотя бы ник в игре свой, дальше я уже пойму как оно работает и буду разбераться сам. Есть у кого опыт разбора пакетов? Мне бы на пальцах показать. в аттаче линк к сайту жертвы. флеш декомпилируется нормально, но он так написан криво, что там сами авторы наверное часами ищут места, где надо что-нибуть пофиксить. Клиент если качать, разницы никакой, там тупо обёртка для того же флеша сделана, т.е. дизасм не поможет Проблемы: 1. Кроме начальных Http запросов ничего дальше не вижу, потому работать не с чем! ![]() ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 17 апреля 2013 11:40 · Личное сообщение · #13 |
|
Создано: 17 апреля 2013 11:40 · Поправил: OKOB · Личное сообщение · #14 Wireshark'ом все снифается Все время сыпятся HTTP пакеты с инфой вида Referer: .......................... Cookie: __utma=163785057.1031524955.1366182404.1366182404.1366182404.1; __utmb=163785057.6.10.1366182404; __utmc=163785057; __utmz=163785057.1366182404.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) Данные POST запроса: data=&off=1860&ack=133198&uuid=d23d5d20%2Da72d%2D11e2%2Dbe08%2D003048d23447&id=292&mtime=1366182915675 ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 17 апреля 2013 13:51 · Поправил: Isaev · Личное сообщение · #15 OKOB и ведь действительно показывает много больше HTTP пакетов, чем HTTP Analyser последний... он мне выдавал авторизацию через контакт, первые 2 запакованные файла и всё, дальше молчал как рыба с чем это может быть связано? начальные версии (3х) вроде отлично работали, потом что-то поломалось... Был бы это баг думаю давно бы починили. keygen нашего собрата работает до последней 7 версии, может какая доп. защита просто организована, которую он не палит явно? или что-то донастроить нужно? кто-то пользуется им? Я думал просто дальше не через http работа идёт, потому он и молчит ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 17 апреля 2013 23:38 · Личное сообщение · #16 |
|
Создано: 18 апреля 2013 03:41 · Поправил: Isaev · Личное сообщение · #17 а как в Wireshark собрать из кучи пакетов content и сохранить в 1 исходный файл? Нашёл только Follow TCP Stream, но оттуда можно только всё вместе сохранить, но не content отдельно и может быть там можно как-то сворачивать отображение этих пары тысяч пакетов для 1 файла? очень мешает анализу ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 18 апреля 2013 11:37 · Личное сообщение · #18 Isaev Ежели ОС - win xp, посоветую снифер Commview (для 7+ кряки не але пока), там контент шустро достать можна самая вкусная фича етого снифера - пишет какой процес делал send/recv ![]() |
|
Создано: 18 апреля 2013 12:12 · Поправил: reversecode · Личное сообщение · #19 Isaev пишет: а как в Wireshark собрать из кучи пакетов content и сохранить в 1 исходный файл? если обычный http, то смотри по пакетам, там дожен будет один большой кусок собран после мелких ACK если это не http и вообще протоколов не определен, то никак, так как wireshark не знает как собирать большие куски от неизвестных протоколов а куски бывают передаются по разному, например в одних TCP протоколах весь пакет передается в ACK, а бывает если пакет большой то бьется на ACK а финальный приходит в ACK,PUSH ![]() |
|
Создано: 18 апреля 2013 13:47 · Личное сообщение · #20 |
|
Создано: 18 апреля 2013 13:48 · Личное сообщение · #21 Isaev пишет: как в Wireshark собрать из кучи пакетов content и сохранить в 1 исходный файл ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 18 апреля 2013 14:22 · Поправил: drone · Личное сообщение · #22 |
|
Создано: 18 апреля 2013 22:56 · Поправил: Isaev · Личное сообщение · #23 |
|
Создано: 22 апреля 2013 13:04 · Личное сообщение · #24 Нашёл начало коннекта. Там идёт запрос DNS получение IP адреса сервера по названию (но откуда берётся само название не понял... вроде нигде не получалось и в скриптах флеш не находится ни полностью ни частично) потом получаются политики и начинается общение... Пакеты идут явно сжатые, т.к. архиватором больше не жмётся. Отсюда вопрос: сжатие обычно стандартное? Или скорее можно/нужно вытащить из скриптов флеша способ сжатия. Если второе, то по каким ключевым словам искать? (т.к. скриптов из флешки вышло на 19мб.) ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 22 апреля 2013 17:43 · Личное сообщение · #25 |
|
Создано: 22 апреля 2013 17:46 · Личное сообщение · #26 |
|
Создано: 22 апреля 2013 18:33 · Личное сообщение · #27 OKOB то что ты привел, нигде не светится в скриптах... ещё есть предложения? reversecode пишет: dns запрос не может быть авторизацией я этого и не писал, я писал сначала DNS потом политики, потом авторизация на счёт pcap, сайт я дал, нажал кнопку и у тебя есть pcap, такой же как и у меня... или тебе непременно нужно с моими паролями? ![]() Если есть время на приставучего меня, можно встретиться в аське или скайпе... Я в общем не особо буду напрягать, но некоторые моменты быстрее, когда объяснят наглядно ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 22 апреля 2013 22:02 · Личное сообщение · #28 на первый взгляд: 1. Данные о состоянии персонаже получает через tcp соединение на порт 20001, пакет или шифрован или упакован. Первые 4 байта это размер пакета, дальше не непонятно. 2. Информацию о мире через get запросы, в ответе приходит упакованый (zip) xml файл типа: <map id="13" v="3762986418"/> <map id="14" v="4190566349"/> <map id="15" v="4203503813"/> </maps> <fxs> <fx id="vileEnvy" v="157652508"/> <fx id="advMapHeimskringlaSimbol07" v="265625787"/> <fx id="quickSands_spawn" v="4027737497"/> причем значения наверно тоже шифрованы. ![]() |
|
Создано: 22 апреля 2013 22:54 · Поправил: Isaev · Личное сообщение · #29 xDvKx порт да 20001, на счёт шифрован не знаю, но у них там горе программисты, т.ч. сомневаюсь очень... если и шифрован, то по-детски xDvKx пишет: Первые 4 байта это размер пакета вот как-то не сходится с размером нигде, тоже сначала так думал... может распакованного? xDvKx пишет: Информацию о мире да это достал давно, там в 3х файлах всё расписано, это ты из среднего привёл пример. это просто,т.к. опыт с http достаточный, но на этом геты кончаются. а дальше надо помощь или мелкие наводки ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 23 апреля 2013 17:56 · Поправил: xDvKx · Личное сообщение · #30 Isaev пишет: вот как-то не сходится с размером нигде, тоже сначала так думал... может распакованного? Все сходится, например пакет 0000005a 116e20248c8586c8fa6bb50bd0fc8d8eb8c1c9c5f6c7facdfdfccacfd4ccd1ffd203d1d5d8db070b0d0d0cdfe012111215e1131419ebe81bedefb9babd2e32becf24372d22f6f5f6fb08362b3438fb4044d2d16787b46bdfb6db его размер 94 байта = 4 байта информация о размере пакета + 90 байт сам пакет И еще один небольшой пакет 00000007 2f1b1828605e5d 11=4+7 И вот еще нашлось: Отправка пакета Code:
Получение пакета Code:
encodeToNetwork(this._serial, param1) this._decoder.getPacket(); в языке не понимаю, но думаю это то что нужно ![]() |
. 1 . 2 . 3 . >> |
![]() |
eXeL@B —› Программирование —› Клиент-Сервер (Delphi) |