随笔分类 -  网络编程

摘要:上篇随笔中实现了隐藏进程,在实际的处理中,经常会用模块来达到修改系统调用的目的,但是当插入一个模块时,若不采取任何隐藏措施,很容易被对方发现,一旦对方发现并卸载了所插入的模块,那么所有利用该模块来隐藏的文件就暴露了,所以应继续分析如何来隐藏特定名字的模块。 这里我们可以通过/proc文件系统来向内核传递命令的方式,实现获取root权限、隐藏模块、隐藏进程、显示进程、显示模块、允许卸载模块等功能。 对于什么是/proc文件系统,以及如何通过它来跟内核通信,可以参考这里: http://www.ibm.com/developerworks/cn/linux/l-proc.html 下面直接贴代码. 阅读全文
posted @ 2013-05-01 20:34 人若无名 阅读(2570) 评论(3) 推荐(1) 编辑
摘要:实现隐藏进程一般有两个方法:1,把要隐藏的进程PID设置为0,因为系统默认是不显示PID为0的进程。2,修改系统调用sys_getdents()。 Linux系统中用来查询文件信息的系统调用是sys_getdents,这一点可以通过strace来观察到,例如strace ls 将列出命令ls用到的系统调用,从中可以发现ls是通过getdents系统调用来操作的,对应于内核里的sys_getedents来执行。当查询文件或者目录的相关信息时,Linux系统用 sys_getedents来执行相应的查询操作,并把得到的信息传递给用户空间运行的程序,所以如果修改该系统调用,去掉结果中与某些特定文件的 阅读全文
posted @ 2013-05-01 19:55 人若无名 阅读(5537) 评论(0) 推荐(1) 编辑
摘要:选修了一门信息安全专业的课,做了个实验,是实现网络抓包的功能:代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<netinet/ip_icmp.h>#include<netinet/tcp.h>#include<netinet/udp.h>#include<arpa/inet.h>#include<sys/socket.h>#include<sys/types.h>#define BUFFSIZE 102 阅读全文
posted @ 2013-04-02 21:38 人若无名 阅读(867) 评论(0) 推荐(0) 编辑
摘要:一:套接字编程相关知识点Socket概念:套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机进行,也可以跨网络进行。网络中的进程是通过socket来通信的。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。Socket基本操作:Socket编程的基本函数有:socket(),bind(),ac 阅读全文
posted @ 2013-03-19 15:27 人若无名 阅读(1612) 评论(2) 推荐(2) 编辑