Привет всем! Мог бы мне кто-нибудь помочь разобраться в проблеме: я хочу послать TCP-пакет с флагом SYN на определенный IP с поддельным обратным адресом и портом. Уже догадываетесь для чего? Ну вобщем посылаю функцией sendto составленный IP+TCP заголовок и в сниффере я вижу, что IP-заголовок создался какой-то левый, а в конце этого IP-пакета расположен мой IP+TCP заголовк %) И я не могу понять в чем собссно дело? %) В аттаче мой проект в RadAsm'е, компилятор - masm. Может кто-нибудь поможет?? _480817658__raw.rar
А разве в винде уже можно работать с сырыми сокетами? Вроде как они это объявили, но на практике не работает, так как не устанавливается флаг отвечающий за создание своих заголовков.
Booster Ну, это только на XP SP2 нельзя... и на каких-то старых машинах тоже нельзя было, хотя, раз МС решила угробить сырые сокеты, то и нам пора о них забыть, IMHO. MaDF XP SP2?
У меня XP SP2 и все прекрасно работает. Вот тот сорец о котором я говорил, но он правда написан очень хреново, но тут главное принцип. 1378198694__sample.rar
Quantum: да, уменя XP SP2... в NT ДОЛЖНЫ быть сырые сокеты. Я же делал как-то пинг на сырых сокетах! и все пахало.. Ms Rem спасибо конечно, но на паскале нинада Мне бы на асме ченить Я с++ знаю, и даже есь сорцы но они под freebsd и linux... и охота самому понять-то
Нет, готового можно и не надо %) Но на асме обязательно, т.к. большая часть проЭкта написана на нем... мне бы понять в чем трабла?
MaDF Пинг (ICMP) у меня на XP SP2 тоже работает. Кажется, система проверяет валидность пакета и, если адрес левый, то сразу дропает его. Ещё она медленней обрабатывает сырые запросы, чем стандартные TCP/UDP. Всё это я где-то читал (возможно, что в этом форуме) и на практике не так давно убедился, что это действительно так.
Что, неужели никто не способен сказать мне в чем ступор? Quantum, что значит дропает если левый адрес? Система ведь не знает работает IP или нет. У меня есть рабочий пример на VC++ и там все прекрасно работает (спуфинг IP-адресов) %|
Только что нарыл, что нужно выполнять это: Код (Text): mov dwTmp, 1 invoke setsockopt, s, IPPROTO_IP, IP_HDRINCL, offset dwTmp, 4 и все равно не пашет... (и хз IP_HDRINCL = 2 или 3)
MaDF Она знает свой адрес. Если он работает на тестовой машине, то что мешает позаимствовать код из данного примера?