WriteProcessMemory

Тема в разделе "WASM.BEGINNERS", создана пользователем BadLogin, 19 май 2009.

  1. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    Код (Text):
    1.   char* hNewModule = (char*)VirtualAllocEx(hProc,hModule,size,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
    2.   if(hNewModule==NULL) ErrorExit();
    3.   if (!WriteProcessMemory(hProc,hNewModule,hModule,size,&ByteOfWriten)) ErrorExit();
    Как мне в данном примере избавится от VirtualAllocEx

    базу я смещаю -> "0x13140000"
    #pragma comment(linker,"/BASE:0x13140000")

    В тупую не работает =(
    WriteProcessMemory(hProc,0x13140000,hModule,size,&ByteOfWriten)
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    что не работает? виртуал аллок?
    есть исчо секции NtCreateSection/NtMapViewOfSection
     
  3. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    нет-нет ... мне просто нужно НЕ выделять новый сегмент, а просто изменить существующий сегмент кода.
     
  4. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    а ошибки хоть какие?
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    BadLogin
    Сервис NtWriteVirtualMemory пишет в память по указанному смещению в сегменте с нулевой базой.
    Вообще кодер который использует винапи ничего не должен знать про существование сегментации и пр. Иначе это введёт в заблуждение, ибо винапи предпологают мышление соответствующие.
     
  6. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    BigGreen
    Ошибок нет ... просто не то немного делается

    Clerk
    А если у сегмента свойства RX, а не RWX
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Как это нет, в чёмже тогда проблема, или может вы не видите её.. могу предположить что ожидается знаменитое окно с отправкой отчёта в мс. - такого не будет. TEB.LastStatusValue там код ошибки.
    NtProtectVirtualMemory чтобы атрибуты страниц изменить, разрешив запись. Та апи её юзает, если возвратит ошибку то записать не получится.
    Не известно что за циферки, база базой, но модуль может быть где угодно в памяти. Переменные не известны. Может хэндл процесса не валидный, или число записываемых байт, или адрес..
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    VirtualProtectEx()
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Clerk
    Да какие сегменты, он видать просто блок страниц имел в виду
    Че ж тебя все так на аппаратуру то тянет, когда ей и не пахнет
     
  10. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    Great
    скорее всего да =) я не знаю как что называется ... изучаю вопрос от практики =)
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    BadLogin
    а ты напиши что тебе надо в конечном итоге. кофейной гущей для гадания нас тут не спонсируют)
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great