Пакет собрал, вроди checksum'ы корректно считываются, но пакет отправляет с "Sequence number" значением ноль, хотя я задал значение 34 в 32 битном виде вот так: Код (Text): mov eax,34 bswap eax shr eax,32 mov (tcphdr ptr [esi]).th_seq,eax правильно-же? для наглядности - полный исходник в аттаче. Спасибо за внимание!
если bswap сделал, зачем shr eax,32 делать? в еах 32 разряда - сдвигая все 32 направо ты его обнуляеь просто
bswap - эффект зеpкала относительно содеpжимого pегистpа Код (Text): mov eax, 12345678h ;5 байтов bswap eax ;2 байта ; тепеpь eax = 78563412h SHR Логический сдвиг вправо Где обнуление увидел? Был бы благодарен еслиб по делу писали....
ECk На каком процессоре shr eax,32 обнуляет? У меня на тулике eax не меняется, afaik в этой команде процессор смотрит только на правые пять бит, а там нули, т.е. ничего не двигать. Вот shr eax,31 - обнулит. Flasher Где обнуление увидел? В твоем первом посте этой темы между bswap и mov стоит shr - зачем?.
Flasher Мой вопрос был _зачем_ shr? по rfc В rfc не может быть упоминания а команде сдига. Давай ссылку на rfc. пакет отправляет с "Sequence number" значением ноль Где/как ты это определил? + где текст подпрограммы _chksum? + на всякий случай, какая вкрсия winpcap?
И в правду, что-то нету такого Поглядел через сниффер - Ethereal Версия 2 с чем-то.., уже давно не инсталировал.., 3 dll и sys перекидываю в нужные папки и фсё. (в новых версиях нужно ещё и регить в реестре чтоб заработал драйвер поэтому предпочитаю юзать старую..)