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

做哪方面的网站哈尔滨专业建站免费咨询

做哪方面的网站,哈尔滨专业建站免费咨询,vs2015网站开发教程,百川互联劫持普通函数当然没有什么意思了#xff01;我们要劫持的是系统函数#xff01;我们知道#xff0c;Unix操作系统中对于GCC而言#xff0c;默认情况下#xff0c;所编译的程序中对标准C函数(fopen、printf、execv家族等等函数)的链接#xff0c;都是通过动态链接方式来链…劫持普通函数当然没有什么意思了我们要劫持的是系统函数我们知道Unix操作系统中对于GCC而言默认情况下所编译的程序中对标准C函数(fopen、printf、execv家族等等函数)的链接都是通过动态链接方式来链接libc.so.6这个函数库的我们只要在加载libc.so.6之前加载我们自己的so文件就可以劫持这些函数了。二、Demo我们从一个简单的c程序(sample.c)开始下面的代码标准调用fopen函数并检查返回值#include int main(void) {printf(Calling the fopen() function...\n);FILE *fd fopen(test.txt,r);if (!fd) {printf(fopen() returned NULL\n);return 1;}printf(fopen() succeeded\n);return 0;}编译执行$ gcc -o sample sample.c$ ./sampleCalling the fopen() function...fopen() returned NULL$ touch test.txt$ ./sampleCalling the fopen() function...fopen() succeeded开始编写我们自己的so动态库#include FILE *fopen(const char *path, const char *mode) {printf(This is my fopen!\n);return NULL;}编译成.sogcc -Wall -fPIC -shared -o myfopen.so myfopen.c设置环境变量后执行sample程序我们可以看到成功劫持了fopen函数并返回了NULL$ LD_PRELOAD./myfopen.so ./sampleCalling the fopen() function...This is my fopen!fopen() returned NULL当然 使fopen始终返回null是不明智的我们应该在假的fopen函数中还原真正fopen的行为看下面代码 这回轮到 dlfcn.h 出场来对动态库进行显式调用使用dlsym函数从c标准库中调用原始的fopen函数并保存原始函数的地址以便最后返回 恢复现场#define _GNU_SOURCE#include #include FILE *fopen(const char *path, const char *mode) {printf(In our own fopen, opening %s\n, path);FILE *(*original_fopen)(const char*, const char*);original_fopen dlsym(RTLD_NEXT, fopen);return (*original_fopen)(path, mode);}Tips 如果dlsym或dlvsym函数的第一个参数的值被设置为RTLD_NEXT那么该函数返回下一个共享对象中名为NAME的符号(函数)的运行时地址。 下一个共享对象是哪个依赖于共享库被加载的顺序。dlsym查找共享库顺序如下 ①环境变量LD_LIBRARY_PATH列出的用分号间隔的所有目录。 ②文件/etc/ld.so.cache中找到的库的列表由ldconfig命令刷新。 ③目录usr/lib。 ④目录/lib。 ⑤当前目录。   编译gcc -Wall -fPIC -shared -o myfopen.so myfopen.c -ldl执行调用原始函数劫持成功$ LD_PRELOAD./myfopen.so ./sampleCalling the fopen() function...In our own fopen, opening test.txtfopen() succeeded三、需要注意的问题以及LD_PRELOAD hook的应用需要注意的问题1.so文件加载及函数劫持的顺序。在很多情况下在你进行劫持之前系统中已经有其他组件也对该函数进行了劫持那么就要特别注意so加载的顺序一定要在其他组件的so库加载前加载自己的so库否则你的hook函数将会被忽略。2.保持原本函数的完备性与业务的兼容性。被hook的函数一定要hook结束时进行返回返回前自己的执行逻辑中不能过度延时过度延时可能造成原有的业务逻辑失败。使用RTLD_NEXT 句柄维持原有的共享库调用链。应用一HIDS入侵检测系统劫持libc库优点: 性能较好, 比较稳定, 相对于LKM更加简单, 适配性也很高, 通常对抗web层面的入侵.缺点: 对于静态编译的程序束手无策, 存在一定被绕过的风险.应用二rootkit恶意软件已经有多种恶意软件应用了此技术常见的有cub3、vlany、bdvl等之后的几篇文章我将会通过分析以上几款恶意软件来揭秘.so共享库劫持技术的具体应用敬请期待
http://www.pierceye.com/news/572574/

相关文章:

  • 易托管建站工具wordpress多个single
  • 建一个电影网站多大 数据库半厘米wordpress
  • 住房和建设厅网站首页网站源码怎么写
  • 宁波新亚建设公司网站简单网站建设
  • 做网站没赚到钱网站后台地址忘记了
  • 备案网站公共查询安阳县
  • wordpress 超级管理员seo优化网络公司
  • 商务推广网站宝塔做网站
  • 我想建一个网站怎么建python做的大型网站
  • 为网站设计手机版wordpress怎样比较安全
  • 网站优化方式重庆建设网站哪家专业
  • php做网站基本流程旅游网站论文
  • 网站前期准备网页制作需要学多久
  • 广园路建设公司网站建app网站要多少钱
  • 网站域名是什么东西wordpress农历插件
  • 专业网站建设公司首选公司wordpress fruitful
  • 微博wap版登录入口seo 网站标题长度
  • 网站面包屑导航设计即位置导航局域网安装wordpress
  • 泰安网站建设xtempire国家开放大学网站界面设计
  • 绘制网站结构图建站公司售后服务
  • 漂亮的博客网站模板装修公司网站开发
  • 厦门网站注册与网页设计公司wordpress找不到php的拓展
  • 常熟网站建设icp备案自己怎样创建网站
  • 移动互联网站建设seo流量排名门户
  • 做腰椎核磁证网站是 收 七设计网络品牌营销方案思路
  • 外贸网站建站系统基于php网站开发
  • 可以做代销的网站都有哪些神马网站快速排名案例
  • 个人能申请网站吗百度站长提交网址
  • 给素材网站做签约设计不想做了网络规划设计师教程第2版pdf
  • 新做的网站怎样推广html代码加密