почему ошибка после WriteConsole? подскажите

Тема в разделе "WASM.WIN32", создана пользователем test896, 2 май 2009.

  1. test896

    test896 New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2009
    Сообщения:
    132
    Привет! Всем!
    вот мой исходник

    format PE CONSOLE
    entry start
    include 'c:\fasm\include\win32a.inc'

    section '.data' data readable writable
    SIZE_PUTH DD 0
    DESK DD 0
    COMMAND_STRING DD 0
    SIZE_OUT DD 0
    STRING_FILE DD 0
    CONSOLE_WRITE EQU -11
    CONSOLE_READ EQU -10
    CONSOLE_WRITE_ DD 0
    CONSOLE_READ_ DD 0
    HANDLE DD 0
    PUTH DB 260 DUP (0)
    BUF DB 4096 DUP (0)

    section '.code' code readable executable

    start:
    invoke GetStdHandle, CONSOLE_WRITE
    MOV [CONSOLE_WRITE_],EAX

    invoke GetStdHandle, CONSOLE_READ
    MOV [CONSOLE_READ_],EAX

    invoke GetCommandLine
    MOV [COMMAND_STRING],EAX

    MOV ESI,[COMMAND_STRING]
    MOV EDI,PUTH

    CICL:
    MOV AL,[ESI]
    CMP AL,20h
    JNE UKAZ
    MOV [STRING_FILE],ESI
    UKAZ:
    CMP AL,0
    JE TEST_NULL

    MOV [EDI],AL
    INC ESI
    INC EDI
    INC [SIZE_PUTH]
    JMP CICL

    TEST_NULL:
    MOV [EDI],AL
    INC [SIZE_PUTH]

    invoke WriteConsole, [CONSOLE_WRITE_], PUTH, [SIZE_PUTH], [SIZE_OUT], 0

    mov eax,[SIZE_PUTH]
    mov eax,[SIZE_OUT]

    exit:
    invoke ExitProcess, 0


    section '.idata' import data readable writeable
    library kernel32,'KERNEL32.DLL'
    include 'c:\fasm\include\api\kernel32.inc'



    под OllyDBG после функции WriteConsole появляется ошибка Error invalid Acess 0ch
    но все работает,
    подскажите почему
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    тут вроде бы [SIZE_OUT] надо заменить на addr size_out - почитай описание в мсдн
     
  3. test896

    test896 New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2009
    Сообщения:
    132
    так не компилируется FASMом
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ну тогда без квадратных скобок - ведь нужен адрес переменной для хранения возвращаемого размера, а не сама переменная
     
  5. test896

    test896 New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2009
    Сообщения:
    132
    спасибо, проверил ошибки нет,
    все время путую надо скопки или нет
     
  6. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    вот именно поэтому надо сидеть в масме - там все четко и прямолинейно. А фасм для тех, кто любит ломать мозг.
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    наоборот :)
    В фасме всё просто и понятно и не надо думать то ли addr то ли offset то ли вообще ничего не ставить.
     
  8. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    в фасме все так, как ты это увидишь в отладчике. (есле не использовать кучу макросов).
     
  9. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    а чего ж ТС запутался? А вот в масме указал словами, что это адрес, и голова не болит. А впрочем, это уже холивар и никакого отношения к тебе он не имеет