Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux网络编程——原始套接字编程

Linux网络编程——原始套接字编程

原始套接字编程和之前的 UDP 编程差不多,无非就是创建一个套接字后,通过这个套接字接收数据或者发送数据。区别在于,原始套接字可以自行组装数据包(伪装本地 IP,本地 MAC),可以接收本机网卡上所有的数据帧(数据包)。另外,必须在管理员权限下才能使用原始套接字。原始套接字的创建:int socket ( int family, int type, int protocol );参数: family:协议族 这里写PF_PACKET type: 套接字...
Linux网络编程——原始套接字实例:MAC 头部报文分析

Linux网络编程——原始套接字实例:MAC 头部报文分析

通过《Linux网络编程——原始套接字编程》得知,我们可以通过原始套接字以及 recvfrom( ) 可以获取链路层的数据包,那我们接收的链路层数据包到底长什么样的呢?链路层封包格式MAC 头部(有线局域网)注意:CRC、PAD 在组包时可以忽略链路层数据包的其中一种情况:unsigned char msg[1024] = { //--------------组MAC--------14------ 0xb8, 0x88, 0x...
C语言数据类型是如何被大多数计算机系统所支持?

C语言数据类型是如何被大多数计算机系统所支持?

问题:在读K&R版的The C Programming Language一书时,我在[介绍,第3页]看到这样一条说明:因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。这段黑体说明了什么?能否找到一个例子来说明C语言中的某种数据类型或控制结构不被某种计算机系统直接支持呢?回答:事实上,C语言中确实有不被直接支持的数据类型。在许多嵌入式系统中,硬件上并没有浮点运算单元。因此,如果你写...
程序是怎么执行的

程序是怎么执行的

Docker 是一个建立在操作系统+编译器基础之上的系统,所以了解操作系统,编译器以及程序运行机制对我们理解 Docker 来说非常重要。本文是一个自己的体会,有很多不精确的地方,目的是希望大家多关注低层,多修炼内功,多读好书。 一直想写篇文章来说明在程序运行过程中操作系统都干了些什么事。下面我试着说明: 首先,任何程序都是有格式的,所谓无规矩不成方圆,任何美的,精巧的事物都是精密组织的,程序也一样。我之前用的最多的是c#与 java,有趣的是,当时很...
C++学习笔记:引用

C++学习笔记:引用

1. 引用的定义及意义a. 引用的定义引用必须初始化。因为引用一经定义,它就不能再指向其他对象了,所以需要进行初始化。type & quote_name=var_name;但引用不能用引用对象的地址进行初始化。如果想对对象的地址进行引用,可以定义一个指针引用。b. 引用的意义int a=10;int &b=a;这里,b就是一个引用,b实际上指向的是a的地址,但它不是指针,是引用,是a的别名,a能做的b都能做。2. 引用的应用实际应用中,引用...
C++中的重载、覆盖、隐藏

C++中的重载、覆盖、隐藏

前几天面试时被问及C++中的覆盖、隐藏,概念基本答不上来,只答了怎么用指针实现多态,也还有遗漏。最终不欢而散。回来后在网上查找学习了一番,做了这个总结。概念一、重载(overload)指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。(1)相同的范围(在同一个作用域中) ;(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。(5)返回值可以不同;二、重写(也称为覆盖 override)是指派生类重新定义基类...
华硕发布补丁修复路由器漏洞

华硕发布补丁修复路由器漏洞

华硕路由器的infosvr服务被发现【注1】有安全漏洞,能被利用在本地网络实现任意指令执行。影响的路由器型号包括了RT-N66U、RT-AC87U、RT-AC66U和RT-N56U等。华硕刚刚释出了新固件Version 3.0.0.4.376.3754(RT-AC66U,RT-N56U等),用户最好尽快升级。注1:用华硕路由器?你的网络能被他人控制用华硕路由器?有很高的可能性你的网络能被网络中的其他人完全控制。安全研究人员报告了一个影响所有固件版本的未修复...
fcntl函数加文件锁

fcntl函数加文件锁

对文件加锁是原子性的,可以用于进程间文件操作的同步。在Linux下,有三个函数可以对文件进程加锁,分别是fcntl、flock、lockf。这里只说fcntl,它的用法也是最复杂的。 fcntl是file control的缩写。在linux下大部分设备都是文件,所以fcntl的功能也比较多,包括:Duplicating a file descriptor(复制文件描述符)File descriptor flags(操作close-on-exec标志)Fi...
实例讲解黑客如何执行SQL注入攻击

实例讲解黑客如何执行SQL注入攻击

一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试。这是安全评估的一个部分,所以尽管我们之前没有使用过SQL注入来渗透网络,但对其概念也相当熟悉了。最后我们在这项任务中大获成功,现在来回顾一下这个过程的每一步,将它记录为一个案例。“SQL注入”是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。如果应用毫无防备地创建了SQL字符串...
Linux使用共享内存通信的进程同步退出问题

Linux使用共享内存通信的进程同步退出问题

两个甚至多个进程使用共享内存(shm)通信,总遇到同步问题。这里的“同步问题”不是说进程读写同步问题,这个用信号量就好了。这里的同步问题说的是同步退出问题,到底谁先退出,怎么知道对方退出了。举个例子:进程负责读写数据库A,进程B负责处理数据。那么进程A得比进程B晚退出才行,因为要保存进程B处理完的数据。可是A不知道B什么时候退出啊。A、B是无关联的进程,也不知道对方的pid。它们唯一的关联就是读写同一块共享内存。正常情况下,进程B在...
Privoxy多个释放后重利用远程代码执行漏洞(CVE-2015-1031)

Privoxy多个释放后重利用远程代码执行漏洞(CVE-2015-1031)

发布日期:2015-01-07更新日期:2015-01-14受影响系统:Privoxy Privoxy 3.0.22描述:BUGTRAQ ID: 71993CVE(CAN) ID: CVE-2015-1031Privoxy是非缓存型Web代理。Privoxy 3.0.22之前版本在实现上存在多个释放后重利用漏洞,攻击者可利用这些漏洞在受影响应用上下文中执行任意代码。<*来源:vendor*>建议:厂商补丁:Privoxy-------目前厂商已...
Qt Creator自定义编译运行步骤

Qt Creator自定义编译运行步骤

一直用Qt Creator开发。无它,只是因为linux下C++ IDE选择不多。同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用。用Qt Creator开发一般的工程,是不用修改编译、运行步骤的。编译、运行都是一键完成。不过,像我这个多进程的工程,由一个总工程管理,下面分为多个子工程。运行时需要由一个进程启动其他进程,但是Qt编译的文件却是分开的这么多的文件夹管理很不方便,而且不同进程需要读相同的配置文件,路径也不好配。于是我只好在编译时都...
<< 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 >>