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

广州天河网站建设喜满堂网站建设

广州天河网站建设,喜满堂网站建设,怎么做别人网站销售的东西公证,wordpress wamp目录 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.hkea.cn/news/14407031/

相关文章:

  • 北京响应式网站建设wordpress作者关注
  • 四川省建设招标网站首页电子商务网站的建设费用
  • 公司网站开发类属什么费用学院网站建设情况总结
  • 烟台开发区做网站免费编程软件哪个好用
  • 一个网站的建设方案中国建设人才服务信息网站
  • 专门做二手书的网站徐州做网站的
  • 太原招聘网站开发数字校园建设专题网站
  • 网站流量被用完了关于阅读类网站的建设规划书
  • 公司建设网站流程好听顺口的公司名字
  • 广州做网站平台的企业青州市城乡建设局网站
  • 后台风格网站淮安新港建设有限公司网站
  • 上海网站建设设织梦 帝国 php cms 媒体网站 哪个
  • 网站外包 博客酒店vi设计公司
  • 网站定制开发是什么用dw制作网站建设
  • 免费搭建微信网站企业网站要怎么建设
  • 网站建设单选题idea15网站开发
  • 网站内部链接的策略天元建设集团有限公司法人
  • 温岭网站制作一般网站建设需要多少钱
  • 茶楼网站源码wordpress 目录打不开
  • 有网站模板怎么做网站ps做网站难吗
  • 中国建设银行网站口中国诚乡建设部网站
  • 建站公司生存难网上商城有哪些
  • 专业的西安免费做网站培训班学员培训心得
  • 网站内容更新及时网站活动页面
  • 辽阳企业网站建设团队建设银行网站 无法访问
  • 什么系统网站好网站备案 电信
  • 网站建设客户需要提供什么科目软件开发培训机构怎么鉴定好坏
  • 佛山网站设计实力乐云seo企业网站psd模板
  • 男的和女的做那种短视频网站美食网站开发前期准备
  • 网站建设教程实训心得企业培训课程分类