首页
社区
课程
招聘
未解决 [求助]IDA调试寄存器值分析 50.00雪花
发表于: 2019-10-14 10:56 2184

未解决 [求助]IDA调试寄存器值分析 50.00雪花

2019-10-14 10:56
2184


这是某里系App中的的一个.so文件,动态调试中。


上图是IDA动态调试中的一个方法入口,这个方法共有4个参数。分别是 
R0 JNIEnv *env
R1 jobject obj
R2 int command
R3 jarray args


非常清楚可以看到R2寄存器值为0x28A1,这和我传入so文件的参数值(10401)完全符合

我尝试去匹配R3(jarray args)的值,R3 = [stack]:BEF45420。栈区BEF45420值为 dalvik_main_space:1314D6E0。


跳转到1314D6E0,是这样的,没有看到我熟悉的入参数或者涉及入参的结构



麻烦请教下各位大佬,我如何在动态调试时能方便的看到包括一些重要变量的值。



dalvik_main_space 应该是dvm的内存结构,我能否写一段py脚本来达到读取dalvik_main_space数据的目的。


有没有大佬能帮我写一些脚本来识别一些常用的类型的数据的脚本。我也不知道这个思路对不对。

主要是动态调试的时候看不到对应的变量值,就完全不知道这段代码在干嘛。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 107
活跃值: (1743)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
你这个方法应该是doCommandNative,jarray是Java对象,所以和c的结构定义不一样。
1314D6E0应该是一个Java object,0x715d6660应该是基类对象指针。你要找到你自己传入的参数是很困难的,这才是面向对象恶心的地方。
你可以自己写个demo验证一下。这段代码有混淆,可能你需要用unicorn来协助分析。
最后于 2019-10-25 09:36 被frozenrain编辑 ,原因:
2019-10-25 09:35
0
游客
登录 | 注册 方可回帖
返回
//