Работа с буфером.

Тема в разделе "WASM.WIN32", создана пользователем WaterGhost, 23 июн 2007.

  1. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    У функции
    Код (Text):
    1. NTSTATUS NewNtWriteVirtualMemory (
    2.     IN HANDLE ProcessHandle,
    3.     IN PVOID BaseAddress,
    4.     IN PVOID Buffer,
    5.     IN ULONG BufferLength,
    6.     OUT PULONG ReturnLength OPTIONAL
    7.     )
    Есть параметр IN PVOID Buffer... Мне необходимо произвести поиск по нему как по строке, определенной подстроки, например "qwerty". Не подскажете как это сделать ? Перепробовал все... всегда получаю БСОД =\
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    strstr ?
    только есесно в блоке try/except (хотя от ошибки страницы в неподкачиваемой области это не спасет).
    Телепатов пока что нету... !analyze -v и сюды
     
  3. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    StrStr работает. Но дело в том что строка QweRty может быть написана в разных регистрах... поэтому я привожу искомую подстрокуи и строку где нада ее найти в верхний регистр. Но если это сделать, то содержимое буффера измениться, что приведет к БСОДУ. Не подскажете как это исправить ? =\ Как привести к верхнму регистру, не меняя содержимое буффера?

    StriStr не работает... она не определена =\
     
  4. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    WaterGhost

    Код обработчика где?
    А вообще, судя по всему, не то, не там и не так переводим.
     
  5. shinkevichdmitry

    shinkevichdmitry New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    13
    Если про буфер,может подскажите как выделить большой объём?
    Или как после GlobalLock обратится к памяти как к данным,т.е.
    сделать изменения.
     
  6. Турецкий

    Турецкий New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2006
    Сообщения:
    10
    GlobalLock возвращает адрес участка памяти. Обращайся как хочешь.
    Только GlobalUnlock сделать не забудь
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    shinkevichdmitry
    http://www.wasm.ru/forum/viewtopic.php?pid=167377#p167377
    http://www.wasm.ru/comment.php?artcode=1001012
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А нафига ты редактируешь буфер, где ты ищешь данные?)
     
  9. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    дада. тогда уж легче strcpy(lpBuffer,"qwerty")
    но дело в том, что строковые функции работают с null-terminated строками, а в буфере перед твоей строкой может быть что угодно, включая нолеги. также в буфере могут вобще отсутствовать нули или размер буфера всего 1 байт, а ты там будешь искать подстроку в 10 байт..
    такой ф-ии нету. есть StrStrI, но она вроде как отсуцтвует в ядре :dntknw:
     
  10. shinkevichdmitry

    shinkevichdmitry New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    13
    Я конечно всё понимаю,только возвращается указатель на блок.
    Можно сделать на него переход jmp или call.
    Но как сделать пересылку данных без API командой mov или другими,
    как если бы это был массив из неинициализированных данных
    .data ?
    buffer db 65536 dup (?)
    .code
    start:
    mov [buffer],5

    C pMemory так изменится указатель
     
  11. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    shinkevichdmitry
    mov edi, [pMemory]
    mov byte ptr [edi], 5
    только лучше задавай такие вопросы в разделе бегиннерсов а то интересная тут каша получается кернел + бегиннерс = вин32 :))
     
  12. shinkevichdmitry

    shinkevichdmitry New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    13
    Спасибо,не знал этих нюансов адресации.