Помогите понять что уходит параметром в функцию.

Тема в разделе "WASM.RESEARCH", создана пользователем Chikanok, 1 ноя 2007.

  1. Chikanok

    Chikanok New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2007
    Сообщения:
    57
    Привет.
    Дизассмеблировал дллку под Windows Mobile.
    Там вот такой код:
    Код (Text):
    1. var_C= -0xC
    2.  
    3. STMFD   SP!, {R4,LR}
    4. SUB     SP, SP, #4
    5. CMP     R1, #0
    6. MOV     R4, R0
    7. LDR     R0, [R4,#4]
    8. MOVNE   R3, #0x1A
    9. MOVEQ   R3, #0x1B
    10. MOV     R2, #4
    11. ADD     R1, SP, #0xC+var_C
    12. STR     R3, [SP,#0xC+var_C]
    13. BL      RIL_DevSpecific
    14. AND     R3, R0, #0x80000000
    15. CMP     R3, #0x80000000
    16. MOVEQ   R3, #0
    17. STR     R0, [R4,#0x40]
    18. STREQ   R3, [R4,#0x40]
    19. MOVEQ   R0, #0
    20. ADDEQ   SP, SP, #4
    21. MOVNE   R0, #1
    22. ADDNE   SP, SP, #4
    23. LDMFD   SP!, {R4,PC}
    Скопировал из IDA.
    Меня интересует какие параметры посылаются в функцию RIL_DevSpecific ,особенно второй.
    Синтаксис функции(MSDN):
     
  2. Chikanok

    Chikanok New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2007
    Сообщения:
    57
    Это RilService.dll из проги Navizon.
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Chikanok
    ARM?
    Параметры R0=hRil, R1=lpbParams, R2=dwSize, остальные будут дефолтные (видимо в самой вызываемой функции). В lpbParams записывается регистр R3, который в зависимости от параметра R1(=0) приведенной функции будет равен 0x1A или 0x1B. Вроде так.
     
  4. CnCVK

    CnCVK New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    108
    lpbParams указывает на DWORD (4 байта)
    туда записывается либо 0x1B либо 0x1A, в зависимости от второго аргумента функции, откуда вызывается RIL_DevSpecific.
    это подтверждает рамер в R2 = 4 байта.
    Скорей всего RIL_DevSpecific экспортируется, как C++ функция с искаженным именем.
    (реализация параметров по умолчанию)
     
  5. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    CnCVK
    Ну да, об этом говорит инструкция:
    Код (Text):
    1. ADD     R1, SP, #0xC+var_C
    (R1 = &var_C).