免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18798 | 回复: 4
打印 上一主题 下一主题

如何获得函数入口地址?? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-04-11 15:59 |显示全部楼层

回复 #1 toxyboy 的帖子

是windows 平台的?

论坛徽章:
0
2 [报告]
发表于 2008-04-11 16:17 |显示全部楼层

回复 #1 toxyboy 的帖子

myfunc()没见定义, 是 theFunc???

把正确的代码和对应的asm贴上来,这样看有点断章取义.把简单的计算问题非清晰化了!

[ 本帖最后由 system888net 于 2008-4-11 16:53 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-04-11 16:40 |显示全部楼层
原帖由 思一克 于 2008-4-11 15:34 发表
是这样的:

jmp_value = func_new - func_ptr - 5

jmp_value 是 E9后面的4个BYTES.

func_new是要跳到的地址, func_ptr是本JMP指令所在地址.

你的例子是

jmp_value = 0412D00h - 0411244h - 5 = 1AB7



is right.

论坛徽章:
0
4 [报告]
发表于 2008-04-11 16:49 |显示全部楼层
原帖由 toxyboy 于 2008-4-11 15:38 发表
那个计算公式对不对?按说因该是jmp 后面就跟实地址。但是又不是这样。
test:412D00 = [myfunc]+00001ab7+5;不知道这个公式是否通用,是否合理呢?


JMP code:
EB  JMP 相对短跳转,8位
E9  JMP 相对跳转,16位
FF   JMP 绝对跳转,16位
FF   JMP 绝对跳转,32位
EA  JMP 远距离绝对跳转
EA  JMP 远距离绝对跳转
FF   JMP 远距离绝对跳转
FF   JMP 远距离绝对跳转

论坛徽章:
0
5 [报告]
发表于 2008-06-16 13:40 |显示全部楼层
原帖由 flw 于 2008-6-16 13:28 发表

同意你。
很多人就喜欢拿些假代码来忽悠热心人。
我都不怎么爱回答问题了,就是这些人害的。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP