Текущий архив: 2007.07.01;
Скачать: CL | DM;
Вниз
Проблема с выводом траффика Найти похожие ветки
← →
kroner (2006-12-03 20:32) [0]Решил тут написать небольшой сниффер для локальной сетевого клиента. На форме два компонента Сlient:TClientSocket и Server:TServerSocket, после запуска программа подключается к удаленному серверу, после этого зупускается другая программа (траффик которой необходимо отобразить) и весь исходящий траффик перенаправляется на удаленный сервер, а весь входящий траффик с этого сервера перенаправляется на эту локальную программу. Короче говоря, моя прога как бы посредине. Но траффик почему-то не отображается :( . Вот код -
var Com: AnsiString;
...
procedure TForm1.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Com:= Socket.ReceiveText;
MResult.Lines.Add(Com);
Client.Socket.SendText(Com);
end;
procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Com:= Socket.ReceiveText;
MResult.Lines.Add(Com);
Server.Socket.Connections[0].SendText(Com);
end;
При запуске выводит ошибку - list index out of bounds (0).
А в memo ничего не выводится, точнее иногда какие-то символы отображаютя (от одного до десяти), но там траффик явно больше. Почему такая фигня? При передачи используется асинхронный режим.
← →
Сергей М. © (2006-12-04 08:19) [1]
> Почему такая фигня?
Потому что ошибка в программе. Она и приводит к "list index out of bounds (0)"
← →
Сергей М. © (2006-12-04 08:57) [2]
> траффик почему-то не отображается
> в memo ничего не выводится, точнее иногда какие-то символы
> отображаютя
Ты уверен, что протокол инф.обмена именно текстовый и никак не иначе ?
← →
Anatoly Podgoretsky © (2006-12-04 08:58) [3]> Сергей М. (04.12.2006 08:19:01) [1]
Не просто ошибка, а list совсем пустой
← →
Сергей М. © (2006-12-04 09:06) [4]
> Anatoly Podgoretsky © (04.12.06 08:58) [3]
> list совсем пустой
Причем оч похоже на то, что этот list - Connections[]
← →
Anatoly Podgoretsky © (2006-12-04 12:22) [5]Так других не наблюдается
← →
kroner (2006-12-04 15:26) [6]
> Сергей М. © (04.12.06 09:06) [4]
> Причем оч похоже на то, что этот list - Connections[]
ну да с этим я уже разобрался
> Ты уверен, что протокол инф.обмена именно текстовый и никак
> не иначе ?
программа же работает, и данные передаются на удаленный сервер и принимаются. Главное что прикольно у строки длина есть, а символов нет. Я уже правда в шестнацетиричный вид перевел, тогда все коды символов видно.
← →
kroner (2006-12-04 15:28) [7]
> Ты уверен, что протокол инф.обмена именно текстовый и никак
> не иначе ?
А вообще как можно определить какой протокол? на прикладном уровне я имею ввиду
← →
kroner (2006-12-04 15:33) [8]Еще вот информация к размышлению, клиентская прога написанна на Delphi 6, с помощью DeDe выяснил (отличная программа кстати), но почему-то не нашел там ни одного сетевого компонента.
← →
Сергей М. © (2006-12-04 15:35) [9]
> Я уже правда в шестнацетиричный вид перевел, тогда все коды
> символов видно.
Значит точно не "чисто текстовый".
> как можно определить какой протокол?
По присутствию в сообщениях заведомо непечатных символов.
← →
Сергей М. © (2006-12-04 15:36) [10]
> не нашел там ни одного сетевого компонента
А почему они там обязаны присутствовать ?
← →
Сергей М. © (2006-12-04 15:38) [11]
> kroner
Взлом - штука серьезная, требует определенных знаний и навыков.
← →
kroner (2006-12-04 15:55) [12]
> Сергей М. © (04.12.06 15:35) [9]
>
> > Я уже правда в шестнацетиричный вид перевел, тогда все
> коды
> > символов видно.
> Значит точно не "чисто текстовый".
но текстовые данные там иногда проскакивают, кстати что-то похожее на xml кажется
> По присутствию в сообщениях заведомо непечатных символов.
это наверно из-за шифрования, PeID обнаружил 24 шифр.сигнатуры - ADLER32 какой-то, Base64, Blowfish, CRC16, CRC32, HAVAL, MD5, Nimbus, Ripemd, SHA1, SHEFRU, SQUARE, TEAN, TIGER, ZLIB. Короче вот подробнее -
ADLER32 :: 0003117B :: 00431D7B
The reference is above.
BASE64 table :: 0024BBB0 :: 0064C7B0
Referenced at 00B617CC
BASE64 table :: 005FE736 :: 009FF336
Referenced at 009FF331
BASE64 table :: 0075B494 :: 00B5C494
Referenced at 004377CD
BASE64 table :: 00789B25 :: 00B8AB25
Referenced at 00A167B1
BASE64 table :: 0078A580 :: 00B8B580
Referenced at 00B1CAEF
Referenced at 00B1CB0D
Referenced at 00B1CB38
Referenced at 00B1CB58
BLOWFISH [sbox] :: 00780FCC :: 00B81FCC
Referenced at 009CB780
CCITT-CRC16 [word] :: 0060D480 :: 00A0E080
Referenced at 00A0E064
CRC16 (rev) [word] :: 005FF0BF :: 009FFCBF
Referenced at 009FFCA7
CRC32 :: 005FF2E9 :: 009FFEE9
Referenced at 009FFECF
CRC32 :: 0078A180 :: 00B8B180
Referenced at 00B1C9B6
HAVAL (5 pass) [char] :: 007822DC :: 00B832DC
Referenced at 00A0B425
Referenced at 00A0B6B5
Referenced at 00A0B9F1
MD5 :: 00035F34 :: 00436B34
The reference is above.
MD5 :: 0028BA94 :: 0068C694
The reference is above.
MD5 :: 006018FF :: 00A024FF
The reference is above.
PI fraction (NIMBUS / BLOWFISH) :: 00780F84 :: 00B81F84
Referenced at 009CB76E
RIPEMD-256 [Init] :: 00606B79 :: 00A07779
The reference is above.
RIPEMD-320 [Init] :: 00601764 :: 00A02364
The reference is above.
SHA1 [Compress] :: 0060A279 :: 00A0AE79
The reference is above.
SNEFRU :: 0078235C :: 00B8335C
Referenced at 00A0C4AE
SQUARE [TE] :: 0078885C :: 00B8985C
Referenced at 00A0DB49
Referenced at 00A0DB91
Referenced at 00A0DBE2
Referenced at 00A0DC2B
TEAN [32 rounds] :: 0003695A :: 0043755A
The reference is above.
TIGER :: 0078635C :: 00B8735C
Referenced at 00A0C6C0
ZLIB deflate [word] :: 0075A8FC :: 00B5B8FC
Referenced at 00434920
> А почему они там обязаны присутствовать ?
а как иначе?
> Взлом - штука серьезная, требует определенных знаний и навыков.
ну это не взлом, скорее исследование. А знаний и навыков, да не хватает. А что делать? Кому щас легко.
← →
kroner (2006-12-04 15:58) [13]
> > А почему они там обязаны присутствовать ?
или ты имеешь ввиду что он напрямую через api работает?
← →
Сергей М. © (2006-12-04 16:02) [14]
> или ты имеешь ввиду что он напрямую через api работает?
Может и напрямую через API... Может и компоненты в ран-тайм создаются ...
Все что угодно может быть)
← →
kroner (2006-12-04 16:26) [15]
> Сергей М. © (04.12.06 16:02) [14]
скорей в ран-тайме, нашел в peid"е еще плагин для вывода списока модулей. Так вот там есть юнит ScktComp т.е. как раз наши любимые TClientSocket и TServerSocket )) и еще XMLParser т.е. явно используется для разбора сетев. передач. Проблема в том что это еще и шифруется.
← →
Сергей М. © (2006-12-04 16:31) [16]
> Проблема в том что это еще и шифруется
Вот это как раз не не проблема, а проблемища)
Все остальные - проблемки и проблемульки)
Если там использован новейший Рейндолл, твое дело швах - даже не надейся на дешифрацию
← →
kroner (2006-12-04 16:32) [17]
> Сергей М. © (04.12.06 16:31) [16]
а что такое Рейндолл?
← →
Сергей М. © (2006-12-04 16:38) [18]http://www.google.ru/search?hl=ru&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=uLY&q=Rijndael&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru
← →
kroner (2006-12-04 16:38) [19]
> Если там использован новейший Рейндолл, твое дело швах -
> даже не надейся на дешифрацию
по сигнатурам которые были выше такого там нет
← →
Сергей М. © (2006-12-04 16:44) [20]
> по сигнатурам которые были выше такого там нет
Умный "шифровальщик" никогда не оставит в своем коде "следов" использованных им криптоалгоритмов .. тех самых "сигнатур" то бишь
← →
Сергей М. © (2006-12-04 16:45) [21]Впрчем к "Сетям" это не имеет непосредственного отношения
← →
kroner (2006-12-04 17:21) [22]
> Сергей М. © (04.12.06 16:44) [20]
> Умный "шифровальщик" никогда не оставит в своем коде "следов"
> использованных им криптоалгоритмов .. тех самых "сигнатур"
> то бишь
это вряд ли, у всего постоянного есть сигнатура (а в данном случае это так поскольку экзешник не изменяется) и у вируса тоже. Если бы человек очень сильно беспокоился о безопасности, то и защита была бы многоуровневой, не только на уровне сети, но и самого экзешника, и не удалось бы определить названия модулей поскольку все названия были бы заменены на ничего не значащие (имхо), это как минимум. Тут же такого не наблюдается. Теоретически можно взломать любую клиентскую программу, поскольку алгоритм шифрования/дешифрования есть в ней самой, ничего с этим не поделаешь.
← →
Anatoly Podgoretsky © (2006-12-04 21:00) [23]> kroner (04.12.2006 17:21:22) [22]
Что толку от знания ассиметричного алгоритма шифрования?
← →
Сергей М. © (2006-12-05 12:48) [24]
> у всего постоянного есть сигнатура
"Постоянное" - это когда разработчик использует распространенные широкоизвестные библ-ки тех или иных криптоалгоритмов.
А если разработчик реализует криптоалгоритм своими силами (да еще и на ассемблере, да еще и скрывая алгоритм самомодифицирующимся кодом), то "постоянным" это никак не назвать. Даже эвристический анализ при этом бессилен.
> Теоретически можно взломать любую клиентскую программу
Это только теоретически.
← →
kroner (2006-12-05 22:21) [25]
> Anatoly Podgoretsky © (04.12.06 21:00) [23]
> > kroner (04.12.2006 17:21:22) [22]
> Что толку от знания ассиметричного алгоритма шифрования?
дело не столько в используемых алгоритмах, сколько в том, что сама программа рано или поздно зашифр./расшифровывает данные, и все необходимые ключи для этого где-то есть в ней самой или в библиотеках, поэтому любая "защита" и ломается.
← →
Anatoly Podgoretsky © (2006-12-06 00:46) [26]> kroner (05.12.2006 22:21:25) [25]
> зашифр./расшифровывает данные
Не факт, зашифровывать может одна программа, а расшифровывать другая программа, где то там далеко и тебе не доступная.
← →
Сергей М. © (2006-12-06 08:33) [27]
> kroner (05.12.06 22:21) [25]
> сама программа рано или поздно зашифр./расшифровывает данные,
> и все необходимые ключи для этого где-то есть в ней самой
> или в библиотеках
Ошибаешься. Существуют и иные реализации.
Наример, образ модуля клиентской программы содержит данные, зашифрованные еще на этапе сборки модуля его производителем. Клиентская программа отправляет эти данные серверу и получает от него, к примеру, фрагменты исполняемого кода, который тут же исполняется клиентом.
Страницы: 1 вся ветка
Текущий архив: 2007.07.01;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.022 c