+ Reply to Thread
Page 2 of 2 FirstFirst 1 2
Results 21 to 26 of 26

Thread: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

  1. #21

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    Подскажите, как в скрипте сделать то, что делается на скринштоте (выбирается пункт контекстного меню USCIAB1TX_VECTOR, горячая клавиша O):
    Last edited by d7d1cd; 26-08-2017 at 19:35.

  2. #22

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    Вроде что-то нашел. Мне необходимо использовать функцию OpOffset. Она требует 2 параметра. Первый - это адрес. Тут все ясно. А вот вторым параметром, который называется base, я не знаю что ставить. Пробовал 0, -1, значение первого параметра, но результат один и тот же: вместо того чтобы заменить адрес функции на ее имя, там где уже проставлено имя функции, оно меняется на ее адрес. Что ставить во втором параметре?

  3. #23

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    Не знаю как в IDA Python, а в IDC OpOffset это макрос для совместимости который фактически вызывает встроенную функцию OpOff с тремя параметрами
    #define OpOffset(ea, base) OpOff(ea,-1,base)

    А в описании к ней все понятно, хотя БАЗА она и есть БАЗА если речь идет о смещении (быстро все привыкли к плоской модели памяти) :)
    // Convert operand to an offset
    // ea - linear address
    // n - number of operand
    // 0 - the first operand
    // 1 - the second, third and all other operands
    // -1 - all operands
    // base - base of the offset as a linear address
    // If base == BADADDR then the current operand becomes non-offset
    // Example:
    // seg000:2000 dw 1234h
    // and there is a segment at paragraph 0x1000 and there is a data item
    // within the segment at 0x1234:
    // seg000:1234 MyString db 'Hello, world!',0
    // Then you need to specify a linear address of the segment base to
    // create a proper offset:
    // OpOff(MK_FP("seg000",0x2000),0,0x10000);
    // and you will have:
    // seg000:2000 dw offset MyString

    success OpOff (long ea, int n, long base);

  4. #24

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    OKOB тогда подскажите, как правильно вызвать функцию?

  5. #25

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    Во первых, не понятно, что у вас установлено в ИДА, что перекрываются стандартные пункты меню USCIAB1TX_VECTOR.

    А, во вторых, не понятно в чем у вас проблема, т.к. не понятно какая среда, какая модель памяти, какая система адресации. Я в своих проектах вообще использую OpOffEx, где 6 параметров и можно к любому режиму приладить.
    Вот мультик про использование OpOff на плоской модели памяти архитектуры х86 (2й операнд, n = 1, плоская модель, база = 0).
    Project001.rar
    Last edited by OKOB; 28-08-2017 at 11:27.

  6. Пользователь сказал cпасибо:
    d7d1cd (28-08-2017)
  7. #26

    Default Re: IDA 6.8. Ошибка в скрипте MSP430.py. Часть 2

    OKOB, спасибо. Я взял функцию OpOff и вторым и третьим параметром задал 0. Все получилось.
    В IDA у меня ничего не установлено. Просто по адресу 2EE2 (см. скриншот) находится функция с именем USCIAB1TX_VECTOR. Поэтому IDA и предлагает сделать Offset (data segment).

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 22:42
vBulletin® Copyright ©2000 - 2017
www.reverse4you.org