关闭

从零开始写Go网络通信框架(5)——断线重连

在上面的4篇文章中,我们已经搭建了一个简易的socket通讯框架,但是有一个问题。如果服务端主动关闭了连接,这时候client端就接收不到服务端发送的消息。这时候我们就需要做一个断线重连的处理。 在这里,我们采用判断共享内存的方式,既当接收不到服务器端发送的消息时,向channel中写入数据。 //接收服务端发来的消息 func ReadMsg(conn net.Conn,ch chan in...
阅读(91) 评论(0)

riskdetect——恶意软件以及webshell检测

##检测方法 文件 hash 比较以及 fuzzy hash ([已知文件|未知文件]) (ssdeep) 代码特征值,危险函数检测 (yara) 最开始的思路就是调用yara和ssdeep这两个程序进行检测,但是后来发现直接用编译好的ssdeep进行检测的时候会有一些问题。于是就用go实现了ssdeep的绑定。gossdeep——ssdeep的go绑定...
阅读(51) 评论(0)

gossdeep——ssdeep的go绑定

静静的写一段代码,然后不说说话。 import ctypes from ctypes import * dll=cdll.LoadLibrary("./libfuzzy.so") ret1=dll.fuzzy_compare(c_char_p("3:YD6xL4fYvn:Y2xMwvn"),c_char_p("3:YD6xL4fYvn:Y2xMwvp")) ret2=dll.fuzzy_co...
阅读(69) 评论(0)

go语言自己实现Set

