ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #561  
Старый 19.06.2009, 19:49
Аватар для oleandr
oleandr
Флудер
Регистрация: 27.04.2009
Сообщений: 4,294,967,295
Провел на форуме:
32025

Репутация: 2


По умолчанию

спасибо за помощь незнаю как такой дуб как я сдал на 4, вообщем экзамен комплитед )) про модификацию надо было вообщем рассказать про "lea" и регистры модификаторы, ну еще что то я не стал уточнять
 
Ответить с цитированием

  #562  
Старый 22.08.2009, 16:48
Аватар для e4key
e4key
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме:
71052

Репутация: 5
По умолчанию

Привет всем. Изучаю асм (компилятор fasm), буду иногда задавать здесь ламерские вопросы

Итак 1 из них:

Допустим есть ip. Нужно его обработать функцией inet_addr:

invoke inet_addr, ip_addr

Как теперь результат поместить в другую переменную?

mov [ip], eax

не получается - компилятор говорит, что размеры приемника и источника не совпадают. как я понял в таких случаях переменную ip нужно задавать так:

ip dd ?

правильно?
 
Ответить с цитированием

  #563  
Старый 22.08.2009, 17:16
Аватар для e4key
e4key
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме:
71052

Репутация: 5
По умолчанию

Вопрос 2:

Спустя некоторое время программа вываливается с ошибкой 11010 (нехватка ресурсов). Собственно программа в бесконечном цикле посылает icmp-пакеты ))

Код:
.sendicmp:
        invoke  IcmpSendEcho, [handle], [addr], 0, 0, 0, reply, 100, timeout
        cmp     eax, 0
        je      .error
        invoke  Sleep, sleep
        jmp     .sendicmp
константа sleep = 3000 (мс). может следует увеличить слип? до 10к? 15к? больше?

естественно в реальном проекте ошибка вываливаться не будет.

Еще кто работал с icmpsendecho: что не так? значение ReplySize я взял от "балды"

в msdn написано, что это должна быть сумма размеров структуры ICMP_ECHO_REPLY и поля RequestSize. Последний у меня равен нулю, а размер структуры - sizeof.ICMP_ECHO_REPLY. Или я не прав?

теперь еще 1 вопрос - как можно сделать авторестарт после завершения программы с ошибкой?

спасибо.

Последний раз редактировалось e4key; 22.08.2009 в 20:22..
 
Ответить с цитированием

  #564  
Старый 22.08.2009, 20:40
Аватар для e4key
e4key
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме:
71052

Репутация: 5
По умолчанию

Еще раз привет всем:

Код:
format PE GUI 4.0
entry main

include 'win32a.inc'

section '.data' data readable writeable
        ip      db '127.0.0.1', 0
        wdata   WSADATA
        saddr   sockaddr_in AF_INET, 80, ip
        sock    dd ?
        hello   db 'GET http://localhost/hello.php HTTP/1.0', 10, 13
                db 'Host: localhost', 0

section '.code' code readable executable
  main:
        invoke  WSAStartup, 0101h, wdata
        invoke  socket, AF_INET, SOCK_STREAM, 6
        mov     [sock], eax
        invoke  connect, [sock], saddr, sizeof.sockaddr_in
        invoke  send, [sock], hello, 57, 0
        invoke  closesocket, [sock]
        invoke  ExitProcess, 0

section '.idata' import data readable
        library kernel32, 'kernel32.dll',\
                user32, 'user32.dll',\
                wsock32, 'wsock32.dll'

        include 'api\kernel32.inc'
        include 'api\user32.inc'
        include 'api\wsock32.inc'
В hello.php находится код чего-то, что напоминает счетчик посещений (при каждом обращении к странице прибавляет к значению счетчика еденицу).

Но почему то указанный код не работает

Еще раз заранее спасибо всем тем, кто ответит.
 
Ответить с цитированием

  #565  
Старый 22.08.2009, 21:24
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

HTTP запросы должна заканчиваться 2-мя crlf
так что типа

hello db 'GET http://localhost/hello.php HTTP/1.0', 10, 13
db 'Host: localhost', 13,10,13,10,0
ну и соответственно перерасчитай длинну посылаемых данных в
invoke send, [sock], hello, 57, 0

лучше заюзай типа
invoke lstrlenA, hello
invoke send, [sock], hello, eax, 0
 
Ответить с цитированием

  #566  
Старый 22.08.2009, 21:28
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

может чтото ты чтото напутал? Но код
mov [ip], eax
ip dd ?
спокойно компилится в FASM
 
Ответить с цитированием

  #567  
Старый 22.08.2009, 21:33
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

насчет пинга вот код который я юзал -
Код:
 ; необходимые структуры
struct IP_OPTION_INFORMATION
  Ttl db 0
  Tos db 0
  Flags db 0
  OptionsSize db 0
  OptionsData dd 0
ends

struct ICMP_ECHO_REPLY
 Address dd 0
 Status dd 0
 RoundTripTime dd 0
 DataSize  dw 0
 Reserved  dw 0
 Data dd 0
 Options IP_OPTION_INFORMATION
 PingBuf db 32 dup (0)
ends

struct TInAddr
 b1 db 0
 b2 db 0
 b3 db 0
 b4 db 0
ends

Optionss IP_OPTION_INFORMATION
InAddr TInAddr
Reply ICMP_ECHO_REPLY
PingBuf db 32 dup (0)

proc Ping InetAddress,ttl  ; пингование передается адрес сервера и ТТЛ
 invoke IcmpCreateFile	;
 cmp eax,INVALID_HANDLE_VALUE  ; если не удалось создать "ICMP файл"
 je exitp
 mov [handle],eax  ;сохраним дискриптор
 invoke gethostbyname,[InetAddress]  ; попытка отпределяни IP адреса
 cmp eax,0  ; если не удалось
 je exitp  ; то
 mov eax,[eax+0ch]  ; заполение необходимой струкуры
 mov eax,[eax]
 mov cl,[eax]
 mov [InAddr.b1],cl
 mov cl,[eax+1]
 mov [InAddr.b2],cl
 mov cl,[eax+2]
 mov [InAddr.b3],cl
 mov cl,[eax+3]
 mov [InAddr.b4],cl

 mov eax,PingBuf
 mov [Reply.Data],eax
 mov [Reply.DataSize],32
 mov al,byte [ttl]
 mov [Optionss.Ttl],al
 mov eax,[InAddr]
 invoke IcmpSendEcho,[handle],eax,PingBuf,32,Optionss,Reply,92,3000  ; пинг
 cmp eax,0
 je exitp
 mov eax,1
 ret
exitp:
 xor eax,eax
 ret
endp
 
Ответить с цитированием

  #568  
Старый 22.08.2009, 22:57
Аватар для e4key
e4key
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме:
71052

Репутация: 5
По умолчанию

slesh, спасибо огромное за ответы

Цитата:
HTTP запросы должна заканчиваться 2-мя crlf
так что типа

hello db 'GET http://localhost/hello.php HTTP/1.0', 10, 13
db 'Host: localhost', 13,10,13,10,0
ну и соответственно перерасчитай длинну посылаемых данных в
invoke send, [sock], hello, 57, 0

лучше заюзай типа
invoke lstrlenA, hello
invoke send, [sock], hello, eax, 0
Так всеравно не вышло Кстати собственно через lstrlen и было, только не отсылал и посчитал и поставил конкретное значение

при запуске данная программа просто висит в процессах, никаких пакетов, ничего не отсылвается. может лучше сделать через wininet?

Цитата:
может чтото ты чтото напутал? Но код
mov [ip], eax
ip dd ?
спокойно компилится в FASM
действительно

насчет icmp - он и этот код отлично пингует, но вываливается через некоторое время с ошибкой.
 
Ответить с цитированием

  #569  
Старый 22.08.2009, 23:07
Аватар для e4key
e4key
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме:
71052

Репутация: 5
По умолчанию

а что в твоем коде должно содержаться в PingBuf? или это просто пустой буфер в 32 байта?
 
Ответить с цитированием

  #570  
Старый 22.08.2009, 23:27
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

PingBuf - это просто буфер для данных которые идут в нагрузку с пингом. В ответ должны приходить этиже данные для того чтобы проверить корректность работы.

насчет того что прога висит в процессах итд итп. то советую тебе поглядеть как ты реализовал заполнение addr для connect
погляди исходники моего спам бота - он в разделе избранное валяется вроде. написан полностью на FASM и там была функция для посылки HTTP запроса на сервак и корректное получение ответа.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы для новичков! (faq) PEPSICOLA С/С++, C#, Delphi, .NET, Asm 92 14.05.2010 17:59
Обзор программ для очистки жёсткого диска v1ru$ Soft - Windows 21 17.01.2010 21:07
ОС с нуля z01b С/С++, C#, Delphi, .NET, Asm 36 03.07.2008 15:30
Лучший софт для Linux _-Ramos-_ Soft - *nix 11 15.01.2008 12:08
Взлом Unix а silveran *nix 4 21.12.2005 22:46



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