博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内联jmp使用方法
阅读量:2343 次
发布时间:2019-05-10

本文共 558 字,大约阅读时间需要 1 分钟。

#include 
#include
void foo() {
int b = 3; int c = 4; char *str = "next hello \n"; printf("foo %d %d %s",b ,c ,str);}void bar() {
int a=2; char *str="hello world \n"; printf("bar %d %lx %s", a,foo, str); __asm("add $0x10,%%rsp\n\t" "pop %%rbp\n\t" "jmp *%0\n\t":: "r"(foo): "%eax"); //foo(); printf("bar finshed \n");}int main(int argc, char **argv) {
bar(); return 0;}

在这里插入图片描述

如图:
我们可以看到,当call一个函数的时候,我们会把部分参数和返回地址压栈。jmp就会简单一点,没有参数压栈和返回地址压栈的过程,但是同样会保存ebp。所以要想跳过当前函数直接恢复到main函数,在jmp指令之前rsp要指向ret 。rbp要恢复到需要jmp完直接跳转到的栈底。

转载地址:http://vnjvb.baihongyu.com/

你可能感兴趣的文章
程序员找工作的个人经验教训以及注意事项
查看>>
2019 编程语言排行榜:Java、Python 龙争虎斗!谁又屹立不倒
查看>>
拥有10年编程经验的你,为什么还一直停留在原地
查看>>
Flask vs Django,Python Web开发用哪个框架更好
查看>>
用Python制作动态二维码,一行代码就做到了
查看>>
Python说:常见的数据分析库有哪些
查看>>
Python教程:Python数据类型之字典
查看>>
Python基础教程:python的数据类型
查看>>
Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
查看>>
周董新歌《说好不哭》上线,20W评论,歌迷都说了些啥
查看>>
Python学习教程:用Python进行金融市场文本数据的情感计算
查看>>
Python爬虫:python获取各种街拍美图
查看>>
爬虫工程师是干什么的?你真的知道吗?
查看>>
写给那些想学Python的人,建议收藏后细看
查看>>
数据全裸时代,你的隐私有多容易获取?
查看>>
分析http代理报错问题
查看>>
Python编程学习笔记 - 列表的各种姿势
查看>>
Python学习教程:Python入门笔记整理
查看>>
天了噜,居然用Python查到了女神的姓名
查看>>
常用排序算法总结
查看>>