Плагин для Windbg не дизасмит

Тема в разделе "WASM.RESEARCH", создана пользователем xssww2, 4 июл 2011.

  1. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    Написал код
    Память читает, а при попытки дизасмить тотже участок или возвращяет что все ок, но в выходной буфер ниче не пишет (в случае с адресом: 400000h)
    либо Access Violation в отладчике при чтении с: eip отлаживаемой проги (отлаживаеца 32-й код под 64-ым отладчиком)
    при этом отладчик пытаеца записать по адресу который я дизасмю: 7766cb60 код, который я хочу дизасмить: c338c4834800ebcc
    00000000`71657426 mov qword ptr [rcx],rax ds:00000000`7766cb60=c338c4834800ebcc

    В чем может быть проблема?

    а ну да все дело происходит в DebugExtensionInitialize

    Код (Text):
    1.                  
    2. Читаю память
    3.             xor r9,r9
    4.             mov r8,10h
    5.             mov rdx,pntrTempBuffer
    6.             mov rcx,400000h
    7.             mov rax,pntrWindbgExtensionAPIS64
    8.             call    [rax+strcWindbgExtensionAPIS64.pntrReadProcessMemoryRoutine]
    9.  
    10. Пытаюсь дизасмить
    11.             mov r8,1
    12.             mov rdx,pntrTempBuffer
    13.             mov rcx,400000h
    14.             mov rax,pntrWindbgExtensionAPIS64
    15.             call    [rax+strcWindbgExtensionAPIS64.pntrDisasmRoutine]
    16.  
    17. struc WINDBG_EXTENSION_APIS64
    18. ;Structure: WINDBG_EXTENSION_APIS64
    19. {
    20. .dqSize             dq  ?
    21. .pntrOutputRoutine      dq  ?
    22. .pntrGetExpressionRoutine   dq  ?
    23. .pntrGetSymbolRoutine       dq  ?
    24. .pntrDisasmRoutine      dq  ?
    25. .pntrCheckControlCRoutine   dq  ?
    26. .pntrReadProcessMemoryRoutine   dq  ?
    27. .pntrWriteProcessMemoryRoutine  dq  ?
    28. .pntrGetThreadContextRoutine    dq  ?
    29. .pntrSetThreadContextRoutine    dq  ?
    30. .pntrIoctlRoutine                  dq   ?
    31. .pntrStackTraceRoutine      dq  ?
    32. }
    33. virtual at 0
    34. strcWindbgExtensionAPIS64   WINDBG_EXTENSION_APIS64
    35. @StrcstrcWindbgExtensionAPIS64Size  =   ($ - strcWindbgExtensionAPIS64)
    36. end virtual
     
  2. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    так и не выяснил, возможно потомучто использовал расширение WdbgExts в cdb.exe

    Сделал через IDebugControl::lol: isassemble
     
  3. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Сам что-ли инклюд делал?
    Если самодельный то со смещениями быть может промах.
     
  4. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    IDebugControl::Execute(DEBUG_OUTCTL_ALL_CLIENTS, "u address", DEBUG_EXECUTE_ECHO);
    Что в Outputcallback ?
     
  5. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    структуру брал из MSDN, промаха быть не может - чтение памяти работает
     
  6. xssww2

    xssww2 New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2009
    Сообщения:
    84
    мне нужен был дизасм в выходной буфер своей проги, с Outputcallback не заморачивался
    IDebugControl::Execute более тяжеловесный метод для дизасма, по сравнению с IDebugControl::lol: isassemble