-
-
[旧帖] [讨论]请教一下怎样能用IDA分析出call edx中的调用的具体函数 0.00雪花
-
发表于: 2015-8-9 00:58 1276
-
最近在拿一些没加密的dll做实验来学习反汇编,ida分析很全面,可惜有的地方会认错。其他基本能看懂,但有个小问题希望请教。
经过和ultraedit的校对,
code段实际地址=镜像地址-1000C00h;.data段是-10001800h
代码很简短,却难住我了好久了。因为我希望这个函数永远返回eax=1,可调用到关键call的不只这一个地方,所以我想知道具体调用的位置,于是去找对应地址0x1DDE00+8h里的内容,这样做对吗还是说这里的+8要按双字节来算?
两者的内容分别是0xBCD和0xBDF,我该怎样还原成调用地址?+1000C00h后的结果是一个函数的中间段,所以我想知道哪一步算错了。
[所有出现dword_101DF600的都是读取然后加一个偏移再调用的]
.text:10020D81 23A4 8B 0D 00 F6 1D 10 mov ecx, dword_101DF600.text:10020D87 23A4 8B 51 08 mov edx, [ecx+8]
.text:10020D8A 23A4 6A 00 push 0
.text:10020D8C 23A8 FF D2 call edx ; this is key call !
.text:10020D8E 23A8 83 F8 01 cmp eax, 1
...
经过和ultraedit的校对,
code段实际地址=镜像地址-1000C00h;.data段是-10001800h
代码很简短,却难住我了好久了。因为我希望这个函数永远返回eax=1,可调用到关键call的不只这一个地方,所以我想知道具体调用的位置,于是去找对应地址0x1DDE00+8h里的内容,这样做对吗还是说这里的+8要按双字节来算?
两者的内容分别是0xBCD和0xBDF,我该怎样还原成调用地址?+1000C00h后的结果是一个函数的中间段,所以我想知道哪一步算错了。
[所有出现dword_101DF600的都是读取然后加一个偏移再调用的]
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: