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

用ftp改网站电话怎么内页底部的没有变站长工具怎么关闭

用ftp改网站电话怎么内页底部的没有变,站长工具怎么关闭,网站 建设 外包,深圳网站公司推广平台一 、 日志记录 通过宏定义重载了 malloc 和 free 函数#xff0c;以在分配和释放内存的时候记录一些信息#xff0c;包括文件名和行号#xff0c;并将这些信息写入到相应的文件中。然后在 main 函数中演示了使用这些宏进行内存分配和释放。 _malloc 函数#xff1a; 在分配…一 、 日志记录 通过宏定义重载了 malloc 和 free 函数以在分配和释放内存的时候记录一些信息包括文件名和行号并将这些信息写入到相应的文件中。然后在 main 函数中演示了使用这些宏进行内存分配和释放。 _malloc 函数 在分配内存之后创建一个文件名其中包含了分配的内存地址以16进制表示。打开这个文件并写入一些信息包括源文件名、行号、分配的内存地址和大小。关闭文件并返回分配的内存地址。 _free 函数 根据释放的内存地址创建相应的文件名。尝试删除这个文件如果删除成功则表示释放成功否则可能是发生了双重释放double free。调用标准库的 free 函数释放内存。 malloc 宏和 free 宏 利用宏定义将 malloc 和 free 分别重命名为 _malloc 和 _free并且在这两个宏中传递 __FILE__ 和 __LINE__使得每次分配和释放内存都可以记录相应的文件名和行号。 #define _GNU_SOURCE #include dlfcn.h#include stdio.h #include stdlib.h#include unistd.h#if 0void *_malloc(size_t size, const char *file, int line) {void *p malloc(size);char buff[128] {0};sprintf(buff, ./mem/%p.mem, p);FILE *fp fopen(buff, w);fprintf(fp, [%s:%d] -- addr:%p, size:%ld\n, file, line, p, size);fflush(fp);fclose(fp);return p; }void _free(void *p, const char *file, int line) {char buff[128] {0};sprintf(buff, ./mem/%p.mem, p);if (unlink(buff) 0) { // double freeprintf(double free: %p\n, p);return ;}free(p);}#define malloc(size) _malloc(size, __FILE__, __LINE__) #define free(p) _free(p, __FILE__, __LINE__)#endifint main() {// DEBUG_MEM_LEAKvoid *p1 malloc(10);void *p2 malloc(20);free(p1);} 二、  日志记录2 这段代码使用了动态链接库劫持的方法通过重载 malloc 和 free 函数实现了在内存分配和释放时记录信息的功能。以下是代码的解释 typedef void *(*malloc_t)(size_t size); malloc_t malloc_f NULL;typedef void (*free_t)(void *p); free_t free_f NULL;int enable_malloc_hook 1; int enable_free_hook 1;// main -- f -- func -- malloc();void *malloc(size_t size) {if (enable_malloc_hook) {enable_malloc_hook 0;//void *p malloc_f(size);void *caller __builtin_return_address(0);char buff[128] {0};sprintf(buff, ./mem/%p.mem, p);FILE *fp fopen(buff, w);fprintf(fp, [%p] -- addr:%p, size:%ld\n, caller, p, size);fflush(fp);enable_malloc_hook 1;return p;} else {return malloc_f(size);}}void free(void *p) {if (enable_free_hook) {char buff[128] {0};sprintf(buff, ./mem/%p.mem, p);if (unlink(buff) 0) { // double freeprintf(double free: %p\n, p);return ;}free_f(p);} else {free_f(p);}}//hook//dlsymvoid init_hook(void) {if (malloc_f NULL)malloc_f dlsym(RTLD_NEXT, malloc);if (free_f NULL)free_f dlsym(RTLD_NEXT, free);}#define DEBUG_MEM_LEAK init_hook();int main() {DEBUG_MEM_LEAKvoid *p1 malloc(10);void *p2 malloc(20);free(p1);} 三、bpftrace 创建mem.bt文件 uprobe挂在的事件和点,然后过滤当前进程等于memleak 这个脚本的目的是监测在进程名为 memleak 的情况下libc 库中的 malloc 和 free 函数的调用并在每次调用时输出相应的信息。请确保你的系统支持 BPF 功能并且相关的 uprobes 事件能够被监测。此外记得在 bpftrace 执行时使用 sudo 权限因为 uprobes 需要 root 权限。         uprobe:/lib/x86_64-linux-gnu/libc.so.6:malloc /comm memleak/ {printf(malloc\n); }uprobe:/lib/x86_64-linux-gnu/libc.so.6:free /comm memleak/ {printf(free\n); }
http://www.pierceye.com/news/206159/

相关文章:

  • 企业网站管理系统多站多语言版电子书推送网站怎么做
  • 海洋公司做网站推广安阳网站如何做优化
  • 南昌网站开发公司哪家公司好网站建设接单
  • 宁波网站制作哪家强调用wordpress的文章编辑器
  • 在线制作手机网站公司网站建设厂家
  • 在线分析网站一个小外贸公司怎么开
  • 给自己的公司做网站怎么做好电脑手机一体网站
  • 精通网站建设 全能建站密码pdf电商网站设计理念
  • 百度推广建设网站是不是合发手机网站的必要性
  • 企业网站建设是什么实现的物质基础和技术支撑现货交易平台代理
  • 网站建设的描述长沙发布app
  • 好的设计作品网站代理网站建设
  • 做网站的软件m开头网站建设公司问候语
  • 做网站需要工商证吗app软件开发价格
  • 做足球原创短视频网站网站建设永远在路上
  • 做seo为什么要了解网站苏州做网站公司
  • 这几年做哪些网站能致富网站开发账务处理
  • 网站的版权信息做阿里巴巴网站卖货咋样
  • 找项目去哪个网站成都哪里有做网站的公司
  • 网站推广的方法及特点国外专门做童装的网站
  • 企业网站开发模型图wordpress 侧边导航
  • 济南网站系统优化网站建设属于什么专业
  • 114啦建站程序页面效果好的网站
  • 龙华网站建设-信科网络电子商务网站建设和技术现状
  • 网站备案有效期wordpress 评论图片
  • 搭建网站需要哪些步骤wordpress 主题使用
  • 网站怎么发布做微商天眼官方网站
  • qq群网站制作异常网站服务器失去响应
  • aspnet网站开发模板紫光华宇拼音输入法官方下载
  • 东莞网站设计价格wordpress的配置dns