Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=8019369&src=arc&showlite=l
Дата изменения: Unknown
Дата индексирования: Tue Feb 26 22:09:12 2013
Кодировка: Windows-1251
Перехват траффика с подменой содержимого - Public forum of MSU united student networks
Technical >> Development (Archive)

Страницы: 1 | (2)
psa : Re: Перехват траффика с подменой содержимого  [re:Klevzoff]   30.10.2008 12:00    | Reply | Edit |
5
Тулзы, тулзы... Перехвати подключение и меняй сколько хочешь...
code:
#!/usr/bin/env python # vim: sts=4 sw=4 et import select, time from socket import * si = socket(AF_INET, SOCK_STREAM, 0) so = socket(AF_INET, SOCK_STREAM, 0) si.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) si.bind(('', 12345)) si.listen(10) s, a = si.accept() print a so.connect(('forumbgz.ru', 80)) while 1: p = select.poll() p.register(s, select.POLLIN) p.register(so, select.POLLIN) print '.' for r in p.poll(100): print r rs, re = r if rs == s.fileno(): print 'sending to server' if not so.send(s.recv(4096)): raise RuntimeError("Empty") elif rs == so.fileno(): print 'sending to client' if not s.send(so.recv(4096)): raise RuntimeError("Empty")


Klevzoff   [re:psa]   30.10.2008 18:31    | Reply | Edit |
0
Я правильно понял, что вместо 12345 нужно поставить порт, на который коннектится прога? если да, то к сожалению, под WinXP этот скрипт не перехватывает подключения, он зависает на вызове accept(), а приложение меж тем спокойно коннектится к серверу :(

psa   [re:Klevzoff]   30.10.2008 18:37    | Reply | Edit |
1
Неправильно понял
12345 это порт на который надо направлять прогу
вместо forumbgz.ru и 80 - адрес на котором висит твой сервер

Klevzoff   [re:psa]   01.11.2008 03:09    | Reply | Edit |
0
тогда еще один нубский вопрос: а как перенаправить траффик сторонней проги на нужный мне адрес? (напоминаю: под виндами). Адрес сервера зашит где-то внутри исполняемого файла, пытался дизассемблить и найти/заменить его, но не вышло пока(

p.s. за скрипт спасибо, кстати оказалось что poll() под виндовс нету, пришлось сделать с select.select() :)

Ilyatk   [re:Klevzoff]   01.11.2008 09:55    | Reply | Edit |
2
если екзешник не запакован, то тебе прямой путь на таблицу импорта :) я лично так делал чтобы не гемороиться с поиском вызова ws32.connect просто подгружал к екзешнику свою дллку с майконнект(такой же прототип просто как и у connect, перенаправляет коннект + передает реальные аргументы проге перехватчику) и менял адрес в таблице импорта на адрес функции из дллки.

Yorik   [re:Klevzoff]   01.11.2008 11:04    | Reply | Edit |
5
В ответ на:

Адрес сервера


а он точно не именем записан? мож, просто в хосты прописать? :)

Klevzoff   [re:Yorik]   01.11.2008 22:12    | Reply | Edit |
3
Я все-таки сделал это! Потратил полдня на то, чтобы разобраться, как редактировать таблицу импорта, и почему виндовс сокеты коннектят меня не на тот порт (забыл про htons()), но все заработало)) спасибо всем отписавшимся в теме за советы :)

Maiverik   [re:Klevzoff]   02.11.2008 21:40    | Reply | Edit |
1
статейку штоль теперь накатай по такому случаю :)

halyavin   [re:Maiverik]   03.11.2008 14:52    | Reply | Edit |
1
Мне всегда казалось, что на wasm.ru таких статей навалом.

Top