为什么 IDA 将此标记为功能结束?

逆向工程 艾达 手臂 职能
2021-06-25 06:47:17

我正在分析一个 .so 文件,它是一个 android 应用程序的一部分。我偶然发现了这段代码:

LOAD:0001B63C sub_1B63C                               ; CODE XREF: sub_1B628+Cp
LOAD:0001B63C                 PUSH            {R0-R6,LR}
LOAD:0001B63E                 PUSH            {R0-R6,LR}
LOAD:0001B640                 MOVS            R6, #4
LOAD:0001B642                 MOVS            R1, #2
LOAD:0001B644                 MOV             R0, SP
LOAD:0001B646                 ADDS            R0, #0x10
LOAD:0001B648                 MOVS            R6, #2
LOAD:0001B64A                 ADDS            R0, #8
LOAD:0001B64C                 ADDS            R1, R0, #4
LOAD:0001B64E                 MOV             SP, R1
LOAD:0001B650                 ADRL            R6, (sub_1B66C+1)
LOAD:0001B654                 MOVS            R1, #2
LOAD:0001B656                 ADDS            R6, #0x18
LOAD:0001B658                 ADDS            R6, R6, R1
LOAD:0001B65A                 STR             R6, [R0,#0x24]
LOAD:0001B65C                 POP             {R6}
LOAD:0001B65E                 B               sub_1B66C
LOAD:0001B65E ; End of function sub_1B63C

供参考,sub_1B63C:

LOAD:0001B66C sub_1B66C                               ; CODE XREF: sub_1B63C+22p
LOAD:0001B66C                                         ; DATA XREF: sub_1B63C+14o
LOAD:0001B66C                 MOVS            R0, R0
LOAD:0001B66E                 POP             {R0-R6,PC}
LOAD:0001B66E ; End of function sub_1B66C

我的问题是,为什么 IDA 会将其标记为函数的结束,我如何强制它在此之后将指令确认为函数的一部分?

0个回答
没有发现任何回复~