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

网站怎么加icob站怎么推广自己的视频

网站怎么加ico,b站怎么推广自己的视频,网站后台管理功能,网站接口设置1、概述 有这样的一个场景,我有一个动态库myso.so里面有函数start_crash(),用到静态库的内存分配函数,其实静态库里面的static.a 里面就封装了一个函数叫system_malloc(),函数返回的是分配的内存地址,然后发现,我在测试demo里面创…

1、概述

        有这样的一个场景,我有一个动态库myso.so里面有函数start_crash(),用到静态库的内存分配函数,其实静态库里面的static.a 里面就封装了一个函数叫system_malloc(),函数返回的是分配的内存地址,然后发现,我在测试demo里面创建了个子线程,然后在子线程里面调用start_crash(),会发现system_malloc函数返回的地址不对,内存不可访问,使用时直接会发生崩溃

图1.1 exmaple为测试的例子,src为my.so动态库,util为负责调用malloc并返回分配的地址

图1.2 util system_malloc函数

图1.3 为myso.so中的start_crash()函数

图1.4为main函数调用myso.so中的start_crash函数

2、分析过程

我采用的是visual stdio 2022进行调试Linux的程序,具体怎么配置,请看在 Visual Studio 中连接到你的目标 Linux 系统 | Microsoft Learn,这个教程进行配置调试

2.1 主线程的调用

        2.1.1 myso.so中start_crash反汇编代码

        

        2.1.2 my.so中的start_crash的寄存器值

        2.1.3 返回的地址指针

我们可以看到rax 跟eax的地址值就是最终给payload变量的值,这个是没有问题的

2.2 子线程的调用

2.2.1 my.so 中start_crash的反汇编

调用流程跟主线程中的一样,但是为啥多了个cltp汇编指令呢,我们看cltp的解释

这样我们继续看调用system_malloc函数后返回的地址

payload的地址变成了0xffffffff000b60,不可访问,其实根据汇编指令,是把rax的地址给了payload变量,所以看到payload的地址跟rax是一样的,为啥好好的在system_malloc明明得到正确的地址,为啥函数调用回来之后就变了,很奇怪,我们根据汇编代码其实是多了调cltp指令导致的。

2.2.2 在utils.a中分配的地址值

rax 跟eax寄存器存的内容

3、原因分析

根据2.1跟2.2的比较我们可以得出,在主线程中调用test_mem得到的地址是没有问题的,但是在子线程中的就有问题,我们找了网上的资料发现也有这个cltp指令导致的错误GCC cutting of higher 32 bits of qword in dlmalloc port - OSDev.org

所以我们在编译时候加add_compile_options(-Werror)编译选项,发现编译不过,发现我没有把system_interface.h头文件给包含过来导致的,然后加上之后竟然不会发生崩溃了。怀疑这是编译器进行优化导致的一个问题。

但是我没有在myso.c中包含system_interface.h头文件我竟然都能编译过去,这也很奇怪,通过对比内存和反汇编,我们可以得出结论应该是

4、结论

system_malloc函数没有被正确声明,编译把返回当成32位了?,还是没怎么搞懂,为啥在主线程调用就不会发生这事,在子线程就会,从地址来看,子线程分配的地址控件大于32,这才导致这样的问题,而且发生了cltp扩展

http://www.ds6.com.cn/news/102396.html

相关文章:

  • 怎么做视频解析网站吗中国站长素材网
  • dw做网站字体 别人 电脑公司网络推广网站
  • 电子商务网站建设课程设计总结网站优化公司怎么选
  • 推广网站优化怎么做新站网站推广公司
  • 怀化举报网站百度搜索关键词推广
  • 软件界面设计的基本原则福州seo推广
  • 大良营销网站建设精英安卓优化大师下载安装
  • 郑州建网站价山西seo基础教程
  • 家具网站建设seo排名哪家正规
  • 网站建设质量管理定义百度引擎搜索
  • 北师大网页制作与网站建设吉林网络推广公司
  • 做一个营销型网站有哪些内容搜索引擎营销的原理是什么
  • jsp做网站好不好郑州seo技术服务顾问
  • 有谁有做卫生纸巾的网站口碑营销的步骤
  • python 如何做网站友情链接的英文
  • 大连 网站建设seo新手快速入门
  • 一个人做网站建设需掌握百度人工客服在线咨询
  • 宁波专业网站建设公司武汉网站设计十年乐云seo
  • 大气婚庆网站源码提交链接
  • 某企业网站的设计与实现互联网医疗的营销策略
  • 石家庄微网站建设公司搜索引擎的优化方法
  • 把手机做网站服务器百度搜索引擎优化案例
  • 怎么帮网站做支付接口搜索引擎
  • 顶尖手机网站建设拉人注册给佣金的app
  • 小公司自己怎样做网站免费个人网站建站申请
  • 德清建设银行网站网络营销岗位描述的内容
  • 看英语做游戏的网站seo日常优化内容是什么
  • 如何网站做专题潍坊seo排名
  • 网站首页漂浮广告代码广州百度推广开户
  • 网站式的公司记录怎么做成都网站seo设计