Исследование Mathcad

Тема в разделе "WASM.RESEARCH", создана пользователем uni, 17 авг 2005.

  1. uni

    uni New Member

    Публикаций:
    0
    Регистрация:
    23 май 2005
    Сообщения:
    67
    Доброго, уважаемые.



    Слыхали навереное про такой математический транслятор. Вещь интересная для определённого круга специалистов. Не мог бы кто-нить из участников, кому это покажется интересным и не трудным, помочь мне в одном деле. Я хочу добраться до текущих активных переменных рабочего листа (документа) Mathcad. В Matlab'е к примеру такие переменные отображаются в спец окне и вы всегда можете просмотреть их содержимое. Вот и я хочу просмотреть в своей программе (не рабочем листе) текущие переменные конкретного рабочего листа. Покажите путь, который надо пройти, чтобы хотя бы до содержимого одной переменной добраться. Остальное я попродую одолеть сам. У меня мало опыта, кое-что я умею:

    http://www.exponenta.ru/forum/viewtopic.asp?t=1583



    Заранее спасибо хоть за совет какой.

    [​IMG] _1744059568__
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Слыхали, но не видели ... запусти отладчик ollydbg, в нем F3 и выбери аля mathcad.exe, после загрузки запуск (F9) и работай как обычно, как узнаешь какую переменную нужно искать - нажимай Alt+M и Ctrl+B для её поиска, в дальнейшем анализ участков с найденными значениями, техника breakpoint и выход на ф-ции Mathcad с целью их перехвата из своей программы :)
     
  3. uni

    uni New Member

    Публикаций:
    0
    Регистрация:
    23 май 2005
    Сообщения:
    67
    Спасибо за вариант. Буду пробовать.



    P.S. Попробовал :) Инструмент тот. Кушает ресурсов только много для моей слабой машины. Осталось _догадаться_ о полях недокументированных структур. Как-нить разберусь.
     
  4. uni

    uni New Member

    Публикаций:
    0
    Регистрация:
    23 май 2005
    Сообщения:
    67
    bogrus



    Где почитать о использовании этого отладчика? Я смотрю тут много всяких руководств на сайте. Может вы подскажите наиболее достойные, где например техника перехвата функций описана. Я так понимаю мне нужно ловить функции, параметрами которых являются: имя переменной, значение переменной.
     
  5. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    ollydbg много ресурсов кушает? попробуй убери все кроме ollydbg.exe из его папки







    х<sup>з</sup> :) сперва найти есть ли твои переменные вообще, отследить их изменения, определить структуру хранения переменных, привязана ли структура к адресам, будут ли там данные на момент запроса\чтения\перехвата из твоей проги, попадают ли на вход какой-то ф-ции, экспортируема ли эта ф-ция и т.д., от всего этого зависит какую методику выбрать и что читать



    Потренируйся с отладчиком на такой программе:
    Код (Text):
    1. ;=====================================================================
    2. struct      variables                                      ; структура
    3.       variable1    dd 0
    4.       variable2    dd 0
    5.       variable3    dd 0
    6.       variable4    dd 0
    7.       variable5    dd 0
    8. ends
    9. vars        variables
    10. ;=====================================================================
    11. proc        function,a,b,c,d,e                           ; код функции
    12.             mov     eax,[a]
    13.             mov     eax,[b]
    14.             mov     eax,[c]
    15.             mov     eax,[d]
    16.             mov     eax,[e]
    17.             ret
    18. endp
    19. ;=====================================================================
    20.             mov     [vars.variable3],0xdead0000         ; действия над
    21.             add     [vars.variable3],0x0000c0de         ;  переменными
    22. ;=====================================================================
    23.             stdcall function,\                           ; вызов ф-ции
    24.                     [vars.variable1],\
    25.                     [vars.variable2],\
    26.                     [vars.variable3],\
    27.                     [vars.variable4],\
    28.                     [vars.variable5]
    29. ;=====================================================================
    30.             mov     [vars.variable3],0                  ; действия над
    31.             add     [vars.variable3],0                  ;  переменными
    32. ;=====================================================================
    Здесь данные гарантировано будут в структуре только на момент вызова ф-ции, что нажимать в отладчике я написал, учти - предполагаемое значение 3735929054, может хранится в шестнадцатеричном виде (0xDEADC0DE) и Little Endian порядке (0xDEC0ADDE)

    [​IMG] _878479102__test.zip