error: extra characters on line

Тема в разделе "WASM.BEGINNERS", создана пользователем galenkane, 22 сен 2024.

  1. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    Код (ASM):
    1. ; hook_lib.asm
    2. format MS COFF
    3. include 'C:/fasm/INCLUDE/win32ax.inc'
    4.  
    5. extrn VirtualProtect
    6.  
    7. public _HookInstall
    8. public _HookRemoveAll
    9.  
    10. section '.data' data readable writeable
    11.  
    12.     my_struct       rb 32     ; Структура для одного перехвата
    13.     hook_table      rd 16     ; Таблица с перехваченными функциями
    14.     hook_table_c    dd 0      ; Счетчик перехваченных функций
    15.  
    16. section '.code' code readable executable
    17.  
    18.     _salc = 0D6h    ; sbb al,al
    19.  
    20.     macro _aam num  ; ah=al/num;al=al mod num
    21.     {
    22.         db 0D4h, num
    23.     }
    24.  
    25.     macro _aad num  ; al=ah*num+al;ah=0
    26.     {
    27.         db 0D5h, num
    28.     }
    29.  
    30. VirXasm32:
    31.     pushad
    32.     push 000001510h
    33.     push 0100101FFh
    34.     push 0FFFFFF55h
    35.     push 0FFFFFFF8h
    36.     push 0F8FF7FA0h
    37.     push 00F0EC40Dh
    38.     push 007551004h
    39.     push 001D005FFh
    40.     push 0550D5D55h
    41.     push 0555F0F88h
    42.     push 0F3F3FFFFh
    43.     push 00A0C1154h
    44.     mov edx, esi
    45.     mov esi, esp
    46.     push 11001b
    47.     push 10110000101011000000101110000000b
    48.     push 10111111101100011111001100111110b
    49.     push 00000000000100011110101001011000b
    50.     mov ebx, esp
    51.     sub esp, 110
    52.     mov edi, esp
    53.     cld
    54.     push 100
    55.     pop ecx
    56. .xa_nxtIndx:
    57.     bt [ebx], ecx
    58.     db _salc
    59.     jnc .xa_is0
    60.     lodsb
    61. .xa_is0:
    62.     stosb
    63.     loop .xa_nxtIndx
    64.     mov esi, edx
    65.     push 2
    66.     pop ebx
    67.     mov edx, ebx
    68. .xa_NxtByte:
    69.     lodsb
    70.     push eax
    71.     push eax
    72.     cmp al, 66h
    73.     cmove ebx, ecx
    74.     cmp al, 67h
    75.     cmove edx, ecx
    76.     cmp al, 0EAh
    77.     je .xa_jmp
    78.     cmp al, 09Ah
    79.     jne .xa_nocall
    80. .xa_cll:
    81.     inc esi
    82. .xa_jmp:
    83.     lea esi, [esi+ebx+3]
    84. .xa_nocall:
    85.     cmp al, 0C8h
    86.     je .xa_i16
    87.     and al, 0F7h
    88.     cmp al, 0C2h
    89.     jne .xa_no16
    90. .xa_i16:
    91.     inc esi
    92.     inc esi
    93. .xa_no16:
    94.     and al, 0E7h
    95.     cmp al, 26h
    96.     pop eax
    97.     je .xa_PopNxt
    98.     cmp al, 0F1h
    99.     je .xa_F1
    100.     and al, 0FCh
    101.     cmp al, 0A0h
    102.     jne .xa_noMOV
    103.     lea esi, [esi+edx+2]
    104. .xa_noMOV:
    105.     cmp al, 0F0h
    106.     je .xa_PopNxt
    107. .xa_F1:
    108.     cmp al, 64h
    109. .xa_PopNxt:
    110.     pop eax
    111.     je .xa_NxtByte
    112.     mov edi, esp
    113.     push edx
    114.     push eax
    115.     cmp al, 0Fh
    116.     jne .xa_Nrm
    117.     lodsb
    118. .xa_Nrm:
    119.     pushfd
    120.     _aam 10h
    121.     xchg cl, ah
    122.     cwde
    123.     cdq
    124.     xor ebp, ebp
    125.     popfd
    126.     jne .xa_NrmGroup
    127. .xa_ExtGroup:
    128.     add edi, 53
    129.     jecxz .xa_@3
    130. .xa_@1:
    131.     bt [edi], ebp
    132.     jnc .xa_@2
    133.     inc edx
    134. .xa_@2:
    135.     inc ebp
    136.     loop .xa_@1
    137.     jc .xa_@3
    138.     db _salc
    139.     cdq
    140. .xa_@3:
    141.     shl edx, 1
    142.     jmp .xa_ProcOpcode
    143. .xa_NrmGroup:
    144.     sub cl, 4
    145.     jns .xa_@4
    146.     mov cl, 0Ch
    147.     and al, 7
    148. .xa_@4:
    149.     jecxz .xa_4x
    150. .xa_@5:
    151.     adc dl, 1
    152.     inc ebp
    153.     bt [edi], ebp
    154.     loop .xa_@5
    155.     jc .xa_ProcOpcode
    156. .xa_4x:
    157.     shr al, 1
    158. .xa_ProcOpcode:
    159.     xchg cl, al
    160.     lea edx, [edx*8+ecx]
    161.     pop ecx
    162.     pop ebp
    163.     bt [edi+2], edx
    164.     jnc .xa_noModRM
    165. .xa_ModRM:
    166.     lodsb
    167.     _aam 8
    168.     shl ah, 4
    169.     jnc .xa_isModRM
    170.     js .xa_enModRM
    171. .xa_isModRM:
    172.     pushfd
    173.     test ebp, ebp
    174.     jnz .xa_addr32
    175.     sub al, 6
    176.     jnz .xa_noSIB
    177.     mov al, 5
    178. .xa_addr32:
    179.     cmp al, 4
    180.     jne .xa_noSIB
    181.     lodsb
    182.     and al, 7
    183. .xa_noSIB:
    184.     popfd
    185.     jc .xa_iWD
    186.     js .xa_i8
    187.     cmp al, 5
    188.     jne .xa_enModRM
    189. .xa_iWD:
    190.     add esi, ebp
    191.     inc esi
    192. .xa_i8:
    193.     inc esi
    194. .xa_enModRM:
    195.     test ah, 60h
    196.     jnz .xa_noModRM
    197.     xchg eax, ecx
    198.     cmp al, 0F6h
    199.     je .xa_ti8
    200.     cmp al, 0F7h
    201.     jne .xa_noModRM
    202.     add esi, ebx
    203.     inc esi
    204. .xa_ti8:
    205.     inc esi
    206. .xa_noModRM:
    207.     shl edx, 1
    208.     bt [edi+2+17], edx
    209.     jnc .xa_Exit
    210.     inc edx
    211.     bt [edi+2+17], edx
    212.     jnc .xa_im8
    213.     adc esi, ebx
    214. .xa_im8:
    215.     inc esi
    216. .xa_Exit:
    217.     add esp, 110+64
    218.     sub esi, [esp+4]
    219.     mov [esp+7*4], esi
    220.     popad
    221.     ret
    222.  
    223.  
    224. _HookInstall:
    225.     push ebp
    226.     mov ebp, esp
    227.     push esi
    228.     push edi
    229.     push ebx
    230.  
    231.     mov ebx, [ebp + 12]  ; HookCodeLen
    232.     mov esi, [ebp + 8]   ; Function
    233.     test esi, esi
    234.     jz .fail             ; Проверка на NULL указатель
    235.  
    236.     ; Проверка на корректность размера
    237.     test ebx, ebx
    238.     jz .fail
    239.     cmp ebx, 1000h       ; Максимальный разумный размер (4KB)
    240.     ja .fail
    241.  
    242.     push ebx             ; Сохраняем оригинальный размер
    243.  
    244. .loopme:
    245.     push ebx
    246.     call VirXasm32
    247.     pop ebx
    248.     test eax, eax        ; Проверка на ошибку VirXasm32
    249.     jz .fail_pop
    250.     add esi, eax
    251.     sub ebx, eax
    252.     ja .loopme
    253.  
    254.     pop ebx              ; Восстанавливаем оригинальный размер
    255.     neg ebx
    256.     add ebx, [ebp + 12]  ; HookCodeLen
    257.  
    258.     ; Изменение прав доступа на RWX
    259.     push eax
    260.     push ecx
    261.     push edx
    262.    
    263.     mov eax, [ebp + 8]   ; Function address
    264.     mov ecx, ebx         ; Size
    265.     push 0               ; lpflOldProtect (будет заполнено VirtualProtect)
    266.     push 40h             ; PAGE_EXECUTE_READWRITE
    267.     push ecx
    268.     push eax
    269.     call VirtualProtect
    270.     test eax, eax        ; Проверка успешности вызова
    271.     jz .fail_protect
    272.    
    273.     pop edx
    274.     pop ecx
    275.     pop eax
    276.  
    277.     ; save to old buffer
    278.     mov edi, [ebp + 16]  ; OldCodeBuffer
    279.     test edi, edi
    280.     jz .fail             ; Проверка на NULL указатель
    281.     mov esi, [ebp + 8]   ; Function
    282.  
    283.     push ebx
    284.     call Copy_It
    285.     pop ebx
    286.  
    287.     mov edx, [ebp + 8]   ; Function
    288.     sub edx, ebx
    289.     sub edx, edi
    290.     add edx, 1
    291.     mov byte [edi+ebx], 0E9h
    292.     mov [edi+ebx+1], edx
    293.  
    294.     ; write new code
    295.     xchg esi, edi
    296.     mov esi, [ebp + 20]  ; HookCode
    297.     test esi, esi
    298.     jz .fail             ; Проверка на NULL указатель
    299.  
    300.     push ebx
    301.     call Copy_It
    302.     pop ebx
    303.  
    304.     ; Возврат прав доступа на RX
    305.     push eax
    306.     push ecx
    307.     push edx
    308.    
    309.     mov eax, [ebp + 8]   ; Function address
    310.     mov ecx, ebx         ; Size
    311.     push 0               ; lpflOldProtect (будет заполнено VirtualProtect)
    312.     push 20h             ; PAGE_EXECUTE_READ
    313.     push ecx
    314.     push eax
    315.     call VirtualProtect
    316.     test eax, eax        ; Проверка успешности вызова
    317.     jz .fail_protect
    318.    
    319.     pop edx
    320.     pop ecx
    321.     pop eax
    322.  
    323.     mov [ebp - 4], ebx  ; Return value
    324.     jmp .exit
    325.  
    326. .fail_protect:
    327.     add esp, 12          ; Очистка стека после неудачного вызова VirtualProtect
    328.     jmp .fail
    329.  
    330. .fail_pop:
    331.     pop ebx
    332. .fail:
    333.     xor ebx, ebx        ; Возвращаем 0 в случае ошибки
    334.     mov [ebp - 4], ebx
    335.  
    336. .exit:
    337.     pop ebx
    338.     pop edi
    339.     pop esi
    340.     mov esp, ebp
    341.     pop ebp
    342.     ret 16
    343.  
    344.  
    345. Copy_It:
    346.     push ebp
    347.     mov ebp, esp
    348.     push ecx
    349.     push esi
    350.     push edi
    351.  
    352.     mov ecx, [ebp + 8]  ; Размер
    353.     test ecx, ecx
    354.     jz .exit
    355.  
    356. .cp_loop:
    357.     mov al, [esi + ecx - 1]
    358.     mov [edi + ecx - 1], al
    359.     loop .cp_loop
    360.  
    361. .exit:
    362.     pop edi
    363.     pop esi
    364.     pop ecx
    365.     mov esp, ebp
    366.     pop ebp
    367.     ret 4
    368.  
    369. _HookRemoveAll:
    370.     push ebp
    371.     mov ebp, esp
    372.     push esi
    373.     push edi
    374.     push ebx
    375.  
    376.     mov ecx, [hook_table_c]
    377. .rm_loop:
    378.     test ecx, ecx
    379.     jle .exit
    380.     dec ecx
    381.     push ecx
    382.     mov eax, [hook_table+ecx*4]
    383.     lea esi, [eax+8]           ; old code
    384.     mov edi, [eax+24]          ; function ptr
    385.     mov ebx, [eax+28]          ; size
    386.     push ebx
    387.     call Copy_It
    388.     pop ebx
    389.     pop ecx
    390.     jmp .rm_loop
    391. .exit:
    392.     mov [hook_table_c], 0
    393.  
    394.     pop ebx
    395.     pop edi
    396.     pop esi
    397.     mov esp, ebp
    398.     pop ebp
    399.     ret
    400. section '.idata' import data readable
    401. library kernel32,'KERNEL32.DLL',\
    402.         user32,'USER32.DLL',\
    403.         gdi32,'GDI32.DLL',\
    404.         advapi32,'ADVAPI32.DLL',\
    405.         comctl32,'COMCTL32.DLL',\
    406.         comdlg32,'COMDLG32.DLL',\
    407.         shell32,'SHELL32.DLL',\
    408.         wsock32,'WSOCK32.DLL';,\
    409.     include 'C:\FASM\INCLUDE\api\kernel32.inc'
    410.     include 'C:\FASM\INCLUDE\api\user32.inc'
    411.     include 'C:\FASM\INCLUDE\api\gdi32.inc'
    412.     include 'C:\FASM\INCLUDE\api\advapi32.inc'
    413.     include 'C:\FASM\INCLUDE\api\comctl32.inc'
    414.     include 'C:\FASM\INCLUDE\api\comdlg32.inc'
    415.     include 'C:\FASM\INCLUDE\api\shell32.inc'
    416.     include 'C:\FASM\INCLUDE\api\wsock32.inc'
    417.  
    собираю но чето не берется, в чем трабл
     

    Вложения:

    • main.zip
      Размер файла:
      3,9 КБ
      Просмотров:
      79
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Какой в объектном файле импорт?
     
  3. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    его там нету
     
  4. Prober

    Prober Member

    Публикаций:
    0
    Регистрация:
    4 дек 2008
    Сообщения:
    43
    Строки начиная с 400 удалите.
     
  5. vitokop

    vitokop Member

    Публикаций:
    0
    Регистрация:
    20 май 2006
    Сообщения:
    48
    НАВСКИДКУ

    include 'C:/fasm/INCLUDE/win32ax.inc' - это error: extra characters on line
    ...............................................................
    include 'C:\FASM\INCLUDE\api\kernel32.inc'
     
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Код (Text):
    1. include 'win32ax.inc'
    Код (Text):
    1.  
    2. ;section '.idata' data import readable writable
    3. ;library kernel32,'KERNEL32.DLL',\
    4. ;        user32,'USER32.DLL',\
    5. ;        gdi32,'GDI32.DLL',\
    6. ;        advapi32,'ADVAPI32.DLL',\
    7. ;        comctl32,'COMCTL32.DLL',\
    8. ;        comdlg32,'COMDLG32.DLL',\
    9. ;        shell32,'SHELL32.DLL',\
    10. ;        wsock32,'WSOCK32.DLL';,\
    11. ;    include 'api\kernel32.inc'
    12. ;    include 'api\user32.inc'
    13. ;    include 'api\gdi32.inc'
    14. ;    include 'api\advapi32.inc'
    15. ;    include 'api\comctl32.inc'
    16. ;    include 'api\comdlg32.inc'
    17. ;    include 'api\shell32.inc'
    18. ;    include 'api\wsock32.inc'
    Убедись, что в переменной окружения include есть путь '<path>\fasm\INCLUDE'
     
  7. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    удалил,Компилит,но в .obj нет импорта
    upload_2024-9-23_2-24-19.png
    upload_2024-9-23_2-24-25.png
    upload_2024-9-23_2-24-32.png
    --- Сообщение объединено, 23 сен 2024 ---
    не помогло
    --- Сообщение объединено, 23 сен 2024 ---
    Код (Text):
    1. C:\fasm>FASM.EXE hook_lib.asm
    2. flat assembler  version 1.73.32  (1048576 kilobytes memory)
    3. C:\FASM\INCLUDE\api\kernel32.inc [4]:
    4. import kernel32,\
    5. processed: import kernel32,AddAtomA,'AddAtomA',AddAtomW,'AddAtomW',AddConsoleAliasA,'AddConsoleAliasA',AddConsoleAliasW,'AddConsoleAliasW',AllocConsole,'AllocConsole',AreFileApisANSI,'AreFileApisANSI',AssignProcessToJobObject,'AssignProcessToJobObject',BackupRead,'BackupRead',BackupSeek,'BackupSeek',BackupWrite,'BackupWrite',BaseAttachCompleteThunk,'BaseAttachCompleteThunk',Beep,'Beep',BeginUpdateResourceA,'BeginUpdateResourceA',BeginUpdateResourceW,'BeginUpdateResourceW',BuildCommDCBA,'BuildCommDCBA',BuildCommDCBW,'BuildCommDCBW',BuildCommDCBAndTimeoutsA,'BuildCommDCBAndTimeoutsA',BuildCommDCBAndTimeoutsW,'BuildCommDCBAndTimeoutsW',CallNamedPipeA,'CallNamedPipeA',CallNamedPipeW,'CallNamedPipeW',CancelIo,'CancelIo',CancelWaitableTimer,'CancelWaitableTimer',ClearCommBreak,'ClearCommBreak',ClearCommError,'ClearCommError',CloseConsoleHandle,'CloseConsoleHandle',CloseHandle,'CloseHandle',CloseProfileUserMapping,'CloseProfileUserMapping',CmdBatNotification,'CmdBatNotification',CommConfigDialogA,'CommConfigDialogA',CommConfigDialogW,'CommConfigDialogW',CompareFileTime,'CompareFileTime',CompareStringA,'CompareStringA',CompareStringW,'CompareStringW',ConnectNamedPipe,'ConnectNamedPipe',ConsoleMenuControl,'ConsoleMenuControl',ContinueDebugEvent,'ContinueDebugEvent',ConvertDefaultLocale,'ConvertDefaultLocale',ConvertThreadToFiber,'ConvertThreadToFiber',CopyFileA,'CopyFileA',CopyFileW,'CopyFileW',CopyFileExA,'CopyFileExA',CopyFileExW,'CopyFileExW',CreateConsoleScreenBuffer,'CreateConsoleScreenBuffer',CreateDirectoryA,'CreateDirectoryA',CreateDirectoryW,'CreateDirectoryW',CreateDirectoryExA,'CreateDirectoryExA',CreateDirectoryExW,'CreateDirectoryExW',CreateEventA,'CreateEventA',CreateEventW,'CreateEventW',CreateFiber,'CreateFiber',CreateFileA,'CreateFileA',CreateFileW,'CreateFileW',CreateFileMappingA,'CreateFileMappingA',CreateFileMappingW,'CreateFileMappingW',CreateHardLinkA,'CreateHardLinkA',CreateHardLinkW,'CreateHardLinkW',CreateIoCompletionPort,'CreateIoCompletionPort',CreateJobObjectA,'CreateJobObjectA',CreateJobObjectW,'CreateJobObjectW',CreateMailslotA,'CreateMailslotA',CreateMailslotW,'CreateMailslotW',CreateMutexA,'CreateMutexA',CreateMutexW,'CreateMutexW',CreateNamedPipeA,'CreateNamedPipeA',CreateNamedPipeW,'CreateNamedPipeW',CreatePipe,'CreatePipe',CreateProcessA,'CreateProcessA',CreateProcessW,'CreateProcessW',CreateRemoteThread,'CreateRemoteThread',CreateSemaphoreA,'CreateSemaphoreA',CreateSemaphoreW,'CreateSemaphoreW',CreateTapePartition,'CreateTapePartition',CreateThread,'CreateThread',CreateToolhelp32Snapshot,'CreateToolhelp32Snapshot',CreateVirtualBuffer,'CreateVirtualBuffer',CreateWaitableTimerA,'CreateWaitableTimerA',CreateWaitableTimerW,'CreateWaitableTimerW',DebugActiveProcess,'DebugActiveProcess',DebugBreak,'DebugBreak',DefineDosDeviceA,'DefineDosDeviceA',DefineDosDeviceW,'DefineDosDeviceW',DeleteAtom,'DeleteAtom',DeleteCriticalSection,'DeleteCriticalSection',DeleteFiber,'DeleteFiber',DeleteFileA,'DeleteFileA',DeleteFileW,'DeleteFileW',DeviceIoControl,'DeviceIoControl',DisableThreadLibraryCalls,'DisableThreadLibraryCalls',DisconnectNamedPipe,'DisconnectNamedPipe',DosDateTimeToFileTime,'DosDateTimeToFileTime',DuplicateConsoleHandle,'DuplicateConsoleHandle',DuplicateHandle,'DuplicateHandle',EndUpdateResourceA,'EndUpdateResourceA',EndUpdateResourceW,'EndUpdateResourceW',EnterCriticalSection,'EnterCriticalSection',EnumCalendarInfoA,'EnumCalendarInfoA',EnumCalendarInfoW,'EnumCalendarInfoW',EnumCalendarInfoExA,'EnumCalendarInfoExA',EnumCalendarInfoExW,'EnumCalendarInfoExW',EnumDateFormatsA,'EnumDateFormatsA',EnumDateFormatsW,'EnumDateFormatsW',EnumDateFormatsExA,'EnumDateFormatsExA',EnumDateFormatsExW,'EnumDateFormatsExW',EnumResourceLanguagesA,'EnumResourceLanguagesA',EnumResourceLanguagesW,'EnumResourceLanguagesW',EnumResourceNamesA,'EnumResourceNamesA',EnumResourceNamesW,'EnumResourceNamesW',EnumResourceTypesA,'EnumResourceTypesA',EnumResourceTypesW,'EnumResourceTypesW',EnumSystemCodePagesA,'EnumSystemCodePagesA',EnumSystemCodePagesW,'EnumSystemCodePagesW',EnumSystemLocalesA,'EnumSystemLocalesA',EnumSystemLocalesW,'EnumSystemLocalesW',EnumTimeFormatsA,'EnumTimeFormatsA',EnumTimeFormatsW,'EnumTimeFormatsW',EraseTape,'EraseTape',EscapeCommFunction,'EscapeCommFunction',ExitProcess,'ExitProcess',ExitThread,'ExitThread',ExitVDM,'ExitVDM',ExpandEnvironmentStringsA,'ExpandEnvironmentStringsA',ExpandEnvironmentStringsW,'ExpandEnvironmentStringsW',ExpungeConsoleCommandHistoryA,'ExpungeConsoleCommandHistoryA',ExpungeConsoleCommandHistoryW,'ExpungeConsoleCommandHistoryW',ExtendVirtualBuffer,'ExtendVirtualBuffer',FatalAppExitA,'FatalAppExitA',FatalAppExitW,'FatalAppExitW',FatalExit,'FatalExit',FileTimeToDosDateTime,'FileTimeToDosDateTime',FileTimeToLocalFileTime,'FileTimeToLocalFileTime',FileTimeToSystemTime,'FileTimeToSystemTime',FillConsoleOutputAttribute,'FillConsoleOutputAttribute',FillConsoleOutputCharacterA,'FillConsoleOutputCharacterA',FillConsoleOutputCharacterW,'FillConsoleOutputCharacterW',FindAtomA,'FindAtomA',FindAtomW,'FindAtomW',FindClose,'FindClose',FindCloseChangeNotification,'FindCloseChangeNotification',FindFirstChangeNotificationA,'FindFirstChangeNotificationA',FindFirstChangeNotificationW,'FindFirstChangeNotificationW',FindFirstFileA,'FindFirstFileA',FindFirstFileW,'FindFirstFileW',FindFirstFileExA,'FindFirstFileExA',FindFirstFileExW,'FindFirstFileExW',FindNextChangeNotification,'FindNextChangeNotification',FindNextFileA,'FindNextFileA',FindNextFileW,'FindNextFileW',FindResourceA,'FindResourceA',FindResourceW,'FindResourceW',FindResourceExA,'FindResourceExA',FindResourceExW,'FindResourceExW',FlushConsoleInputBuffer,'FlushConsoleInputBuffer',FlushFileBuffers,'FlushFileBuffers',FlushInstructionCache,'FlushInstructionCache',FlushViewOfFile,'FlushViewOfFile',FoldStringA,'FoldStringA',FoldStringW,'FoldStringW',FormatMessageA,'FormatMessageA',FormatMessageW,'FormatMessageW',FreeConsole,'FreeConsole',FreeEnvironmentStringsA,'FreeEnvironmentStringsA',FreeEnvironmentStringsW,'FreeEnvironmentStringsW',FreeLibrary,'FreeLibrary',FreeLibraryAndExitThread,'FreeLibraryAndExitThread',FreeResource,'FreeResource',FreeVirtualBuffer,'FreeVirtualBuffer',GenerateConsoleCtrlEvent,'GenerateConsoleCtrlEvent',GetACP,'GetACP',GetAtomNameA,'GetAtomNameA',GetAtomNameW,'GetAtomNameW',GetBinaryTypeA,'GetBinaryTypeA',GetBinaryTypeW,'GetBinaryTypeW',GetCPInfo,'GetCPInfo',GetCPInfoExA,'GetCPInfoExA',GetCPInfoExW,'GetCPInfoExW',GetCommConfig,'GetCommConfig',GetCommMask,'GetCommMask',GetCommModemStatus,'GetCommModemStatus',GetCommProperties,'GetCommProperties',GetCommState,'GetCommState',GetCommTimeouts,'GetCommTimeouts',GetCommandLineA,'GetCommandLineA',GetCommandLineW,'GetCommandLineW',GetCompressedFileSizeA,'GetCompressedFileSizeA',GetCompressedFileSizeW,'GetCompressedFileSizeW',GetComputerNameA,'GetComputerNameA',GetComputerNameW,'GetComputerNameW',GetConsoleAliasA,'GetConsoleAliasA',GetConsoleAliasW,'GetConsoleAliasW',GetConsoleAliasExesA,'GetConsoleAliasExesA',GetConsoleAliasExesW,'GetConsoleAliasExesW',GetConsoleAliasExesLengthA,'GetConsoleAliasExesLengthA',GetConsoleAliasExesLengthW,'GetConsoleAliasExesLengthW',GetConsoleAliasesA,'GetConsoleAliasesA',GetConsoleAliasesW,'GetConsoleAliasesW',GetConsoleAliasesLengthA,'GetConsoleAliasesLengthA',GetConsoleAliasesLengthW,'GetConsoleAliasesLengthW',GetConsoleCP,'GetConsoleCP',GetConsoleCommandHistoryA,'GetConsoleCommandHistoryA',GetConsoleCommandHistoryW,'GetConsoleCommandHistoryW',GetConsoleCommandHistoryLengthA,'GetConsoleCommandHistoryLengthA',GetConsoleCommandHistoryLengthW,'GetConsoleCommandHistoryLengthW',GetConsoleCursorInfo,'GetConsoleCursorInfo',GetConsoleDisplayMode,'GetConsoleDisplayMode',GetConsoleFontInfo,'GetConsoleFontInfo',GetConsoleFontSize,'GetConsoleFontSize',GetConsoleHardwareState,'GetConsoleHardwareState',GetConsoleInputExeNameA,'GetConsoleInputExeNameA',GetConsoleInputExeNameW,'GetConsoleInputExeNameW',GetConsoleInputWaitHandle,'GetConsoleInputWaitHandle',GetConsoleKeyboardLayoutNameA,'GetConsoleKeyboardLayoutNameA',GetConsoleKeyboardLayoutNameW,'GetConsoleKeyboardLayoutNameW',GetConsoleMode,'GetConsoleMode',GetConsoleOutputCP,'GetConsoleOutputCP',GetConsoleScreenBufferInfo,'GetConsoleScreenBufferInfo',GetConsoleTitleA,'GetConsoleTitleA',GetConsoleTitleW,'GetConsoleTitleW',GetConsoleWindow,'GetConsoleWindow',GetCurrencyFormatA,'GetCurrencyFormatA',GetCurrencyFormatW,'GetCurrencyFormatW',GetCurrentConsoleFont,'GetCurrentConsoleFont',GetCurrentDirectoryA,'GetCurrentDirectoryA',GetCurrentDirectoryW,'GetCurrentDirectoryW',GetCurrentProcess,'GetCurrentProcess',GetCurrentProcessId,'GetCurrentProcessId',GetCurrentThread,'GetCurrentThread',GetCurrentThreadId,'GetCurrentThreadId',GetDateFormatA,'GetDateFormatA',GetDateFormatW,'GetDateFormatW',GetDefaultCommConfigA,'GetDefaultCommConfigA',GetDefaultCommConfigW,'GetDefaultCommConfigW',GetDevicePowerState,'GetDevicePowerState',GetDiskFreeSpaceA,'GetDiskFreeSpaceA',GetDiskFreeSpaceW,'GetDiskFreeSpaceW',GetDiskFreeSpaceExA,'GetDiskFreeSpaceExA',GetDiskFreeSpaceExW,'GetDiskFreeSpaceExW',GetDriveTypeA,'GetDriveTypeA',GetDriveTypeW,'GetDriveTypeW',GetEnvironmentStringsA,'GetEnvironmentStringsA',GetEnvironmentStringsW,'GetEnvironmentStringsW',GetEnvironmentVariableA,'GetEnvironmentVariableA',GetEnvironmentVariableW,'GetEnvironmentVariableW',GetExitCodeProcess,'GetExitCodeProcess',GetExitCodeThread,'GetExitCodeThread',GetFileAttributesA,'GetFileAttributesA',GetFileAttributesW,'GetFileAttributesW',GetFileAttributesExA,'GetFileAttributesExA',GetFileAttributesExW,'GetFileAttributesExW',GetFileInformationByHandle,'GetFileInformationByHandle',GetFileSize,'GetFileSize',GetFileSizeEx,'GetFileSizeEx',GetFileTime,'GetFileTime',GetFileType,'GetFileType',GetFullPathNameA,'GetFullPathNameA',GetFullPathNameW,'GetFullPathNameW',GetHandleInformation,'GetHandleInformation',GetLargestConsoleWindowSize,'GetLargestConsoleWindowSize',GetLastError,'GetLastError',GetLocalTime,'GetLocalTime',GetLocaleInfoA,'GetLocaleInfoA',GetLocaleInfoW,'GetLocaleInfoW',GetLogicalDriveStringsA,'GetLogicalDriveStringsA',GetLogicalDriveStringsW,'GetLogicalDriveStringsW',GetLogicalDrives,'GetLogicalDrives',GetLongPathNameA,'GetLongPathNameA',GetLongPathNameW,'GetLongPathNameW',GetMailslotInfo,'GetMailslotInfo',GetModuleFileNameA,'GetModuleFileNameA',GetModuleFileNameW,'GetModuleFileNameW',GetModuleHandleA,'GetModuleHandleA',GetModuleHandleW,'GetModuleHandleW',GetNamedPipeHandleStateA,'GetNamedPipeHandleStateA',GetNamedPipeHandleStateW,'GetNamedPipeHandleStateW',GetNamedPipeInfo,'GetNamedPipeInfo',GetNextVDMCommand,'GetNextVDMCommand',GetNumberFormatA,'GetNumberFormatA',GetNumberFormatW,'GetNumberFormatW',GetNumberOfConsoleFonts,'GetNumberOfConsoleFonts',GetNumberOfConsoleInputEvents,'GetNumberOfConsoleInputEvents',GetNumberOfConsoleMouseButtons,'GetNumberOfConsoleMouseButtons',GetOEMCP,'GetOEMCP',GetOverlappedResult,'GetOverlappedResult',GetPriorityClass,'GetPriorityClass',GetPrivateProfileIntA,'GetPrivateProfileIntA',GetPrivateProfileIntW,'GetPrivateProfileIntW',GetPrivateProfileSectionA,'GetPrivateProfileSectionA',GetPrivateProfileSectionW,'GetPrivateProfileSectionW',GetPrivateProfileSectionNamesA,'GetPrivateProfileSectionNamesA',GetPrivateProfileSectionNamesW,'GetPrivateProfileSectionNamesW',GetPrivateProfileStringA,'GetPrivateProfileStringA',GetPrivateProfileStringW,'GetPrivateProfileStringW',GetPrivateProfileStructA,'GetPrivateProfileStructA',GetPrivateProfileStructW,'GetPrivateProfileStructW',GetProcAddress,'GetProcAddress',GetProcessAffinityMask,'GetProcessAffinityMask',GetProcessHeap,'GetProcessHeap',GetProcessHeaps,'GetProcessHeaps',GetProcessPriorityBoost,'GetProcessPriorityBoost',GetProcessShutdownParameters,'GetProcessShutdownParameters',GetProcessTimes,'GetProcessTimes',GetProcessVersion,'GetProcessVersion',GetProcessWorkingSetSize,'GetProcessWorkingSetSize',GetProfileIntA,'GetProfileIntA',GetProfileIntW,'GetProfileIntW',GetProfileSectionA,'GetProfileSectionA',GetProfileSectionW,'GetProfileSectionW',GetProfileStringA,'GetProfileStringA',GetProfileStringW,'GetProfileStringW',GetQueuedCompletionStatus,'GetQueuedCompletionStatus',GetShortPathNameA,'GetShortPathNameA',GetShortPathNameW,'GetShortPathNameW',GetStartupInfoA,'GetStartupInfoA',GetStartupInfoW,'GetStartupInfoW',GetStdHandle,'GetStdHandle',GetStringTypeA,'GetStringTypeA',GetStringTypeW,'GetStringTypeW',GetStringTypeExA,'GetStringTypeExA',GetStringTypeExW,'GetStringTypeExW',GetSystemDefaultLCID,'GetSystemDefaultLCID',GetSystemDefaultLangID,'GetSystemDefaultLangID',GetSystemDirectoryA,'GetSystemDirectoryA',GetSystemDirectoryW,'GetSystemDirectoryW',GetSystemInfo,'GetSystemInfo',GetSystemPowerStatus,'GetSystemPowerStatus',GetSystemTime,'GetSystemTime',GetSystemTimeAdjustment,'GetSystemTimeAdjustment',GetSystemTimeAsFileTime,'GetSystemTimeAsFileTime',GetTapeParameters,'GetTapeParameters',GetTapePosition,'GetTapePosition',GetTapeStatus,'GetTapeStatus',GetTempFileNameA,'GetTempFileNameA',GetTempFileNameW,'GetTempFileNameW',GetTempPathA,'GetTempPathA',GetTempPathW,'GetTempPathW',GetThreadContext,'GetThreadContext',GetThreadLocale,'GetThreadLocale',GetThreadPriority,'GetThreadPriority',GetThreadPriorityBoost,'GetThreadPriorityBoost',GetThreadSelectorEntry,'GetThreadSelectorEntry',GetThreadTimes,'GetThreadTimes',GetTickCount,'GetTickCount',GetTimeFormatA,'GetTimeFormatA',GetTimeFormatW,'GetTimeFormatW',GetTimeZoneInformation,'GetTimeZoneInformation',GetUserDefaultLCID,'GetUserDefaultLCID',GetUserDefaultLangID,'GetUserDefaultLangID',GetVDMCurrentDirectories,'GetVDMCurrentDirectories',GetVersion,'GetVersion',GetVersionExA,'GetVersionExA',GetVersionExW,'GetVersionExW',GetVolumeInformationA,'GetVolumeInformationA',GetVolumeInformationW,'GetVolumeInformationW',GetWindowsDirectoryA,'GetWindowsDirectoryA',GetWindowsDirectoryW,'GetWindowsDirectoryW',GlobalAddAtomA,'GlobalAddAtomA',GlobalAddAtomW,'GlobalAddAtomW',GlobalAlloc,'GlobalAlloc',GlobalCompact,'GlobalCompact',GlobalDeleteAtom,'GlobalDeleteAtom',GlobalFindAtomA,'GlobalFindAtomA',GlobalFindAtomW,'GlobalFindAtomW',GlobalFix,'GlobalFix',GlobalFlags,'GlobalFlags',GlobalFree,'GlobalFree',GlobalGetAtomNameA,'GlobalGetAtomNameA',GlobalGetAtomNameW,'GlobalGetAtomNameW',GlobalHandle,'GlobalHandle',GlobalLock,'GlobalLock',GlobalMemoryStatus,'GlobalMemoryStatus',GlobalMemoryStatusVlm,'GlobalMemoryStatusVlm',GlobalReAlloc,'GlobalReAlloc',GlobalSize,'GlobalSize',GlobalUnWire,'GlobalUnWire',GlobalUnfix,'GlobalUnfix',GlobalUnlock,'GlobalUnlock',GlobalWire,'GlobalWire',Heap32First,'Heap32First',Heap32ListFirst,'Heap32ListFirst',Heap32ListNext,'Heap32ListNext',Heap32Next,'Heap32Next',HeapAlloc,'HeapAlloc',HeapCompact,'HeapCompact',HeapCreate,'HeapCreate',HeapDestroy,'HeapDestroy',HeapExtend,'HeapExtend',HeapFree,'HeapFree',HeapLock,'HeapLock',HeapReAlloc,'HeapReAlloc',HeapSize,'HeapSize',HeapSummary,'HeapSummary',HeapUnlock,'HeapUnlock',HeapUsage,'HeapUsage',HeapValidate,'HeapValidate',HeapWalk,'HeapWalk',InitAtomTable,'InitAtomTable',InitializeCriticalSection,'InitializeCriticalSection',InitializeCriticalSectionAndSpinCount,'InitializeCriticalSectionAndSpinCount',InterlockedCompareExchange,'InterlockedCompareExchange',InterlockedDecrement,'InterlockedDecrement',InterlockedExchange,'InterlockedExchange',InterlockedExchangeAdd,'InterlockedExchangeAdd',InterlockedIncrement,'InterlockedIncrement',InvalidateConsoleDIBits,'InvalidateConsoleDIBits',IsBadCodePtr,'IsBadCodePtr',IsBadHugeReadPtr,'IsBadHugeReadPtr',IsBadHugeWritePtr,'IsBadHugeWritePtr',IsBadReadPtr,'IsBadReadPtr',IsBadStringPtrA,'IsBadStringPtrA',IsBadStringPtrW,'IsBadStringPtrW',IsBadWritePtr,'IsBadWritePtr',IsDBCSLeadByte,'IsDBCSLeadByte',IsDBCSLeadByteEx,'IsDBCSLeadByteEx',IsDebuggerPresent,'IsDebuggerPresent',IsProcessorFeaturePresent,'IsProcessorFeaturePresent',IsValidCodePage,'IsValidCodePage',IsValidLocale,'IsValidLocale',LCMapStringA,'LCMapStringA',LCMapStringW,'LCMapStringW',LeaveCriticalSection,'LeaveCriticalSection',LoadLibraryA,'LoadLibraryA',LoadLibraryW,'LoadLibraryW',LoadLibraryExA,'LoadLibraryExA',LoadLibraryExW,'LoadLibraryExW',LoadModule,'LoadModule',LoadResource,'LoadResource',LocalAlloc,'LocalAlloc',LocalCompact,'LocalCompact',LocalFileTimeToFileTime,'LocalFileTimeToFileTime',LocalFlags,'LocalFlags',LocalFree,'LocalFree',LocalHandle,'LocalHandle',LocalLock,'LocalLock',LocalReAlloc,'LocalReAlloc',LocalShrink,'LocalShrink',LocalSize,'LocalSize',LocalUnlock,'LocalUnlock',LockFile,'LockFile',LockFileEx,'LockFileEx',LockResource,'LockResource',MapViewOfFile,'MapViewOfFile',MapViewOfFileEx,'MapViewOfFileEx',MapViewOfFileVlm,'MapViewOfFileVlm',Module32First,'Module32First',Module32Next,'Module32Next',MoveFileA,'MoveFileA',MoveFileW,'MoveFileW',MoveFileExA,'MoveFileExA',MoveFileExW,'MoveFileExW',MoveFileWithProgressA,'MoveFileWithProgressA',MoveFileWithProgressW,'MoveFileWithProgressW',MulDiv,'MulDiv',MultiByteToWideChar,'MultiByteToWideChar',OpenEventA,'OpenEventA',OpenEventW,'OpenEventW',OpenFile,'OpenFile',OpenFileMappingA,'OpenFileMappingA',OpenFileMappingW,'OpenFileMappingW',OpenJobObjectA,'OpenJobObjectA',OpenJobObjectW,'OpenJobObjectW',OpenMutexA,'OpenMutexA',OpenMutexW,'OpenMutexW',OpenProcess,'OpenProcess',OpenProfileUserMapping,'OpenProfileUserMapping',OpenSemaphoreA,'OpenSemaphoreA',OpenSemaphoreW,'OpenSemaphoreW',OpenWaitableTimerA,'OpenWaitableTimerA',OpenWaitableTimerW,'OpenWaitableTimerW',OutputDebugStringA,'OutputDebugStringA',OutputDebugStringW,'OutputDebugStringW',PeekConsoleInputA,'PeekConsoleInputA',PeekConsoleInputW,'PeekConsoleInputW',PeekNamedPipe,'PeekNamedPipe',PostQueuedCompletionStatus,'PostQueuedCompletionStatus',PrepareTape,'PrepareTape',Process32First,'Process32First',Process32Next,'Process32Next',PulseEvent,'PulseEvent',PurgeComm,'PurgeComm',QueryDosDeviceA,'QueryDosDeviceA',QueryDosDeviceW,'QueryDosDeviceW',QueryInformationJobObject,'QueryInformationJobObject',QueryPerformanceCounter,'QueryPerformanceCounter',QueryPerformanceFrequency,'QueryPerformanceFrequency',QueryWin31IniFilesMappedToRegistry,'QueryWin31IniFilesMappedToRegistry',QueueUserAPC,'QueueUserAPC',RaiseException,'RaiseException',ReadConsoleA,'ReadConsoleA',ReadConsoleW,'ReadConsoleW',ReadConsoleInputA,'ReadConsoleInputA',ReadConsoleInputW,'ReadConsoleInputW',ReadConsoleInputExA,'ReadConsoleInputExA',ReadConsoleInputExW,'ReadConsoleInputExW',ReadConsoleOutputA,'ReadConsoleOutputA',ReadConsoleOutputW,'ReadConsoleOutputW',ReadConsoleOutputAttribute,'ReadConsoleOutputAttribute',ReadConsoleOutputCharacterA,'ReadConsoleOutputCharacterA',ReadConsoleOutputCharacterW,'ReadConsoleOutputCharacterW',ReadFile,'ReadFile',ReadFileEx,'ReadFileEx',ReadFileScatter,'ReadFileScatter',ReadFileVlm,'ReadFileVlm',ReadProcessMemory,'ReadProcessMemory',ReadProcessMemoryVlm,'ReadProcessMemoryVlm',RegisterConsoleVDM,'RegisterConsoleVDM',RegisterWaitForInputIdle,'RegisterWaitForInputIdle',RegisterWowBaseHandlers,'RegisterWowBaseHandlers',RegisterWowExec,'RegisterWowExec',ReleaseMutex,'ReleaseMutex',ReleaseSemaphore,'ReleaseSemaphore',RemoveDirectoryA,'RemoveDirectoryA',RemoveDirectoryW,'RemoveDirectoryW',RequestWakeupLatency,'RequestWakeupLatency',ResetEvent,'ResetEvent',ResumeThread,'ResumeThread',RtlFillMemory,'RtlFillMemory',RtlMoveMemory,'RtlMoveMemory',RtlUnwind,'RtlUnwind',RtlZeroMemory,'RtlZeroMemory',ScrollConsoleScreenBufferA,'ScrollConsoleScreenBufferA',ScrollConsoleScreenBufferW,'ScrollConsoleScreenBufferW',SearchPathA,'SearchPathA',SearchPathW,'SearchPathW',SetCommBreak,'SetCommBreak',SetCommConfig,'SetCommConfig',SetCommMask,'SetCommMask',SetCommState,'SetCommState',SetCommTimeouts,'SetCommTimeouts',SetComputerNameA,'SetComputerNameA',SetComputerNameW,'SetComputerNameW',SetConsoleActiveScreenBuffer,'SetConsoleActiveScreenBuffer',SetConsoleCP,'SetConsoleCP',SetConsoleCommandHistoryMode,'SetConsoleCommandHistoryMode',SetConsoleCtrlHandler,'SetConsoleCtrlHandler',SetConsoleCursor,'SetConsoleCursor',SetConsoleCursorInfo,'SetConsoleCursorInfo',SetConsoleCursorPosition,'SetConsoleCursorPosition',SetConsoleDisplayMode,'SetConsoleDisplayMode',SetConsoleFont,'SetConsoleFont',SetConsoleHardwareState,'SetConsoleHardwareState',SetConsoleIcon,'SetConsoleIcon',SetConsoleInputExeNameA,'SetConsoleInputExeNameA',SetConsoleInputExeNameW,'SetConsoleInputExeNameW',SetConsoleKeyShortcuts,'SetConsoleKeyShortcuts',SetConsoleMaximumWindowSize,'SetConsoleMaximumWindowSize',SetConsoleMenuClose,'SetConsoleMenuClose',SetConsoleMode,'SetConsoleMode',SetConsoleNumberOfCommandsA,'SetConsoleNumberOfCommandsA',SetConsoleNumberOfCommandsW,'SetConsoleNumberOfCommandsW',SetConsoleOutputCP,'SetConsoleOutputCP',SetConsolePalette,'SetConsolePalette',SetConsoleScreenBufferSize,'SetConsoleScreenBufferSize',SetConsoleTextAttribute,'SetConsoleTextAttribute',SetConsoleTitleA,'SetConsoleTitleA',SetConsoleTitleW,'SetConsoleTitleW',SetConsoleWindowInfo,'SetConsoleWindowInfo',SetCriticalSectionSpinCount,'SetCriticalSectionSpinCount',SetCurrentDirectoryA,'SetCurrentDirectoryA',SetCurrentDirectoryW,'SetCurrentDirectoryW',SetDefaultCommConfigA,'SetDefaultCommConfigA',SetDefaultCommConfigW,'SetDefaultCommConfigW',SetEndOfFile,'SetEndOfFile',SetEnvironmentVariableA,'SetEnvironmentVariableA',SetEnvironmentVariableW,'SetEnvironmentVariableW',SetErrorMode,'SetErrorMode',SetEvent,'SetEvent',SetFileApisToANSI,'SetFileApisToANSI',SetFileApisToOEM,'SetFileApisToOEM',SetFileAttributesA,'SetFileAttributesA',SetFileAttributesW,'SetFileAttributesW',SetFilePointer,'SetFilePointer',SetFilePointerEx,'SetFilePointerEx',SetFileTime,'SetFileTime',SetHandleCount,'SetHandleCount',SetHandleInformation,'SetHandleInformation',SetInformationJobObject,'SetInformationJobObject',SetLastConsoleEventActive,'SetLastConsoleEventActive',SetLastError,'SetLastError',SetLocalTime,'SetLocalTime',SetLocaleInfoA,'SetLocaleInfoA',SetLocaleInfoW,'SetLocaleInfoW',SetMailslotInfo,'SetMailslotInfo',SetNamedPipeHandleState,'SetNamedPipeHandleState',SetPriorityClass,'SetPriorityClass',SetProcessAffinityMask,'SetProcessAffinityMask',SetProcessPriorityBoost,'SetProcessPriorityBoost',SetProcessShutdownParameters,'SetProcessShutdownParameters',SetProcessWorkingSetSize,'SetProcessWorkingSetSize',SetStdHandle,'SetStdHandle',SetSystemPowerState,'SetSystemPowerState',SetSystemTime,'SetSystemTime',SetSystemTimeAdjustment,'SetSystemTimeAdjustment',SetTapeParameters,'SetTapeParameters',SetTapePosition,'SetTapePosition',SetThreadAffinityMask,'SetThreadAffinityMask',SetThreadContext,'SetThreadContext',SetThreadExecutionState,'SetThreadExecutionState',SetThreadIdealProcessor,'SetThreadIdealProcessor',SetThreadLocale,'SetThreadLocale',SetThreadPriority,'SetThreadPriority',SetThreadPriorityBoost,'SetThreadPriorityBoost',SetTimeZoneInformation,'SetTimeZoneInformation',SetUnhandledExceptionFilter,'SetUnhandledExceptionFilter',SetVDMCurrentDirectories,'SetVDMCurrentDirectories',SetVolumeLabelA,'SetVolumeLabelA',SetVolumeLabelW,'SetVolumeLabelW',SetWaitableTimer,'SetWaitableTimer',SetupComm,'SetupComm',ShowConsoleCursor,'ShowConsoleCursor',SignalObjectAndWait,'SignalObjectAndWait',SizeofResource,'SizeofResource',Sleep,'Sleep',SleepEx,'SleepEx',SuspendThread,'SuspendThread',SwitchToFiber,'SwitchToFiber',SwitchToThread,'SwitchToThread',SystemTimeToFileTime,'SystemTimeToFileTime',SystemTimeToTzSpecificLocalTime,'SystemTimeToTzSpecificLocalTime',TerminateJobObject,'TerminateJobObject',TerminateProcess,'TerminateProcess',TerminateThread,'TerminateThread',Thread32First,'Thread32First',Thread32Next,'Thread32Next',TlsAlloc,'TlsAlloc',TlsFree,'TlsFree',TlsGetValue,'TlsGetValue',TlsSetValue,'TlsSetValue',Toolhelp32ReadProcessMemory,'Toolhelp32ReadProcessMemory',TransactNamedPipe,'TransactNamedPipe',TransmitCommChar,'TransmitCommChar',TrimVirtualBuffer,'TrimVirtualBuffer',TryEnterCriticalSection,'TryEnterCriticalSection',UnhandledExceptionFilter,'UnhandledExceptionFilter',UnlockFile,'UnlockFile',UnlockFileEx,'UnlockFileEx',UnmapViewOfFile,'UnmapViewOfFile',UnmapViewOfFileVlm,'UnmapViewOfFileVlm',UpdateResourceA,'UpdateResourceA',UpdateResourceW,'UpdateResourceW',VDMConsoleOperation,'VDMConsoleOperation',VDMOperationStarted,'VDMOperationStarted',VerLanguageNameA,'VerLanguageNameA',VerLanguageNameW,'VerLanguageNameW',VerifyConsoleIoHandle,'VerifyConsoleIoHandle',VirtualAlloc,'VirtualAlloc',VirtualAllocEx,'VirtualAllocEx',VirtualAllocVlm,'VirtualAllocVlm',VirtualBufferExceptionHandler,'VirtualBufferExceptionHandler',VirtualFree,'VirtualFree',VirtualFreeEx,'VirtualFreeEx',VirtualFreeVlm,'VirtualFreeVlm',VirtualLock,'VirtualLock',VirtualProtect,'VirtualProtect',VirtualProtectEx,'VirtualProtectEx',VirtualProtectVlm,'VirtualProtectVlm',VirtualQuery,'VirtualQuery',VirtualQueryEx,'VirtualQueryEx',VirtualQueryVlm,'VirtualQueryVlm',VirtualUnlock,'VirtualUnlock',WaitCommEvent,'WaitCommEvent',WaitForDebugEvent,'WaitForDebugEvent',WaitForMultipleObjects,'WaitForMultipleObjects',WaitForMultipleObjectsEx,'WaitForMultipleObjectsEx',WaitForSingleObject,'WaitForSingleObject',WaitForSingleObjectEx,'WaitForSingleObjectEx',WaitNamedPipeA,'WaitNamedPipeA',WaitNamedPipeW,'WaitNamedPipeW',WideCharToMultiByte,'WideCharToMultiByte',WinExec,'WinExec',WriteConsoleA,'WriteConsoleA',WriteConsoleW,'WriteConsoleW',WriteConsoleInputA,'WriteConsoleInputA',WriteConsoleInputW,'WriteConsoleInputW',WriteConsoleInputVDMA,'WriteConsoleInputVDMA',WriteConsoleInputVDMW,'WriteConsoleInputVDMW',WriteConsoleOutputA,'WriteConsoleOutputA',WriteConsoleOutputW,'WriteConsoleOutputW',WriteConsoleOutputAttribute,'WriteConsoleOutputAttribute',WriteConsoleOutputCharacterA,'WriteConsoleOutputCharacterA',WriteConsoleOutputCharacterW,'WriteConsoleOutputCharacterW',WriteFile,'WriteFile',WriteFileEx,'WriteFileEx',WriteFileGather,'WriteFileGather',WriteFileVlm,'WriteFileVlm',WritePrivateProfileSectionA,'WritePrivateProfileSectionA',WritePrivateProfileSectionW,'WritePrivateProfileSectionW',WritePrivateProfileStringA,'WritePrivateProfileStringA',WritePrivateProfileStringW,'WritePrivateProfileStringW',WritePrivateProfileStructA,'WritePrivateProfileStructA',WritePrivateProfileStructW,'WritePrivateProfileStructW',WriteProcessMemory,'WriteProcessMemory',WriteProcessMemoryVlm,'WriteProcessMemoryVlm',WriteProfileSectionA,'WriteProfileSectionA',WriteProfileSectionW,'WriteProfileSectionW',WriteProfileStringA,'WriteProfileStringA',WriteProfileStringW,'WriteProfileStringW',WriteTapemark,'WriteTapemark',_hread,'_hread',_hwrite,'_hwrite',_lclose,'_lclose',_lcreat,'_lcreat',_llseek,'_llseek',_lopen,'_lopen',_lread,'_lread',_lwrite,'_lwrite',lstrcatA,'lstrcatA',lstrcatW,'lstrcatW',lstrcmpA,'lstrcmpA',lstrcmpW,'lstrcmpW',lstrcmpiA,'lstrcmpiA',lstrcmpiW,'lstrcmpiW',lstrcpyA,'lstrcpyA',lstrcpyW,'lstrcpyW',lstrcpynA,'lstrcpynA',lstrcpynW,'lstrcpynW',lstrlenA,'lstrlenA',lstrlenW,'lstrlenW'
    6. error: illegal instruction.
     
  8. Prober

    Prober Member

    Публикаций:
    0
    Регистрация:
    4 дек 2008
    Сообщения:
    43
    Замените
    Код (Text):
    1. extrn VirtualProtect
    на
    Код (Text):
    1. extrn '_VirtualProtect@16' as VirtualProtect
    Импорта после FASM не будет, будет внешний символ, а в импорт он встанет уже при компоновке.
     
  9. MaKsIm

    MaKsIm Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    94
    Файл win32a/w[x].inc из комплекта fasm предназначен для format PE/PE64. У вас же format MS COFF. В этом формате (читаем доку по fasm на оф сайте) не нужно создавать import и section '.idata'. Эту секцию создаст линковщик, когда будет решать задачу соединения всех ваших объектников.

    2.4.3 Common Object File Format

    To select Common Object File Format, use format COFF or format MS COFF directive, depending whether you want to create classic (DJGPP) or Microsoft's variant of COFF file. The default code setting for this format is 32-bit. To create the file in Microsoft's COFF format for the x86-64 architecture, use format MS64 COFF setting, in such case long mode code is generated by default.
    section directive defines a new section, it should be followed by quoted string defining the name of section, then one or more section flags can follow. Section flags available for both COFF variants are code and data, while flags readable, writeable, executable, shareable, discardable, notpageable, linkremove and linkinfo are available only with Microsoft's COFF variant.
    By default section is aligned to double word (four bytes), in case of Microsoft COFF variant other alignment can be specified by providing the align operator followed by alignment value (any power of two up to 8192) among the section flags.
    extrn directive defines the external symbol, it should be followed by the name of symbol and optionally the size operator specifying the size of data labeled by this symbol. The name of symbol can be also preceded by quoted string containing name of the external symbol and the as operator. Some example declarations of external symbols:
    extrn exit
    extrn '__imp__MessageBoxA@16' as MessageBox:dword


    public directive declares the existing symbol as public, it should be followed by the name of symbol, optionally it can be followed by the as operator and the quoted string containing name under which symbol should be available as public. Some examples of public symbols declarations:
    public main
    public start as '_start'

    Additionally, with COFF format it's possible to specify exported symbol as static, it's done by preceding the name of symbol with the static keyword.
    When using the Microsoft's COFF format, the rva operator can be used inside the numerical expressions to obtain the RVA of the item addressed by the value it is applied to.