Сравнение строк

Тема в разделе "WASM.BEGINNERS", создана пользователем ukrlanser, 31 май 2010.

  1. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    ukrlanser
    Какое значение возвращается из CreateFile(), что передаётся в CloseHandle() и к чему это приводит ?
     
  2. ukrlanser

    ukrlanser New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2008
    Сообщения:
    22
    Опа! Внимательно прогнав прогу под Олькой, заметил (брейк на 00401324):

    004012BB >/$ 68 81114000 PUSH BEER.00401181 ; /pFindFileData = BEER.00401181
    004012C0 |. 68 62114000 PUSH BEER.00401162 ; |FileName = "*.exe"
    004012C5 |. FF15 3C104000 CALL DWORD PTR DS:[<&kernel32.FindFirstF>; \FindFirstFileA
    004012CB |. 68 68114000 PUSH BEER.00401168 ; ASCII "BEER.EXE"
    004012D0 |. 5E POP ESI
    004012D1 |. 68 AD114000 PUSH BEER.004011AD ; ASCII "aaa.exe"
    004012D6 |. 5F POP EDI
    004012D7 |. 83C9 FF OR ECX,FFFFFFFF
    004012DA |> AC /LODS BYTE PTR DS:[ESI]
    004012DB |. 84C0 |TEST AL,AL
    004012DD |. 74 51 |JE SHORT BEER.00401330
    004012DF |. 3A07 |CMP AL,BYTE PTR DS:[EDI]
    004012E1 |. 75 03 |JNZ SHORT BEER.004012E6
    004012E3 |. 47 |INC EDI
    004012E4 |.^E2 F4 \LOOPD SHORT BEER.004012DA
    004012E6 |> 6A 00 PUSH 0 ; /hTemplateFile = NULL
    004012E8 |. 6A 00 PUSH 0 ; |Attributes = 0
    004012EA |. 6A 03 PUSH 3 ; |Mode = OPEN_EXISTING
    004012EC |. 6A 00 PUSH 0 ; |pSecurity = NULL
    004012EE |. 6A 03 PUSH 3 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
    004012F0 |. 68 000000C0 PUSH C0000000 ; |Access = GENERIC_READ|GENERIC_WRITE
    004012F5 |. 68 AD114000 PUSH BEER.004011AD ; |FileName = "aaa.exe"
    004012FA |. FF15 44104000 CALL DWORD PTR DS:[<&kernel32.CreateFile>; \CreateFileA
    00401300 |. 83F8 FF CMP EAX,-1
    00401303 |. 74 2B JE SHORT BEER.00401330
    00401305 |. A3 7D114000 MOV DWORD PTR DS:[40117D],EAX
    0040130A |. 6A 00 PUSH 0 ; /pOverlapped = NULL
    0040130C |. 68 7C114000 PUSH BEER.0040117C ; |pBytesWritten = BEER.0040117C
    00401311 |. 6A 0A PUSH 0A ; |nBytesToWrite = A (10.)
    00401313 |. 68 71114000 PUSH BEER.00401171 ; |Buffer = BEER.00401171
    00401318 |. FF35 7D114000 PUSH DWORD PTR DS:[40117D] ; |hFile = NULL
    0040131E |. FF15 48104000 CALL DWORD PTR DS:[<&kernel32.WriteFile>>; \WriteFile
    00401324 |. FF35 7D114000 PUSH DWORD PTR DS:[40117D] ; /hObject = NULL
    0040132A |. FF15 4C104000 CALL DWORD PTR DS:[<&kernel32.CloseHandl>; \CloseHandle
    00401330 |> 6A 00 PUSH 0 ; /ExitCode = 0
    00401332 \. FF15 40104000 CALL DWORD PTR DS:[<&kernel32.ExitProces>; \ExitProcess

    А объект-то NULL! Вот где собака порылась! Да только я не понял, почему запись в файл происходит нормально, без ошибок, а дальше такой гимор?????????
     
  3. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    А кто для Trojan_len один байт выделил? Вот старшие байтики хэндл и трут.