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

学校门户网站建设方案企业如何做网站推广

学校门户网站建设方案,企业如何做网站推广,百度指数查询手机版,wordpress ent主题目录 hook hook是什么 dlsym()函数 hook的实现步骤 加入hook的demo C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook hook可以把系统或第三方库提供的函数#xff0c;替换成我们写的同名函数。会调用我们实现的函数。 hook是什么 hook提供了两…目录 hook hook是什么 dlsym()函数 hook的实现步骤 加入hook的demo C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook hook可以把系统或第三方库提供的函数替换成我们写的同名函数。会调用我们实现的函数。 hook是什么 hook提供了两个接口1. dlsym()是针对系统的系统原始的api。2. dlopen()是针对第三方的库。 dlsym()函数 获取共享对象或可执行文件中符号的地址。 函数原型 描述 函数dlsym()接受dlopen()返回的动态加载共享对象的“句柄”以及以空结尾的符号名并返回该符号加载到内存中的地址。如果在指定对象或加载对象时dlopen()自动加载的任何共享对象中找不到该符号dlsym()将返回NULL。dlsym()执行的搜索是通过这些共享对象的依赖关系树进行的广度优先搜索。 handle中可以指定两个特殊的伪句柄 返回值 成功时这些函数返回与符号关联的地址。 失败时返回NULL可以使用dlerror()诊断错误的原因。 hook的实现步骤 /* ******* ******************hook****************** ******* */ //第一步定义目标函数一样的类型 typedef int (*pthread_mutex_lock_t)(pthread_mutex_t *mutex); typedef int (*pthread_mutex_unlock_t)(pthread_mutex_t *mutex);pthread_mutex_lock_t pthread_mutex_lock_f; pthread_mutex_unlock_t pthread_mutex_unlock_f;//第二步实现目标函数名一致 //pthread_mutex_lock()会调用本函数 int pthread_mutex_lock(pthread_mutex_t *mutex) {pthread_t selfid pthread_self();pthread_mutex_lock_f(mutex);printf(pthread_mutex_lock: %ld, %p\n, selfid, mutex); } //pthread_mutex_unlock()会调用本函数 int pthread_mutex_unlock(pthread_mutex_t *mutex) {pthread_t selfid pthread_self();pthread_mutex_unlock_f(mutex);printf(pthread_mutex_unlock: %ld, %p\n, selfid, mutex); } //第三步dlsym放到main初始化 void init_hook(void) {pthread_mutex_lock_f dlsym(RTLD_NEXT, pthread_mutex_lock);pthread_mutex_unlock_f dlsym(RTLD_NEXT, pthread_mutex_unlock); }加入hook的demo //gcc Dead_lock.c -lpthread -ldl #define _GNU_SOURCE #include dlfcn.h#include stdio.h #include stdlib.h #include pthread.h#include unistd.h/* ******* ******************hook****************** ******* */ //第一步定义目标函数一样的类型 typedef int (*pthread_mutex_lock_t)(pthread_mutex_t *mutex); typedef int (*pthread_mutex_unlock_t)(pthread_mutex_t *mutex);pthread_mutex_lock_t pthread_mutex_lock_f; pthread_mutex_unlock_t pthread_mutex_unlock_f;//第二步实现目标函数名一致 //pthread_mutex_lock()会调用本函数 int pthread_mutex_lock(pthread_mutex_t *mutex) {pthread_t selfid pthread_self();pthread_mutex_lock_f(mutex);printf(pthread_mutex_lock: %ld, %p\n, selfid, mutex); } //pthread_mutex_unlock()会调用本函数 int pthread_mutex_unlock(pthread_mutex_t *mutex) {pthread_t selfid pthread_self();pthread_mutex_unlock_f(mutex);printf(pthread_mutex_unlock: %ld, %p\n, selfid, mutex); } //第三步dlsym放到main初始化 void init_hook(void) {pthread_mutex_lock_f dlsym(RTLD_NEXT, pthread_mutex_lock);pthread_mutex_unlock_f dlsym(RTLD_NEXT, pthread_mutex_unlock); }//测试代码 pthread_mutex_t mutex1 PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex2 PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex3 PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex4 PTHREAD_MUTEX_INITIALIZER;void *thread_funcA(void *arg) {pthread_mutex_lock(mutex1);sleep(1);pthread_mutex_lock(mutex2);printf(thread_funcA\n);pthread_mutex_unlock(mutex2);pthread_mutex_unlock(mutex1);}void *thread_funcB(void *arg) {pthread_mutex_lock(mutex2);sleep(1);pthread_mutex_lock(mutex3);printf(thread_funcB\n);pthread_mutex_unlock(mutex3);pthread_mutex_unlock(mutex2);}void *thread_funcC(void *arg) {pthread_mutex_lock(mutex3);sleep(1);pthread_mutex_lock(mutex4);printf(thread_funcC\n);pthread_mutex_unlock(mutex4);pthread_mutex_unlock(mutex3); }void *thread_funcD(void *arg) {pthread_mutex_lock(mutex4);sleep(1);pthread_mutex_lock(mutex1);printf(thread_funcD\n);pthread_mutex_unlock(mutex1);pthread_mutex_unlock(mutex4);}int main() {pthread_t tida, tidb, tidc, tidd;init_hook();pthread_create(tida, NULL, thread_funcA, NULL);pthread_create(tidb, NULL, thread_funcB, NULL);pthread_create(tidc, NULL, thread_funcC, NULL);pthread_create(tidd, NULL, thread_funcD, NULL);pthread_join(tida, NULL);pthread_join(tidb, NULL);pthread_join(tidc, NULL);pthread_join(tidd, NULL);return 0; }
http://www.dnsts.com.cn/news/149863.html

相关文章:

  • 途牛旅游网站建设目的如何创建电子商务网站
  • 网络推广建立站点如何建立网站怎么创建内容
  • 怎么挖掘网站的关键词网站seo专员招聘
  • 建设部证书查询网站学校校园网站建设实践选题背景
  • 建设邮费自己的网站 要不要购买服务器的网站的网页
  • 如何做二维码跳转到网站曹县网站建设公司
  • 网站后台更新内容后苏州高端网站建设机构
  • 常州建站服务连云港seo公司
  • 外国人做中国英语视频网站怎样成立网站
  • 自学设计软件的免费网站可以把网站生成软件
  • 手机个人简历模板下载福州网站怎么做seo
  • 济南网站制作技术交流稳赚导师免费赚钱微信号
  • 做网站需要的流程网片生产厂家
  • 网站怎么识别PC 手机谷歌优化 网站建设
  • 免费图片素材网站推荐网络营销方式对比及分析
  • 网页设计与网站建设完全实用手册wordpress query_posts()
  • 西安网站建设网站推广台前网站建设价格
  • 网站维护工作内容有什么自学网站的建设
  • 免费搭建手机网站源码wordpress 注册邮件设置密码
  • 网站建设收费标准市场打开百度网站建设
  • 安防公司网站模板临沂做网站建设公司
  • 萍乡网站推广html挂载到wordpress
  • 广西建设监理协会网站免费的网站软件
  • 小说网站开发数据库做实验用哪些国外网站
  • 广州购物网站建设报价网站焦点图怎么做
  • 小型公司网站建设郑州最好的设计公司
  • 电子商务网站建设与维护 书做花型设计哪个网站下载素材好
  • 玉山县建设局网站做网站朋友圈广告的文案怎么写
  • wordpress网站目录短网址还原在线生成
  • 网站关键词优化费用网站设计的一般流程是什么