Go 语言本身是不提供 set 的,但是我们可以很方便的实现它。代码如下: package main import ( "sync" "fmt" ) type Set struct { m map[interface{}]bool sync.RWMutex } func New() *Set { return &Set{ m:map[interface{}]bool{},...
阅读(50) 评论(0)

检测文件mime类型和模糊哈希

gomagic   项目地址:https://github.com/MXi4oyu/gomagic  基于libmagic和ssdeep检测文件类型和模糊哈希 依赖: libmagic Debian或Ubuntu: apt-get install libmagic-dev RHEL,CentOS或者 Fedora:yum install file-devel ...
阅读(64) 评论(0)

分布式任务队列与任务调度系统Celery进阶——分布式爬虫

新建文件crawlertask.py,用于执行数据抓取任务,代码如下。 #coding:utf-8 from celery import Celery,platforms import requests from bs4 import BeautifulSoup app=Celery('tasks',broker='redis://localhost:6379/0') app.conf....
阅读(145) 评论(0)

分布式任务队列与任务调度系统Celery入门

Celery是基于Python的开源分布式任务队列与任务调度系统。     1.什么是任务队列呢?     任务队列是一个将任务分布到多线程或多台机器上的一种机制。一个任务队列的输入(一个任务)是一个工作单元。专用的工作者进程将会持续监控任务队列并执行其中的任务。     2.Celery快速入门     Celery的模块架构     任务代...
阅读(136) 评论(0)

学习笔记-分布式数据抓取

远程过程调用(Remote Procedure Call,RPC)是在本地调用远程方法的技术。使用RPC技术可以方便的进行分布式数据抓取。Python自带RPC模块,xmlrpc。以下实例均在Python3.5.3上测试通过。 基本思路如下:在2台阿里云服务器部署RPC服务端,文件名为rpc_server.py。这两台阿里云服务器均为具有独立公网IP的数据抓取节点。而在本机部署RPC客户端,文件...
阅读(129) 评论(0)

最新webshell大合集

收集与整理了各种webshell,以便在日后的项目中做Webshell检测训练。 https://github.com/tennc/webshell   各种webshell集合 https://github.com/ysrc/webshell-sample webshell样本 https://github.com/xl7dev/WebShell Webshe...
阅读(836) 评论(0)

开源漏洞扫描器合集

https://github.com/Canbing007/wukong-agent python redis awvs api nessus api =========================================== https://github.com/boy-hack/bugscan w8ay专属扫描器 ==============...
阅读(620) 评论(0)

Windows环境Node.JS入坑指南——环境搭建

我是2010年注册的CSDN账号,也是在2010年用坏了四个长城上网本后购买的第一个真正于可用于工作的笔记本。三星、铝镁合金的,在当时相当上档次。 给这个笔记本去了一个ID:MyPC2010。而这个ID就是我在CSDN上的用户名。当然,在安全圈,我的ID是:MXi4oyu。有人说我是“学霸”,啥都学,学傻了。因为我总在朋友圈和qq空间分享各种技术文章,视乎跨度还有点大。其实我觉得跨度不算大,因为都...
阅读(172) 评论(0)

Docker技术内幕3——Namespace的接口和使用

对Namespace的操作,主要是通过clone、setns、unshare这三个系统调用来完成的。 clone可以用来创建新的Namespace。 每个进程在procfs下都有一个ns目录,用来存放namespace相关的信息。...
阅读(117) 评论(0)

Docker技术内幕2——Cgroup的接口和使用

通过上一篇文章,我们已经了解到,Cgroup是Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用。 Cgroup的原生接口通过cgroupfs提供,是一种虚拟文件系统。默认被挂载到/sys/fs/cgroup目录下。 下面我们利用Cgroup特性来限制CPU的使用。 首先我们写一个消耗CPU的脚本,代码如下: #!/bin/sh x=0 while [ Tr...
阅读(126) 评论(0)

Docker技术内幕1——容器技术浅析

目前两个比较火的容器技术是LXC和Docker。 LXC的项目地址是:https://github.com/lxc/lxc Docker的项目地址是:https://github.com/moby/moby 容器技术主要包括Namespace和Cgroup这两个内核特性。 Namespace主要做访问隔离。原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,对于这类资源,因...
阅读(135) 评论(0)

Go语言操作PostgreSQL数据库——学习笔记

Go实现的支持PostgreSQL的驱动有很多,但是github.com/lib/pq是目前使用最广泛的,也是最稳定的一个Go语言实现的PostgreSQL驱动。这里,我就使用github.com/lib/pq(以下简称pq)来进行演示。 首先需要创建一个数据库表,语句如下: CREATE TABLE public."user" (     id serial NOT NULL,...
阅读(281) 评论(0)

DockerXScan——Docker镜像漏洞扫描器

最近刚学Go语言,参考clair写了一个Docker镜像漏洞扫描器。 算是熟读了clair的源码,仿造轮子吧。自己的Go语言编程练习之作。 链接地址:https://github.com/MXi4oyu/DockerXScan   感谢golang交流群里的众兄弟,没有你们的帮助,我很难在短时间内完这个项目。...
阅读(131) 评论(0)

C语言选择排序

简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序处理流程 (1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 代码...
阅读(130) 评论(0)

JavaScript面向对象(2)——创建对象的工厂模式与构造函数模式

虽然Object构造函数和对象字面量都可以用来创建单个对象,但是当我们创建多个对象的时候就会产生大量的重复代码。例如: var user1={ uname:"jack", age:17, SayHello:function () { alert("Hello,my name is: "+this.uname+".I'm "+this.age+" years...
阅读(100) 评论(0)

JavaScript面向对象(1)——理解对象

面向对象的语言有一个标志,那就是class。而通过class可以创建任意多个具有相同属性和方法的对象。javascript与传统的面向对象语言(C++、Java、C#、PHP等)是不同的,它并没有类的概念,因此它的对象也与基于class的语言中的对象有所不同。...
阅读(111) 评论(0)

从零开始写Go网络通信框架(4)——全双工收发消息

经过上面三篇文章,我们已经写了一个简单的C/S框架,可以实现客户端与服务端进行发送消息。但这是一个单向通讯的。我们要想让客户端接收服务端发来的命令,并执行响应的动作,就需要写成全双工收发消息。即客户端也能接收服务端发来的指令。 下面我在客户端定义一个方法,用来接收服务端的消息。 //接收服务端发来的消息 func ReadMsg(conn net.Conn) { //存储被截断的数据...
阅读(211) 评论(0)
46条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:365191次
    • 积分:5849
    • 等级:
    • 排名:第4819名
    • 原创:44篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    博主推荐