fd

6_Web信息收集_目录扫描_OpenVAS

末鹿安然 提交于 2020-01-22 18:19:17
OpenVAS (Open Vunnerablity Assessment System)开放的漏洞评估系统,一个用于评估目标漏洞的杰出框架,开源且功能十分强大; 它于著名的Nessus“本是同根生”,在Nessus商业化后,仍然坚持开源;号称当前最好用的开源目标漏洞扫描工具; 主要用途是来检测目标网络或主机的安全性; 它的评估能力来源于数万个漏洞测试程序,这些程序都是以插件形式存在; openvas基于(c/s)(客户端/服务器端) (B/S)(浏览器端/服务器端)架构进行工作;用户通过专门浏览器或者专用客户端程序来下达扫描任务;执行扫描操作并提供扫描结果; http://www.openvas.org http://greenbone.net 部署OpenVAS 1.升级kali linux 换国内源 gedit /etc/apt/sources.list 改为: deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free 然后: 执行 apt-get update 命令即可更新源 执行 apt-get

Linux中IIC总线驱动分析

断了今生、忘了曾经 提交于 2020-01-21 07:26:01
虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中的实现却相当复杂.通过阐述Linux系统中I2C总线体系结构,在此基础上完成嵌入式Linux系统中I2C总线驱动的开发. 1. 嵌入式Linux中I2C驱动程序分析 I2C(Inter2IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.嵌入式系统中,微控制器通过I2C总线可随时可对各个系统中的组件进行设置和查询,以管理系统的配置或掌握组件的功能状态来控制外围设备.I2C总线因为协议成熟,引脚简单,传输速率高,支持的芯片多,并且有利于实现电路的标准化和模块化,得到了包括Linux在内的很多操作系统的支持,受到开发者的青睐.在Linux环境下使用I2C总线协议,需要理解Linux的I2C总线驱动的体系结构,在此基础上来进行嵌入式驱动程序和应用程序的开发. 1.1 Linux的I2C驱动框架 Linux内核的I2C总线驱动程序框架如图1所示: Linux的I2C体系结构分为3个组成部分: I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法(即"al2gorithm")上层的,与具体适配器无关的代码以及探测设备,检测设备地址的上层代码等.这部分是与平台无关的

Redis源码剖析和注释(二十)--- 网络连接库剖析(client的创建/释放、命令接收/回复、Redis通信协议分析等)

流过昼夜 提交于 2020-01-21 04:16:00
Redis 网络连接库剖析 Redis网络连接库介绍 Redis网络连接库对应的文件是networking.c。这个文件主要负责 客户端的创建与释放 命令接收与命令回复 Redis通信协议分析 CLIENT 命令的实现 我们接下来就这几块内容分别列出源码,进行剖析。 客户端的创建与释放 redis 网络链接库的源码详细注释 2.1客户端的创建 Redis 服务器是一个同时与多个客户端建立连接的程序。当客户端连接上服务器时,服务器会建立一个server.h/client结构来保存客户端的状态信息。所以在客户端创建时,就会初始化这样一个结构,客户端的创建源码如下: client * createClient ( int fd ) { client * c = zmalloc ( sizeof ( client ) ) ; //分配空间 // 如果fd为-1,表示创建的是一个无网络连接的伪客户端,用于执行lua脚本的时候。 // 如果fd不等于-1,表示创建一个有网络连接的客户端 if ( fd != - 1 ) { // 设置fd为非阻塞模式 anetNonBlock ( NULL , fd ) ; // 禁止使用 Nagle 算法,client向内核递交的每个数据包都会立即发送给server出去,TCP_NODELAY anetEnableTcpNoDelay ( NULL , fd

OA与EHR系统集成方案

僤鯓⒐⒋嵵緔 提交于 2020-01-21 03:02:45
1.背景介绍 为实现员工请假、加班等人事流程流程化、考勤自动化目标,需要将OA中的人事流程与EHR系统做对接,做到员工只需要填写申请单,审核通过后自动进入EHR系统做考勤结算。在此次系统对接中,OA系统提供商为蓝凌科技,EHR系统提供商为同鑫科技。此次系统对接范围:人事请假流程、加班流程、补打卡流程、员工离职流程。 2.方案梳理 本次系统集成采用中间表的方式,步骤如下: 2.1 将OA数据库链接到EHR数据库,链接方法参照: 链接数据库 。 此处略写 2.2 将人事流程数据写入中间表。 请假流程、加班流程、补卡流程、离职流程均增加一张中间表用于存储请假、加班等实际业务数据。流程的发起在OA系统,经过审核,流程结束后写入到中间表。OA系统要确保中间表数据的正确性,因此在流程校验上要严格控制 考勤流程校验 ,其次,遇到员工申请单写错的情况,也要有完善的处置办法,在OA里面增加考勤异常报修的流程,用来处理请错假、补错卡等考勤问题。 2.2.1 加班中间表 fd_id fd_card fd_name fd_date fd_hours id 识别卡号 员工姓名 加班所属日期 加班小时数 EHR系统计算加班时间是根据员工的排班来计算的,因此只需要知道员工的识别卡号以及加班所属日期和加班小时数即可,此处的中间表是加班申请流程所产生的数据,进入到EHR系统后将用来和考勤打卡数据做比较

腾讯后台开发面试笔试C++知识点参考笔记

馋奶兔 提交于 2020-01-21 00:15:23
文章是由自己笔试面试腾讯的笔记整理而来,整理的时候又回顾了一遍,中间工作忙断断续续整理了半个月,才完成现在的样子。主要是针对面试的C++后台开发岗位,涵盖了大部分C++相关的可能会被问到的技术点,作为面试技术的参考回头查阅。 这篇笔记是基础C++知识点总结,没有过多的阐述后台开发的系统架构和分布式后台服务设计相关,还有c++11新特性,这些笔试面试也会被问到但不在这篇讨论范围,可以关注专栏后面如果有机会再补上。 为什么析构函数要是虚函数? 基类指针可以指向派生类的对象(多态性),如果删除该指针delete []p;就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数,这样整个派生类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调用基类的析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全。所以,将析构函数声明为虚函数是十分必要的。 gdb调试命令 step和next的区别? 当前line有函数调用的时候,next会直接执行到下一句 ,step会进入函数. 查看内存 (gdb)p &a //打印变量地址 gdb)x 0xbffff543 //查看内存单元内变量 0xbffff543: 0x12345678 (gdb) x /4xb 0xbffff543 //单字节查看4个内存单元变量的值

关于select中fd限制问题

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-20 03:14:30
关于select中fd限制问题 转载自: http://iredfox.diandian.com/post/2009-10-22/7402106 select 是多路复用,或异步模型中经常用到的一个系统调用。 基本原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 该函数的一个缺点就是nfds 不能太大。上限为1024 .为什么 会有这样的 限制,今天就 来一起看看select的具体实现。 再/usr/include/sys/select.h中可以看到select 使用的基本数据的定义: /* The fd_set member is required to be an array of longs. */ typedef long int __fd_mask ; /* Some versions of <linux/posix_types.h> define these macros. */ #undef __NFDBITS #undef __FDELT #undef __FDMASK /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define

Redis源码剖析和注释(十九)--- Redis 事件处理实现

自古美人都是妖i 提交于 2020-01-20 00:22:23
Redis 事件处理实现 Redis事件介绍 Redis服务器是一个事件驱动程序。下面先来简单介绍什么是事件驱动。 所谓事件驱动,就是当你输入一条命令并且按下回车,然后消息被组装成Redis协议的格式发送给Redis服务器,这就会产生一个事件,Redis服务器会接收该命令,处理该命令和发送回复,而当你没有与服务器进行交互时,那么服务器就会处于阻塞等待状态,会让出CPU从而进入睡眠状态,当事件触发时,就会被操作系统唤醒。事件驱动使CPU更高效的利用。 事件驱动是一种概括和抽象,也可以称为I/O多路复用(I/O multiplexing),它的实现方式各个系统都不同,一会会说到Redis的方式。 在redis服务器中,处理了两类事件: 文件事件(file event):Redis服务器通过套接字于客户端(或其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。 时间事件(time event):Redis服务器的一些操作需要在给定的事件点执行,而时间事件就是服务器对这类定时操作的抽象。 2. 事件的抽象 Redis将这两个事件分别抽象成一个数据结构来管理。redis 所有源码注释 2.1 文件事件结构 /* File event structure */ typedef struct aeFileEvent { // 文件时间类型:AE_NONE,AE

scull 代码

我的未来我决定 提交于 2020-01-19 13:34:53
//scull.h /* * scull.h -- definitions for the char module * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files. The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates. No warranty is attached; * we cannot take responsibility for errors or fitness for use. * * $Id:

《疯狂Python讲义》之文件IO

放肆的年华 提交于 2020-01-19 12:55:33
使用pathlib模块操作目录 pathlib模块提供了一组面向对象的类,这些类可代表各种操作系统上的路径,程序可通过这些类操作路径。 PurePath:代表并不访问实际文件系统的“纯路径” Path:代表访问实际文件系统的“真正路径” PurePath的基本功能 程序在创建PurePath和Path时,即可传入单个路径字符串,也可以传入多个路径字符串,PurePath会将它们拼接成一个字符串。 pp= PurePosixPath ( ’ crazyit ’,’some/path ’,’info ’ ) #看到输出 UNIX 风格的路径 print(pp) # crazyit/ some/path/info 如果在创建PurePath不传入任何参数,系统默认创建代表当前路径的PurePath #如果不传入参数,默认使用当前路径 pp = Pure Path () print(pp) #. 如果在创建PurrePath时传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效 #如果传入的参数包含多个根路径 ,则只有最后一个根路径及后面的子路径生效 pp= PurePosixPath ('/etc''/usr','lib64') print(pp) # / usr/ lib64 pp = PureW ndowsPath ( 'c: /Windows','d:info' )

Android系统消息处理机制

会有一股神秘感。 提交于 2020-01-19 12:09:55
Android系统消息处理机制 前言 在Android应用开发中,主线程一般都是UI操作,子线程去完成一些耗时操作。主线程会一直等待系统或者用户的响应,从而完成对UI的渲染和显示。在学些之前,先了解两个linux的知识点: 管道(pipe):管道是一种IPC机制,作用于有血缘关系的进程之间,完成数据传递,调用pipe系统函数可创建一个管道。其本质是一个虚拟文件(实际为内核缓冲区),采用半双工通信方式,数据只能在一个方向流动。 int pipe ( int pipefd [ 2 ] ) ; //成功:0;失败:-1,设置errno 函数调用成功后返回r/w两个文件描述符,无需open,但要显示的close,fd[0] --> r,fd[1] --> w,向管道文件读写数据实际上是在读写内核缓冲区。下面是完成进程间通信的调用逻辑: 父进程调用pipe函数创建管道,得到两个文件描述符fd[0]、fd[1]指向管道的读写端。 父进程调用fork创建子进程,那么子进程也有两个文件描述符指向同一管道。 3)父进程关闭管道读端,子进程关闭管道写端。父进程可以向管道中写入数据,子进程向管道中的数据读出,由于管道是利用环形缓冲区实现得,数据从写端流入管道,从读端流出,这样就实现了进程间通信。 epoll 机制:epoll是linux内核的一种可拓展的IO事件处理机制