Привет. Дизассмеблировал дллку под Windows Mobile. Там вот такой код: Код (Text): var_C= -0xC STMFD SP!, {R4,LR} SUB SP, SP, #4 CMP R1, #0 MOV R4, R0 LDR R0, [R4,#4] MOVNE R3, #0x1A MOVEQ R3, #0x1B MOV R2, #4 ADD R1, SP, #0xC+var_C STR R3, [SP,#0xC+var_C] BL RIL_DevSpecific AND R3, R0, #0x80000000 CMP R3, #0x80000000 MOVEQ R3, #0 STR R0, [R4,#0x40] STREQ R3, [R4,#0x40] MOVEQ R0, #0 ADDEQ SP, SP, #4 MOVNE R0, #1 ADDNE SP, SP, #4 LDMFD SP!, {R4,PC} Скопировал из IDA. Меня интересует какие параметры посылаются в функцию RIL_DevSpecific ,особенно второй. Синтаксис функции(MSDN):
Chikanok ARM? Параметры R0=hRil, R1=lpbParams, R2=dwSize, остальные будут дефолтные (видимо в самой вызываемой функции). В lpbParams записывается регистр R3, который в зависимости от параметра R1(=0) приведенной функции будет равен 0x1A или 0x1B. Вроде так.
lpbParams указывает на DWORD (4 байта) туда записывается либо 0x1B либо 0x1A, в зависимости от второго аргумента функции, откуда вызывается RIL_DevSpecific. это подтверждает рамер в R2 = 4 байта. Скорей всего RIL_DevSpecific экспортируется, как C++ функция с искаженным именем. (реализация параметров по умолчанию)