当前位置: 首页 > news >正文

生鲜电商网站建设策划书外贸短视频营销

生鲜电商网站建设策划书,外贸短视频营销,郓城网站开发,广州网站建设好评公司预备知识#xff1a; 计算机内存的结构通常包括以下几个主要部分#xff1a; 1.代码段(Code Segment)#xff1a;也称为文本段#xff0c;存储程序的可执行指令。代码段是被标记为可执行的#xff0c;程序从代码段中获取指令并执行。 2.数据段(Data Segment)#xff1a…预备知识 计算机内存的结构通常包括以下几个主要部分 1.代码段(Code Segment)也称为文本段存储程序的可执行指令。代码段是被标记为可执行的程序从代码段中获取指令并执行。 2.数据段(Data Segment)也称为全局数据段存储全局变量和静态变量的数据。数据段在程序加载时被初始化其大小在编译时确定。 3.堆(Heap):堆是用于动态分配内存的区域。在堆上分配的内存由程序员手动管理可以通过函数(如malloc(0和free0)进行申请和释放。堆的大小可以根据需要动态增长或缩小。 4.栈(Stack)栈是用于管理函数调用和局部变量的内存区域。栈上的内存由编译器自动管理存储函数调用过程中的局部变量、函数参数、返回地址等数据。栈的大小是固定的并且在程序运行期间是动态变化的。 5.常量区(Constant Area):常量区存储常量值如字符串常量和全局的const修饰的变量。这些常量在程序运行期间是不可修改的。 6.未初始化数据段(BSS Segment)也称为bss段存储未初始化的全局变量和静态变量。在程序加载时未初始化的变量会被初始化为0或空值。 example code: #include stdio.hint main() {printf(Hello, World!\n);return 0; }gcc hello.c -o hello得到hello可执行文件 1. -pie 作用: -pie是一个编译器选项用于在生成可执行文件时将其编译为位置无关可执行文件Position Independent ExecutablePIE。PIE是一种可执行文件格式它可以在内存中加载的任何地址上执行而不依赖于固定的基地址。适用于需要增加代码执行的安全性的场景。 -pie参数与动态链接有密切的关系。具体来说-pie参数用于生成位置无关的可执行文件而位置无关的可执行文件通常与动态链接配合使用。 在动态链接中可执行文件在运行时需要依赖于动态链接器ld.so或ld-linux.so加载共享库例如.so文件以填充程序中的符号引用。这种方式允许多个可执行文件共享同一个共享库减少内存使用并提高可执行文件的灵活性。 使用方法 gcc -pie hello.c -o hello验证-pie参数是否生效 objdump -x helloobjdump主要用于静态分析和反汇编目标文件、可执行文件和共享库 若查找到与重定位相关的节例如.rela.dyn和.rela.plt。如果这些节存在则说明-pie参数已经生效并且程序是以位置无关的方式编译的。 还可以查找DYNAMIC标志以验证是否启用了动态链接。 使用readelf命令查看可执行文件的头部信息。 readelf -l hello在输出中查找INTERP字段。如果该字段存在并且显示了动态链接器的路径如/lib/ld-linux.so.2则说明可执行文件启用了动态链接。 2. -z noexecstack -z noexecstack 是一个用于在Linux系统上编译可执行文件时的安全特性选项。当启用此选项时它将堆栈标记为不可执行意味着无法从堆栈中执行代码。这有助于防止某些类型的安全漏洞如缓冲区溢出攻击。 使用方法 要在编译过程中启用 -z noexecstack 选项您需要使用兼容的编译器如GCC并将选项作为命令行参数传递。以下是一个使用此选项编译C程序的示例 gcc -z noexecstack hello.c -o hello验证 -z noexecstack 参数是否生效 使用 readelf 命令来检查生成的可执行文件的头部信息。readelf 是一个用于查看和分析 ELF (Executable and Linkable Format) 格式文件的工具。 运行以下命令来查看可执行文件的头部信息 readelf -l hello在输出中查找 GNU_STACK 部分。如果 GNU_STACK 部分中存在 RWE可读可写可执行标志则表示 -z noexecstack 选项未生效。如果 GNU_STACK 部分中存在 RW可读可写标志则表示 -z noexecstack 选项生效。 3. -fstack-protector CC_STACKPROTECT补丁的防溢出原理是 在进程启动的时候 在每个buffer的后面放置一个预先设置好的stack canary 当buffer发生缓冲区溢出的时候 肯定会破坏stack canary的值 当stack canary的值被破坏的时候 内核就会直接当机。 先写个简单的有溢出的程序 #include stdio.h #include stdlib.h #include string.hvoid test(void) {char buff[64];memset(buff, 0x41, 128); //向64大小的buffer拷贝128字节 肯定会发生缓冲区溢出。 }int main(void) {test();return 0; }关闭no-stack-protector会报段错误 wjrWPF3N0KZ3:~$ gcc -o test test.c -fno-stack-protector wjrWPF3N0KZ3:~$ ./test Segmentation fault加上stack-protector wjrWPF3N0KZ3:~$ gcc -o test test.c -fstack-protector wjrWPF3N0KZ3:~$ ./test *** stack smashing detected ***: terminated Aborted这次程序打印了一条堆栈被溢出的信息然后就自动退出了。 反汇编 objdump -d test hex0000000000001120 __do_global_dtors_aux:1120: f3 0f 1e fa endbr64 1124: 80 3d e5 2e 00 00 00 cmpb $0x0,0x2ee5(%rip) # 4010 __TMC_END__112b: 75 2b jne 1158 __do_global_dtors_aux0x38112d: 55 push %rbp112e: 48 83 3d c2 2e 00 00 cmpq $0x0,0x2ec2(%rip) # 3ff8 __cxa_finalizeGLIBC_2.2.51135: 00 1136: 48 89 e5 mov %rsp,%rbp1139: 74 0c je 1147 __do_global_dtors_aux0x27113b: 48 8b 3d c6 2e 00 00 mov 0x2ec6(%rip),%rdi # 4008 __dso_handle1142: e8 09 ff ff ff call 1050 __cxa_finalizeplt1147: e8 64 ff ff ff call 10b0 deregister_tm_clones114c: c6 05 bd 2e 00 00 01 movb $0x1,0x2ebd(%rip) # 4010 __TMC_END__1153: 5d pop %rbp1154: c3 ret 1155: 0f 1f 00 nopl (%rax)1158: c3 ret 1159: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)使用-fstack-protector参数后 gcc在函数的开头放置了几条汇编代码 112d: 55 push %rbp 112e: 48 83 3d c2 2e 00 00 cmpq $0x0,0x2ec2(%rip) # 3ff8 __cxa_finalizeGLIBC_2.2.5 1135: 00 1136: 48 89 e5 mov %rsp,%rbp 1195: e8 d6 fe ff ff call 1070 memsetplt119a: 90 nop119b: 48 8b 45 f8 mov -0x8(%rbp),%rax119f: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax11a6: 00 00 11a8: 74 05 je 11af test0x4611aa: e8 b1 fe ff ff call 1060 __stack_chk_failplt11af: c9 leave 11b0: c3 ret 在memset后gcc要检查这个操作是否发生了堆栈溢出, 将保存在rbp的这个值与原来的值对比一下 如果不相同 说明堆栈发生了溢出那么就会执行__stack_chk_fail这个函数 这个函数是glibc实现的 打印出上面看到的信息 然后进程退出。
http://www.dnsts.com.cn/news/111217.html

