zoukankan      html  css  js  c++  java
  • 让程序跳转到绝对地址0x100000去执行

    网上比较火的一个题,让程序跳转到绝对地址去执行 :可以的实现方式为:

    ( (void(*)())0x4110e6)();
    (*(void(*)())0x4110e6)();
    (*((void(*)())0x4110e6))();
    而 *((void(*)())0x4110e6) (); 是不可以的,//非法的间接寻址

    测试代码如下:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    
    void getmemory(void)
    
    { 
     int k=0,b=4;
        printf("I am here.
    ");
    
    } 
    
    int main(void)
    
    {
    
        unsigned int p;
        
        p=(unsigned int)&getmemory;
        printf("%#x
    ",&getmemory);
        
        void (*pp)()=(void (*)())p;
        void (*qq)()=getmemory;
        pp();
        qq();
            //这个0x4012f0是第一次执行程序的时候getmemory的地址,运气好第二次它地址没变    
           ( (void(*)())0x4110e6)();
           (*(void(*)())0x4110e6)();  
           (*((void(*)())0x4110e6))();
           (* (void(*)())0x4110e6) ();
            *((void(*)())0x4110e6) (); //有误
    //       (*((void(*)())0x4110e6))();
          *((void(*)())0x4110e6);
        system("pause");
        return 0;
    }

    找到论坛有对此的评论:http://bbs.csdn.net/topics/380030749

  • 相关阅读:
    filter
    验证
    HTML5 canvas 内部元素事件响应
    canvas 椭圆
    计算2点角度
    复制pdf文字出来是乱码的一种可能的解决方案
    LaTeX Pdf to Word
    论文题录导入导出的困惑
    公式测试
    [LaTex]Visio文件转EPS文件[转]
  • 原文地址:https://www.cnblogs.com/xxiaoye/p/3658896.html
Copyright © 2011-2022 走看看