FASM to MASM libapi

Тема в разделе "WASM.WIN32", создана пользователем calidus, 21 ноя 2007.

  1. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    В приложении лежит диба известная думаю многим , хочу перевести все на МАСМ один раз уже пробовал 2 недели и куча ошибок ...задолбался и удалил. Почему на МАСМ ??? потому что не люблю ФАСМ , дайте по возможности советы как переводить лучше. Спасибо =)
     
  2. Nata

    Nata New Member

    Публикаций:
    0
    Регистрация:
    23 фев 2006
    Сообщения:
    41
    А шо такое!Любиш,не любиш,это всё лирика!Если хочеш перевести,то синтаксис надобно изучить!
    Найди несколько отличий!Возьми два похожих исходника,один масм,другой фасм и сам всё поймёш!
     
  3. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap:none
    4. includelib el-getapi.lib
    5. include c:\masm32\include\windows.inc
    6. ;includelib c:\masm32\lib\user32.lib
    7. ;includelib c:\masm32\lib\comctl32.lib
    8.  ;  include c:\masm32\include\user32.inc
    9.   ; include c:\masm32\include\kernel32.inc
    10.    ;includelib c:\masm32\lib\kernel32.lib
    11.    ;include c:\masm32\include\comctl32.inc
    12. ;includelib c:\masm32\lib\wsock32.lib
    13. ;include c:\masm32\include\wsock32.inc
    14.  ;  include c:\masm32\include\gdi32.inc
    15.   ; includelib c:\masm32\lib\gdi32.lib
    16.    ;include c:\masm32\include\shell32.inc
    17.   ; includelib c:\masm32\lib\shell32.lib
    18.   ; includelib c:\masm32\lib\ws2_32.lib
    19.   ; includelib c:\masm32\lib\advapi32.lib
    20.   ; include c:\masm32\include\advapi32.inc
    21.  
    22. extern _elgetapicrc@4:near
    23. extern _elprocaddr@8:near
    24. extern _elgetapigmh@8:near
    25. extern _elgetapis@4:near
    26.  
    27. ;WIPECLEAR PROTO DEST:DWORD
    28.  ;#############################################################
    29.  GETAPI STRUCT
    30.     pszModuleName   dd  ?
    31.     pApiCrcArray    dd  ?
    32.     pApiStruct  dd  ?
    33. GETAPI ends
    34.  
    35. ; структура для удобного вызова api
    36. APIS STRUCT
    37.     pZwClose        dd  ?
    38.     pZwOpenThread       dd  ?
    39.     pZwOpenProcess      dd  ?
    40.     pZwResumeThread     dd  ?
    41.     pZwSuspendThread    dd  ?
    42.     pMessageBox     dd  ?
    43. APIS ends
    44. pdwNtCrcApi STRUCT
    45. dd  0180c0d23h  ; ZwClose
    46.             dd 0215eddfbh   ; ZwOpenThread
    47.             dd 0d8d39f09h   ; ZwOpenProcess
    48.             dd 0a0a76acbh   ; ZwResumeThread
    49.             dd 003e569f5h   ; ZwSuspendThread
    50.             dd 000000000h   ; конец crc массива для ntdll.dll
    51. pdwNtCrcApi ENDS
    52.  
    53. pdwUsrCrcApi STRUCT
    54.             pMessageBoxf    dd  0572d5d8eh  ; MessageBoxA
    55.                            dd   000000000h  ; конец crc массива для user32.dll
    56. pdwUsrCrcApi ENDS
    57.  
    58. pdwNtApiStruct  STRUCT
    59.       pMessageBoxf  dd  0       ; массив под адреса api для ntdll.dll
    60.         dd  0
    61.         dd  0
    62.         dd  0
    63.         dd  0
    64. ;pdwUsrApiStruct:
    65.         dd  0       ; массив под адреса апи для м
    66.  pdwNtApiStruct ENDS
    67.  
    68. .const
    69.  
    70. ;==================================================
    71. .data
    72. pdwNt pdwNtCrcApi <>
    73. pdwUsr pdwUsrCrcApi <>
    74. pdwNtApi pdwNtApiStruct <>
    75. GETAPIS GETAPI <>
    76. APII APIS <>
    77. szThisAll   db  'на этом все!',0
    78. szByEl      db  'getapi by el-',0
    79. pszNt       db  'ntdll.dll',0
    80. pszUsr      db  'user32.dll',0
    81. .data?
    82.  
    83.  
    84. .code
    85. start:
    86.  
    87.  
    88.     ; указаетль на имя модуля
    89. lea eax,offset pszUsr
    90. mov GETAPIS.pszModuleName,eax
    91.     ; указатель на crc массив
    92.     lea eax,offset pdwUsr.pMessageBoxf
    93.     mov GETAPIS.pApiCrcArray,eax
    94.     ; указатель на массив для адресов api
    95.     lea eax,offset pdwNtApi.pMessageBoxf
    96.     mov GETAPIS.pApiStruct,eax
    97.     ; теперь тоже самое только для user32.dll
    98.    
    99.     ;mov    [edi+sizeof.GETAPI+GETAPI.pszModuleName],pszUsr
    100.     ;mov    [edi+sizeof.GETAPI+GETAPI.pApiCrcArray],pdwUsrCrcApi
    101.     ;mov    [edi+sizeof.GETAPI+GETAPI.pApiStruct],pdwUsrApiStruct
    102.     lea eax,GETAPIS.pszModuleName
    103. push eax
    104.     call    _elgetapis@4
    105.     ; ставим указатель на массив с только что получеными адресами api
    106. ;   mov eax,[esi+APIS.pMessageBox]
    107. ;   stdcall eax,0,szThisAll,szByEl,0
    108. ;   leave
    109.     ret
    110. end start
    легко сказатаь я обычно в крайних случаях на форум обращаюсь ... Пробовал либу подключить но не выходит , видимо либы для фасма не подходят к масм или ?