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

python基础教程资料衡水网站seo

python基础教程资料,衡水网站seo,培训机构推荐,网页布局怎么设计目录 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.w-s-a.com/news/373281/

相关文章:

  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站