Определение MAC-адреса

Тема в разделе "WASM.WIN32", создана пользователем vasyapupkin, 19 фев 2012.

  1. vasyapupkin

    vasyapupkin New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2012
    Сообщения:
    5
    Может кому пригодится.

    Код (Text):
    1. .586
    2. .model flat, stdcall
    3. option casemap:none
    4.  
    5. include     masm32\include\windows.inc
    6.  
    7. include     masm32\include\user32.inc
    8. includelib  7600.16385.1\lib\win7\i386\user32.lib
    9.  
    10. include     masm32\include\kernel32.inc
    11. includelib  7600.16385.1\lib\win7\i386\kernel32.lib
    12.  
    13. include     masm32\include\iphlpapi.inc
    14. includelib  7600.16385.1\lib\win7\i386\iphlpapi.lib
    15.  
    16. .data
    17. IP_ADDRESS_STRING struct
    18.     String      db 16 dup (?)
    19. IP_ADDRESS_STRING ends
    20.  
    21. IP_ADDR_STRING struct
    22.     Next        dd ?
    23.     IpAddress       db 16 dup (?)
    24.     IpMask      db 16 dup (?)
    25.     Context     dd ?    
    26. IP_ADDR_STRING ends
    27.  
    28.  
    29. IP_ADAPTER_INFO struct
    30.     Next        dd ?
    31.     ComboIndex      dd ?
    32.     AdapterName     db 260 dup (?)
    33.     Description     db 132 dup (?)
    34.     AddressLength   dd ?
    35.     Address     db 8 dup (?)
    36.     Index       dd ?
    37.     tType       dd ?
    38.     DhcpEnabled     dd ?
    39.     CurrentIpAddress    dd ?
    40.     IpAddressList   IP_ADDR_STRING <>
    41.     GatewayList     IP_ADDR_STRING <>
    42.     DhcpServer      IP_ADDR_STRING <>
    43.     HaveWins        dd ?
    44.     PrimaryWinsServer   IP_ADDR_STRING <>
    45.     SecondaryWinsServer IP_ADDR_STRING <>
    46.     LeaseObtained   dd ?
    47.     LeaseExpires    dd ?
    48. IP_ADAPTER_INFO ends
    49.  
    50. pInfo       IP_ADAPTER_INFO <>
    51. len     dd  0
    52.  
    53. hConsole    dd ?
    54. sPattern    db  '%02X:%02X:%02X:%02X:%02X:%02X',0
    55. sBuffer     db  18 dup (0)
    56.  
    57. .code
    58. start:
    59.  
    60.     invoke  GetAdaptersInfo,addr pInfo,addr len
    61.     invoke  GlobalAlloc,GMEM_FIXED,len
    62.     push    eax
    63.     invoke  GetAdaptersInfo,eax,addr len
    64.     pop     esi
    65.     push    esi
    66.     assume  esi:ptr IP_ADAPTER_INFO
    67.     movzx   eax,byte ptr [esi].Address[5]
    68.     push    eax
    69.     movzx   eax,byte ptr [esi].Address[4]
    70.     push    eax
    71.     movzx   eax,byte ptr [esi].Address[3]
    72.     push    eax
    73.     movzx   eax,byte ptr [esi].Address[2]
    74.     push    eax
    75.     movzx   eax,byte ptr [esi].Address[1]
    76.     push    eax
    77.     movzx   eax,byte ptr [esi].Address[0]
    78.     push    eax
    79.     push    offset sPattern
    80.     push    offset sBuffer
    81.     call    wsprintf
    82.     pop     eax
    83.     invoke  GlobalFree,eax
    84.  
    85.     invoke  GetStdHandle,STD_OUTPUT_HANDLE
    86.     mov     hConsole,eax
    87.     invoke  WriteConsole,hConsole,addr sBuffer,18d,NULL,NULL
    88.     invoke  ExitProcess,NULL
    89. ret
    90.  
    91. end start
     
  2. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    vasyapupkin
    Спасибо!
    А как сменить локально?
     
  3. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\ гдето тут

    пс
    там будут поля формата %.4d - в одном из них твоя карточка, параметр NetworkAddress.
    для вступления в силу адаптер нужно ресетнуть