Пропатчить бинарник.

Тема в разделе "WASM.BEGINNERS", создана пользователем SmanxX1, 21 авг 2008.

  1. SmanxX1

    SmanxX1 Member

    Публикаций:
    0
    Вобщем в дллке нужо заменить флоат переменную на свою, пропатчить одним словом.
    Где находиться переменная -- известно, искать не надо.
    Использую CreateFile, SetFilePointer, WriteFile, только что-то все не выходит, то все что после переменной стираеться, то еще что...
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Код (Text):
    1.      LOACAL Wrd:DWORD
    2.      invoke CreateFile, ADDR szBuf1, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, NULL, NULL
    3.      mov esi, eax
    4.      invoke lstrlen, addr szBuf
    5.      invoke SetFilePointer, esi, POS, NULL, NULL
    6.      invoke WriteFile, esi, ADDR szBuf, edi, addr Wrt, NULL
    7.      invoke CloseHandle, esi
    szBuf1 - имя файла
    szBuf - буфер со значением, которым нужно заменить, размер буфера должен соответствовать размеру переменной в файле для патча, для float если я не ошибаюсь, это 8 байт
    POS - смещение, по которому нужно патчить

    Сорри за оффтоп:
    может push 010DC6637h ?
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    оффтоп: fastcall?)
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    offtop
    RamMerLabs
    Надеемсо увидеть NtQueryVirtualMemory(MemorySectionName) :)
     
  5. SmanxX1

    SmanxX1 Member

    Публикаций:
    0
    RamMerLabs
    Спасибо.
    Ошибаешся, она 4 байта.
    Неа, mov eax, 010DC6637h красивше, fastcall ;)