相关文章:

  • 成都市住房和城乡建设厅官方网站苏州高端网站建设企业
  • 周到的网站建设seo推广优化公司哪家好
  • 做机械的网站有哪些网站蜘蛛屏蔽怎样恢复
  • 付费下载网站源码建网站的免费空间
  • 丹徒网站建设咨询jsp网站开发外文翻译
  • 长沙网站制作哪家强网站开发一般会使用框架吗
  • 360提交网站入口外贸官方网站建设
  • 设计网站评分标准云南工程建设总承包公司官网
  • 腾讯云如何建设网站首页wordpress建站教程
  • 网站优化排名哪家好张家口职教中心计算机网站建设
  • 域名解析网站什么意思天堂 最新版中文在线
  • 德州市建设工程质监站网站wordpress百度云链接地址
  • 知乎 网站开发工具建设银行梅李分行网站
  • 网站怎么做关键词优化公司做二手网站的用意
  • 官方网站想反应问题不弄应该怎么做郴州网站设计公司
  • 网站类型定位分析建行手机网站网址是多少钱
  • 网站蜘蛛池怎么做的商场设计与商品陈列
  • 电脑公司网站系统源码国际新闻今天最新
  • 太原网站建设开发公司网站建设样本
  • 齐齐哈尔市建设局网站chci网站建设
  • 郑州做网站公司 卓美旧房翻新装修公司排名
  • 广东省医院建设协会网站一个vps主机放两个网站 速度
  • 工信部网站icp备案号湘潭网站建设 皆来磐石网络
  • 天津建站方案合肥网站优化搜索
  • 网站建设炫彩图片网站建设的成本有哪些内容
  • 在线做漫画网站制作文字图片
  • 低价网站建设制作设计公司樟木头东莞网站建设
  • 网站图片优化工具疏通下水道网站怎么做
  • wps怎么做网站做网站多大
  • 自适应式电影网站模板wordpress 调用菜单