Вывести codesegment

Тема в разделе "WASM.WIN32", создана пользователем Freecod, 8 фев 2007.

  1. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Нужно составить программу, которая бы читала и выводила на экран содержимое своего кодового сегмента. Прочитать и вывести в принципе не проблема, но именно .code, будем считать что он первый сегмент... Может кто-нибудь подскажет "в картинках", т.е. исходных кодах?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А в чем проблема то возникает, собственно? Получаешь RVA секции кода из таблицы секций и вперед.
    Или за тебя надо программу написать?
     
  3. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Нет, написать я сам могу, а вот конкретно - получить startaddr секции и её размер.
     
  4. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Код (Text):
    1. ; ebx - start of image
    2. mov  eax, [ebx + 3Ch]
    3. add  eax, ebx        ; NTHeaders
    4. movzx  ecx, word ptr [eax + 6]       ; SectionsCount
    5. mov  edx, [eax + 74h]    ; DirectoriesCount
    6. lea  eax, [eax + 78h + edx * 4]    ; start of Sections
    7. sect_loop:
    8.   cmp  [eax], 00000h        ; here must be '.tex' code
    9.   loop sect_loop
    10.   jmp  exit
    11.  
    12. ; in eax target SectionHeader
    13. ; [eax + 8] - VirtualSize
    14. ; [eax + 0Ch] - RVA (it is for image mapped to memory)
    15. ; [eax + 20] - PointerToRawData (RVA for on-disk image)
     
  5. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Отлично, спасибо, очень помогли.
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    какой интерес в задаче, когда все уже подсказали?
     
  7. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    А кто сказал что задача интересна ;)? Я написан "нужно"
     
  8. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Хм.. Чего-то я туплю. До кучи - создаём примитив с RichEdit20A - ну там окно, потом CrWinEx с классом RichEdit. А вот почему в окне теперь не пашет .elseif uMsg==WM_RBUTTONDOWN не пойму. WM_CLOSE работает на ок. Я так понимаю Richedit хватает это на себя, как-бы это обойти?
     
  9. MikDay

    MikDay New Member

    Публикаций:
    0
    Регистрация:
    5 май 2005
    Сообщения:
    32
    Адрес:
    Minsk
    Для обработки WM_RBUTTONDOWN нужно использовать subclassing,
    т.е. получить на себя оконную процедуру
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    WM_RBUTTONDOWN не пашет так на контроле, или на остальном окне?