glb_SomeVar
是字节数组):在同一个功能中:cmp al, glb_SomeVar+22h
是否可以解决此问题,例如使IDA重新分析所选功能甚至整个代码?我猜在其他地方,也缺少交叉引用。
#1 楼
编辑->全局->交叉参考->交叉参考深度。视情况增加。#2 楼
我认为IDA 6.8中的默认值是交叉参考深度16。我先将其增加到32,然后又增加到1024,再增加到65535(因为为什么不这样)。这些都没有导致我的外部参照正常工作,所以我一定不明白。我正在分析ARM ELF共享对象文件。我正在查看的函数由.init_array段中的偏移量引用的函数调用(不确定是否相关)。我要查看的所有偏移量是:
.bss:00424778 ; void *dword_424778
.bss:00424778 dword_424778 % 4
它最初被标识为unk_424778,但我按了Y并将类型设置为“ void *”。 />
Hex Rays显示此作业:
dword_424778 = &_sF;
使用HexRaysCodeXplorer,我按J跳回到从Hex Rays拆卸的状态。它使我进入0026D69C行:
...
.text:0026D668 LDR R5, [R4,R2] ; unk_424758
.text:0026D66C ADD R0, R5, #0x1C
.text:0026D670 STMIA R5, {R3,R7}
.text:0026D674 STR R7, [R5,#8]
.text:0026D678 STR R7, [R5,#0xC]
.text:0026D67C STR R7, [R5,#0x10]
.text:0026D680 STR R7, [R5,#0x14]
.text:0026D684 STR R7, [R5,#0x18]
.text:0026D688 BL sub_26F42C
.text:0026D68C LDR R2, =(off_374A30 - 0x374C20)
.text:0026D690 LDR R3, [SP,#0x38+var_34]
.text:0026D694 STR R9, [R5]
.text:0026D698 STR R8, [R5,#0x24]
.text:0026D69C STR R11, [R5,#0x20]
...
我不太了解ARM,但我读到STMIA R5 {R3,R7}会导致无法预测的行为由于注册表({R3,R7})以比Rn(R5)低的数字开头。
评论
噢,不知道这个功能。谢谢
–k0ng0
13年5月29日在15:21