Сейчас на форуме: cppasm, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Дешифрация трафика
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 мая 2016 23:48
· Личное сообщение · #1

Доброго дня!
Есть сниффер, который ловит пакеты между клиентом и сервером.
Вот пример нешифрованного пакета:
19 00 2e 00 01 00 00 00 00 00 00 00 00 05 00 31 00 31 00 31 00 31 00 31 00
где
19 00 - длина всего пакета
05 00 - длина сообщения, в данном случае сообщение "11111"

далее 3 пакета уже после шифрации:
C3 09 4F 5F 70 41 D3 09 23 A6 F1 89 A7 52 D7 07 57 BE 77 8A EB F2 7C 1F 3B F9 ED F6 51 35 01 BA 28 12
93 D1 06 D8 7F 6A E9 D9 2C 8D CB 59 9C C3 77 8B 6C 2F D7 06 37 B4 CF EB E7 BF 5E 02 FB 41 0F 62 82 66
70 8D 38 C1 BD A3 8F DB EE 44 AD 5B 9B DF 2B B6 6B 33 8B 3B F2 31 01 A4 22 3A 90 4D 59 2F 77 7A 20 08

это все тот же пакет, отправлен и считан после шифрации 3 раза.
Вопрос:
Возможно ли определить алгоритм шифрации по таким данным?




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 01 июня 2016 05:16
· Личное сообщение · #2

В таких случаях, как правило, алго дергается из самой программы.



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 01 июня 2016 07:47
· Личное сообщение · #3

Напоминает стандартное шифрование для https протокола.Прямому восстановлению не подлежит, можете не дергаться.

-----
TEST YOUR MIGHT





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 01 июня 2016 10:38
· Личное сообщение · #4

А мне сильно напоминает протоколы онлайн игр. И восстановлению подлежит - дергайтесь. Но нужно изучать код игры(программы). Сейчас зачастую шифровка накрывается виртуальными машинами и проще зацепить свою длл к процессу для перехвата уже расшифрованных данных.

| Сообщение посчитали полезным: dabrys

Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 июня 2016 11:12
· Личное сообщение · #5

Да, скорее всего так и есть, только в программе куча длл и не понятно в какой из них накрывается шифровка виртуальной машиной + сам алгоритм не понятен + инфы для чтива тоже не найти, поэтому и пытался снимать пакеты с сетевой карты и их дешифровать. Подскажите плз в каком направлении двигаться. Я так понимаю примерно так:
- изучить способы декомпиляции длл, чтоб прочитать код;
- изучить способы шифрации через вирт. машины;
- написать свою длл и заинжектить ее в нужную программу;



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 01 июня 2016 12:16
· Личное сообщение · #6

dabrys
ну как вариант, похукать нужные функции и уже отсюда плясать, смотреть где и как расшифровываются полученные данные и наоборот.

| Сообщение посчитали полезным: dabrys

Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 июня 2016 12:54
· Личное сообщение · #7

Добрый форум, много отзывчивых людей, не ожидал)
А как найти себе наставника, желательно по моей тематике? Готов благодарить наставника как репетитора.
Имею базовые знания на delphi и базовые знания по структуре пакетов.




Ранг: 44.2 (посетитель), 69thx
Активность: 0.140.02
Статус: Участник

Создано: 01 июня 2016 14:10
· Личное сообщение · #8

для начала купи exelab dvd, бгг




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 01 июня 2016 15:53
· Личное сообщение · #9

dabrys пишет:
только в программе куча длл и не понятно в какой из них накрывается шифровка виртуальной машиной + сам алгоритм не понятен + инфы для чтива тоже не найти


Если бряк/хук на CryptAcquireContext() не выявляет её использования, то можно поочерёдно загружать модули в иду и проверять на наличие функций openSSL - ида их должна распознавать и называть. Возможны модификации различных известных криптоалгоритмов и самопалы, незнакомые иде. Тут только реверс.

dabrys пишет:
инфы для чтива тоже не найти

По криптографии есть
--> Link <--
--> Link <--

-----
IZ.RU




Ранг: 21.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 01 июня 2016 15:53
· Личное сообщение · #10

Случайно не слот-игры?



Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 июня 2016 21:23 · Поправил: dabrys
· Личное сообщение · #11

Yotun
нет

Добавлено спустя 38 минут
Я так понимаю нужно сначала изучить С++?)




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 02 июня 2016 04:44 · Поправил: Gideon Vi
· Личное сообщение · #12

ради одной игры? Заплати в соседней теме по поиску специалистов, рас есть бюджет.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 02 июня 2016 13:17
· Личное сообщение · #13

dabrys пишет:
Я так понимаю нужно сначала изучить С++?

Не помешало бы, но совсем не обязательно. Из Си надо всего усвоить как передаются аргументы в функции, описанные в MSDN - конвенции: __stdcall, __cdecl, __fastcall, типы: int, char, char*, wchar_t, wchar_t*, unsigned int... и немного асма. Знаете базовый английский - с асмом проблем не будет и без чтива доков по нему - мнемоника инструкций представляет собой либо сокращения действий, которые они производят, либо абрревиатуры и до их смысла можно догадаться по названиям/экспериментам/контексту примера... только по инструкциям jnz/jnz, jb/jbe/jae(jnb)/ja(jnbe), jl/jle/jg(jnle)/jge(jnl) и ещё по нескольким следует доки прочесть.

Дальше - коннекты на сервер происходят неминуемо через api-ф-цию connect()/WSAConnect(). Часто перед этим происходит dns-запрос, чтоб сопоставить ip-адрес доменному имени. Для http/https-серверов часто пользуются WinInet API - ловите функцию HttpSendRequest() тогда. Знаете домен - есть вероятность, что в одном из модулей Вы его найдёте. Если домена нет - то либо зашифрован, либо ip-адрес передаётся без резолвинга имени домена перед коннектом, и можно попробовать найти 32-битный ip-адрес в одном из модулей. Чаще всего для удобства оставляют его в памяти в биг-ендиан кодировке, но так как байты ip-адреса нужно для функции connect() переворачивать, то может быть и сразу в литтл-ендиан.... И т.д. Нет ничего нерешимого здесь. И виртуальные машины имеют свои закономерности... но для их самостоятельного боевого изучения без хорошего знания асма не обойтись.

Не так страшен лев, как его рисуют! Но если это всё для Вас сложно, то да - в поиск специалистов.

-----
IZ.RU


| Сообщение посчитали полезным: dabrys

Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 02 июня 2016 22:49
· Личное сообщение · #14

Я так понял начать следует с погружения в Win32 API. Однако вычитал, что Win32 API уже устарело и на смену пришел .NET Framework. Так это или нет, а то может зря потрачу время?



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 02 июня 2016 22:54 · Поправил: dosprog
· Личное сообщение · #15

dabrys пишет:
Однако вычитал, что Win32 API уже устарело и на смену пришел .NET Framework.


Это не WIN32 API устарел, а микрософт вижуал басик. Ему на смену .NET и пришёл.





Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2016 00:24
· Личное сообщение · #16

dosprog пишет:
Это не WIN32 API устарел, а микрософт вижуал басик. Ему на смену .NET и пришёл.

Так осваивать .NET тогда а не API?




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 03 июня 2016 00:34 · Поправил: plutos
· Личное сообщение · #17

dabrys пишет:
Так осваивать .NET тогда а не API?


Да нет никаких жестких правил.
Все зависит от того, что человек собирается делать, для чего ему нужны знания. Из этого и нужно исходить.
А вообще-то что за подход: не дай Бог, выучу лишнее!

-----
Give me a HANDLE and I will move the Earth.




Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2016 01:53
· Личное сообщение · #18

plutos пишет:
Все зависит от того, что человек собирается делать, для чего ему нужны знания. Из этого и нужно исходить.
А вообще-то что за подход: не дай Бог, выучу лишнее!

Ну для чего думаю понятно из этой темы.
Ну а учить "лишнее" как то не разумно, да и время на "лишнее" жалко.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 04 июня 2016 16:07
· Личное сообщение · #19

dabrys пишет:
Однако вычитал, что Win32 API уже устарело


Не так поняли! Win32 API никогда не устареет!

Добавлено спустя 0 минут
.NET как раз вовсю им пользуется

-----
IZ.RU


| Сообщение посчитали полезным: dabrys

Ранг: 0.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 июня 2016 16:47 · Поправил: dabrys
· Личное сообщение · #20

Всем огромное спасибо, понял в какую сторону двигаться, до новых встреч)



Ранг: 30.2 (посетитель), 18thx
Активность: 0.030
Статус: Участник

Создано: 20 июня 2016 14:32
· Личное сообщение · #21

DenCoder пишет:
Не так поняли! Win32 API никогда не устареет!

Win16 устарело
Win32s устарело
Win32 хоронить рано но все к тому идет
Win64 ну как бэ "светлое будущее"


 eXeL@B —› Вопросы новичков —› Дешифрация трафика
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати