Работа с сокетами в манинном коде

Тема в разделе "WASM.WIN32", создана пользователем 777user777, 7 дек 2010.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Смотри Metasploit


    Там есть shell коды под win32 в том числе и для работы с сокетами.
     
  2. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Код (Text):
    1. ;      Title:  Win32 Socket Initialization
    2. ;  Platforms:  Windows NT 4.0, Windows 2000, Windows XP, Windows 2003
    3. ;     Author:  hdm[at]metasploit.com
    4.  
    5.  
    6. [BITS 32]
    7.  
    8. %include "win32_stage_api.asm"
    9.  
    10. sub esp, 0x100
    11. push edi    ; [ebp +  8] = LoadLibraryA
    12. push esi    ; [ebp +  4] = LGetProcAddress
    13. push ebx    ; [ebp +  0] = kernel32.dll base
    14.            
    15. mov ebp, esp
    16. call LLoadWinsock
    17.  
    18. %define FN_RECV     [ebp + 24]
    19. %define FN_SEND     [ebp + 28]
    20. %define FN_ACCEPT   [ebp + 32]
    21. %define FN_BIND     [ebp + 36]
    22. %define FN_LISTEN   [ebp + 40]
    23. %define FN_WSASOCK  [ebp + 44]
    24. %define FN_WSASTART [ebp + 48]
    25.  
    26. LWSDataSegment:
    27. ;========================
    28. dd 0x190      ; used by wsastartup
    29. dd 0xe71819b6 ; recv        [ebp + 24]
    30. dd 0xe97019a4 ; send        [ebp + 28]
    31. dd 0x498649e5 ; accept      [ebp + 32]
    32. dd 0xc7701aa4 ; bind        [ebp + 36]
    33. dd 0xe92eada4 ; listen      [ebp + 40]
    34. dd 0xadf509d9 ; WSASocketA  [ebp + 44]
    35. dd 0x3bfcedcb ; WSAStartup  [ebp + 48]
    36. db "WS2_32", 0x00
    37. ;========================
    38.  
    39. LLoadWinsock:
    40.     pop ebx             ; save address to data in ebx
    41.     lea ecx, [ebx + 32] ; find address of "WS2_32.DLL"
    42.     push ecx            ; push address of "WS2_32.DLL"
    43.     call edi            ; call LoadLibraryA("WS2_32.DLL")    
    44.     mov edi, ebx        ; store base of data section in edi
    45.     mov ebx, eax        ; store base of winsock in ebx
    46.     lea esi, [ebp + 20] ; store base of function table
    47.     push byte 0x07      ; load five functions by hash
    48.     pop ecx             ; configure the counter
    49.  
    50. Looper:    
    51.     push ecx                    ; save the counter
    52.     push ebx                    ; dll handle
    53.     push dword [edi + ecx * 4]  ; function hash value
    54.     call [ebp + 4]              ; find the address
    55.     pop ecx                     ; restore the counter
    56.     mov [esi + ecx * 4], eax    ; stack segment to store addresses
    57.     loop Looper
    58.  
    59. LWSAStartup:                    ; WSAStartup (0x101, DATA)
    60.     sub esp, [edi]
    61.     push esp
    62.     push dword [edi]
    63.     call FN_WSASTART
    64.     xor eax, eax
    65.    
    66. LWSASocketA:                    ; WSASocketA (2,1,0,0,0,0)
    67.     push eax
    68.     push eax
    69.     push eax
    70.     push eax
    71.     inc eax
    72.     push eax
    73.     inc eax
    74.     push eax
    75.     call FN_WSASOCK
    76.     mov edi, eax
     
  3. skomarov

    skomarov New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    389
    777user777
    Молодец! Успехов, от всего сердца!
     
  4. 777user777

    777user777 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2010
    Сообщения:
    109
    я написал небольшую программу,она создаёт окно (для обработки сообщений) и сокет.
    поддерживает подключение
    но у неё небольшая проблема:после запуска (когда создаётся окно,вызывается функция RegisterClassA) она выкидывает сообщение:
    "Точка входа в процедуру isterClassA не найдена в библиотеке user32.dll".
    изза чего может такое получаться?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    из-за корявого импорта
     
  6. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    newbie
    Там написано "в манином". Просто 'н' сдвоилась.
     
  7. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    я знаю. просто шутка была :)