您好、欢迎来到现金彩票网!
当前位置:最新捕鱼棋牌 > 先进后出 >

栈是遵循先进后出原则那指针是用来干嘛的?

发布时间:2019-07-04 00:47 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  当然可以啊,只要你能不弄错先后,知道自己改的是什么,修改完后恢复栈顶指针,完全可以修改栈数据,这也是种hack技术,不过这对编程技术要求很高,很危险,一不小心就会导致程序崩溃,然后你都不知道错在哪里。

  其实,你可以编写一个简单的函数,在main中调用它,编译后设置断点,然后调试运行,执行到断点处停止后,在调试菜单内选择反汇编观察这段代码,你会发现,编译器会在真正执行函数前都会安排一段指令修改栈数据的。

  0016481Cleaedi,[ebp-0C0h]//原栈顶指针向上偏移C0个字节作为目的地址存入目的寄存器,注意此时ebp包含的是栈顶指针

  00164822movecx,30h//设置循环次数,每次赋值一个双字,即4字节,所以4*30h正好为C0个字节。

  00164827moveax,0CCCCCCCCh//设置填充值,4个字节的cc,cc为中断指令3,即int3,防止程序意外跳转到该临时数据区执行时会调用系统中断#3处理

  0016482Crepstosdwordptres:[edi]//执行循环填充数据

http://inadecuado.com/xianjinhouchu/441.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有