Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить пакеты стороннего приложения 
:(
    Опции темы
TGrey
Дата 18.5.2010, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



Здравствуйте, решил попробовать написать примочку к QIP. Чисто для себя. Т.к. использую не Инфинум, то нет у меня СДК и хочу попробовать решить, что-то так.
В общем нужно знать, когда приходит пакет в программу. Ну и наверно желательно его содержимое.
Прочитал в Гугле на эту тему, там везде речь о сниффере, при чем он какой-то странный, вроде выдает только ОТ КОГО - КОМУ.
Еще прочитал, что можно внедрить библиотеку на перехват функций сокетов... Сейчас дальше поищу, но хотел бы услышать мнение, возможно, уже имеющего подобного рода дела человека.
На чем мне остановится и чем продолжать. Возможно есть статьи на подобные темы.
Спасибо.
PM MAIL   Вверх
Dem_max
Дата 18.5.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



ну собственно правильно понял, геморрой и еще раз геморрой.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
GoldFinch
Дата 18.5.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



цеплять к приложению свою длл, ей хукать сетевые функции.

если трафик не зашифрован - хукать send\recv.
т.к. хуки прятать не надо - подойдет хук указателя в таблице импорта, если прога не запакована, или сплайсинг самих функций если прога запакована.

если трафик зашифрован - дизассемблировать и искать место где пакеты будут уже расшифрованы.

Добавлено через 3 минуты и 24 секунды
использовать решения которые перехватывают весь трафик в системе - не целесообразно.

длл проще всего цеплять либо патчем проги, добавляя ее в импорты проги,
либо писать лоадер и инжектить длл при запуске проги. инжект могут палить плохо сделанные антивирусы. (хорошие не будут)
PM MAIL ICQ   Вверх
TGrey
Дата 18.5.2010, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



Да я вот сам уже нашел статьи по инжекту, читаю. Ну я думаю QIP не шифрует пакеты smile 
Ладно, почитаю, а там видно будет, что получится. Если что отпишуся с последующими вопросами.
PM MAIL   Вверх
jonie
Дата 19.5.2010, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



возможно подойдет "прокси" вариант, т.е. програмка пусть через себя пробрасывает  соединение , попутно перехватывая траф...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
azesmcar
Дата 19.5.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



По поводу сниффера посмотри библитеку pcap.

Это сообщение отредактировал(а) azesmcar - 19.5.2010, 14:19
PM   Вверх
TGrey
Дата 22.5.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



Я вот просмотрел таблицу импорта и там нет импорта функций сокетов, что делать в таком случае? Я так понимаю, что либа загружается при старте программы?
PM MAIL   Вверх
GoldFinch
Дата 22.5.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



TGrey, используйте отладчик, он покажет все что надо знать о проге на данном этапе
PM MAIL ICQ   Вверх
TGrey
Дата 22.5.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



В том то и дело, что я не силен в работе с отладчиками( Какой нужен, на что смотреть, что делать и т.п.


---------------
В общем прогнал я программу через ИДА Про, нашел там упоминания про функции сокетов, но не смог разобраться, где оно там вызывается.
Ну это, я так понимаю и не столь важно?
Почитал статью на РСДН, про перехват АПИ функций и там дан пример
Код

void InterceptFunctions(void)
{
  DWORD op;
  //сначала получим абсолютный адрес функции для перехвата
  adr_MessageBoxA = (DWORD)GetProcAddress(GetModuleHandle("user32.dll"),
                    "MessageBoxA");
  if(adr_MessageBoxA == 0)
  {
    MessageBox(NULL, "Can`t get adr_MessageBoxA, "Error!", 0);
    return;
  }

  // Зададим машинный код инструкции перехода, который затем впишем 
  // в начало полученного адреса:
  jump.instr_push = 0x68;
  jump.arg = (DWORD)&Intercept_MessageBoxA;
  jump.instr_ret = 0xC3;

  //Прочитаем и сохраним первые оригинальные 6 байт стандартной API функции
  ReadProcessMemory(GetCurrentProcess(),(void*) adr_MessageBoxA, 
                    (void*)&old, 6, &written);

//Запишем команду перехода на нашу функцию поверх этих 6-ти байт
WriteProcessMemory(GetCurrentProcess(), (void*)adr_MessageBoxA, 
     (void*)&jump, sizeof(jmp_far), &written);
}

У меня возник вопрос, как так получается, что адрес функции мы берем в ДЛЛ user32.dll, а потом по тому же самому адресу читаем из текущего процесса?
А так же видно, что в структуру заносятся ОПкоды инструкций, как мне их получить?

Это сообщение отредактировал(а) TGrey - 22.5.2010, 19:28
PM MAIL   Вверх
xvr
Дата 24.5.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Возьми Detours - либа от MS для перехвата 'Win32 and application APIs'

PM MAIL   Вверх
GoldFinch
Дата 24.5.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



TGrey, выкиньте эту статью, там написан бред.
ReadProcessMemory(GetCurrentProcess() это идиотизм.

ОПкоды инструкций вам получать не надо, они там уже написаны, 68 для push и C3 для ret
PM MAIL ICQ   Вверх
TGrey
Дата 24.5.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



За Detour сейчас почитаю. Спасибо.

Так, а какую тогда статью мне читать?) 

За ОПкоды я в общем, если мне, к примеру, надо будет получить другой ОПкод.
PM MAIL   Вверх
GoldFinch
Дата 24.5.2010, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 15
Всего: 26



TGrey, хороших статей много на wasm'е
а вообще сначала изучите матчасть, а потом пишите код
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.