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

Discussion in 'WASM.BEGINNERS' started by SmanxX1, Aug 21, 2008.

  1. SmanxX1

    SmanxX1 Member

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

    RamMerLabs Well-Known Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    1,426
    Code (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

    Blog Posts:
    0
    Joined:
    Mar 29, 2008
    Messages:
    1,775
    оффтоп: fastcall?)
     
  4. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    offtop
    RamMerLabs
    Надеемсо увидеть NtQueryVirtualMemory(MemorySectionName) :)
     
  5. SmanxX1

    SmanxX1 Member

    Blog Posts:
    0
    Joined:
    Jun 18, 2008
    Messages:
    139
    RamMerLabs
    Спасибо.
    Ошибаешся, она 4 байта.
    Неа, mov eax, 010DC6637h красивше, fastcall ;)