能力值:
( LV2,RANK:10 )
|
-
-
2 楼
分析JNI的时候遇到相同的问题,是通过IDA的菜单项 File->Load file -> Parse c header file,选择jni.h头文件,加载成功以后,点击主界面的Structures选项卡,按insert键打开 'create structure/union‘对话框,点击add standard structure按钮,在打开的结构体选择对话框中选择添加相应的结构。回到反汇编代码界面,也就是上面你贴的代码界面,在你想要解析的偏移值指令想点击右键,就可以看到结果了。
所以觉得你只要把你的结构体定义头文件导入,按照上面的步骤应该也是可以的 :).
ps.上面的jni结构导入步骤可以在《android软件安全和逆向分析》7.6.2节看到.
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
哥们,你的方法我知道,可以直接去struct界面,自己手工添加结构,然后对偏移量按alt+q来选择结构。
但是我这里R4并不是SMTCN_RESULT的基址,而是SMTCNSta的,但是 R4+448却到SMTCN_RESULT里面去了,这个时候,系统貌似就没法理解这个结构也替换不了了
我并不是要把 [xxxx, xxxx+6]这块地址理解成某个结构,这个工作我已经做了,我是想把系统里所有对[xxx, xxx+6]地址的访问都转换成某个结构
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
[QUOTE=baikaishiu;1370323]问题是这样的,有3个结构
SMTCNSta 长度 6
pfsm 长度0x440
SMTCNResult 长度 0x610
现在 [R4,0x448]已经偏移到 SMTCNResult里面去了,我想如何在IDA中把[R4,0x448]改成SMTCNResult.xxx 这样的,[/QUOTE]
就是说R4指向一个结构体,这个结构体有包含三个结构体.长度分别是6,0x440,0x610是吗
如果把这几个结构体导入系统还是不识别0x448这样的访问,那你就把几个结构体的定义合并起来试试,对应原结构体的成员你加个前缀分辨下,勉强可以阅读达到你要的效果
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
R4指向一个结构体,然后另外2个结构体在他的物理位置后面,并不包含。
R4+0x448指向的是第3个结构体的数据
不过你的方法挺不错,在弄一个结构体,里面包含这3个结构,分给你了,谢谢。
|
|
|