• ebp:如何完成类型的访问,如果类型变了会怎么办


    bpf程序是如何控制内存类型的访问

    bpf_probe_read

    试着把类型转化的部分,换成一个内核不识别的函数,看下下编译和执行是否都能正确地进行~

    把内核中samples/bpf中的tracex1_kern.c中的
    skb = (struct sk_buff*) PT_REGS_PARM1(ctx);
    中的sk_buff替换成一种别的结构体 net_device,然后在编译的时候,会出现这种错误:结构体的结构体的解析是按照;【问题:运行时的检查是什么样子的
    samples/bpf/tracex1_kern.c:32:6: warning: incompatible pointer types assigning to 'struct sk_buff *'
          from 'struct net_device *' [-Wincompatible-pointer-types]
            skb = (struct net_device*) PT_REGS_PARM1(ctx);
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 warning generated.
    

     

    运行时的检查会是什么样子的,bpf会记录这个内核结构体是什么东西,然后在真正执行的时候,会去检查内核结构体中的size是不是,内核中是记录着结构体的信息,是在dwarf里面吧?然后也会记录着这个地方是用的哪个数据结构,在运行的时候,会去检查实际访问这个地址是否是合法的,

  • 相关阅读:
    【后缀数组】poj2406 Power Strings
    [HNOI 2013]游走
    [HAOI 2008]木棍分割
    [SCOI 2010]传送带
    [SDOI 2010]魔法猪学院
    [Codeforces 235B]Let's Play Osu!
    [SPOJ 10628]Count on a tree
    [ZJOI 2010]count 数字计数
    [SHOI 2008]Debt 循环的债务
    [JSOI 2008]星球大战starwar
  • 原文地址:https://www.cnblogs.com/honpey/p/15912562.html
Copyright © 2020-2023  润新知