- 博客(38)
- 资源 (6)
- 收藏
- 关注
原创 TCP协议的一些小细节
前言之前做DPI,一直做封包解包,感觉对tcp协议还是比较了解的,后来发现还是远远不够的。开这个博客是记录一下遇到的细节,记录在这里。有时间就补充一下tcp协议1. 为什么是三次握手?三次握手的目的是同步服务端和客户端的序列号,并且需要确认。所以三次握手也是不难理解的。第一次握手时,客户端把自己的序列号告诉服务端; 第二次握手时,服务端把自己的序列号告诉客户端,并且确认自己收到了客户端的序列号;第三
2016-12-09 14:27:24 1064
转载 sync/atomic - 原子操作
sync/atomic - 原子操作https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter16/16.02.md对于并发操作而言,原子操作是个非常现实的问题。典型的就是i++的问题。 当两个CPU同时对内存中的i进行读取,然后把加一之后的值放入内存中,可能两次i++的结果,这
2016-06-21 14:40:02 5011
原创 Clion 使用自己编写的 Makefile编译
Clion 目前支持使用 cmake 来编译代码,如果习惯了自己写 makefile,那么还需要通过 cmake 的 add_custom_target 来调用make 命令来实现编译了。参考了http://stackoverflow.com/questions/26918459/using-local-makefile-for-clion-instead-of-cmake 的回答,简单调试修改了一
2016-05-27 10:56:10 31330
原创 go 方法
package mainimport “fmt”type mystring stringfunc (self mystring)String()string{ return string(self) }func (self mystring) show(){ self = “hi” fmt.Println(self) }func (self *mystring) s
2016-05-13 10:39:57 701
原创 学习&使用-libcurl
学习 & 使用 libcurl想用 C 写一个 httpclient,作为一个子模块,以后读取一个 web 的配置文件,etcd 的数据等等,都很方便。但是自己用 tcp socket 来写的话比较麻烦,需要自己写 GET 或者 POST 请求,然后解析响应,虽然不是特别麻烦,但是用开源库的话会更简单。搜索了一下,libcurl 是非常符合我的需求的。简介libcurl主要功能就是用不同的协议连接和
2016-03-04 16:17:58 12433
原创 rsyslogd-学习&使用
简介【这一篇博客不是完整的解释 rsyslogd的运行原理,只是一个自己查找资料的记录】rsyslog 是一个 syslogd 的多线程增强版。现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了。rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件学习资料1. 官方网站官方网站: http://www.rsyslog.com/ 这是官
2016-02-29 16:30:25 12710
原创 GO 开发 IDE 环境--IDEA-go-lang-plugin
最近在使用 go ,想着用vim来学习还可以,还是整一个 go 的 IDE 比较方便。试用了 liteIDE,不太习惯,还是比较喜欢 IntelliJ系列的,搜索了一下,安装一个插件就可以了。网上大部分都是本地编译安装的教程,感觉比较麻烦。这些插件可以之间用 IDEA 的插件管理工具就可以了。这个插件的源码地址为:https://github.com/go-lang-plugin-org/go-la
2016-02-29 09:53:07 3127
原创 读书笔记 -《Python 黑帽子》 ( 五 )
读书笔记系列文章一直都在读书,读了忘,忘了再读。不如把每次学到的东西都写下来第六章 扩展 Burp 代理这一章,作者介绍了攻击 Web应用 的一个好工具,Burp Suite,并且写了两个扩展工具,作为「顺手的工具」以实施攻击和扩展侦察。 可以到 http://portswigger.net 下载 Burp,Kali 系统已经安装了这个工具,我也就省去了安装的过程。(Kali 棒棒的!)
2016-02-20 23:27:21 1955
原创 初用 IRC & freenode
今天看书看到了古老的 IRC,一直都没有试过,今天就尝试了一下,专注于聊天的东西啊。 把初用的过程记录下来先找了一下客户端,命令行版本的我试了一下 weechat(和微信就差一个字母),图形的用了 TimeChat。 并没有推荐使用的意思,没有用更多的客户端做对比。下面以 weechat为例,来写一下基本的使用命令。 安装 weechat: Mac 里面用 brew install weech
2016-02-19 23:05:10 14307 1
原创 读书笔记 -《Python 黑帽子》 ( 四 )
读书笔记系列文章一直都在读书,读了忘,忘了再读。不如把每次学到的东西都写下来第五章 Web 攻击Web 的套接字函数库: urllib2第二章的明星: Paramiko 第三章的明星: socket 第四章的明星: Scapy 第五章的明星: urllib2 这一节就看看这个 urlib2 库开源 Web 应用安装暴力破解目录和文件位置包里破解 html 表格认证
2016-02-19 10:58:02 2243 1
原创 读书笔记 -《Python 黑帽子》 ( 二 )
读书笔记系列文章一直都在读书,读了忘,忘了再读。不如把每次学到的东西都写下来第三章 网络:原始套接字和流量嗅探我的工作内容就是用C 语言写嗅探工具和 DPI。基本的工作原理和本章的内容是非常相似的。所以理解起来会比较容易一些。arp 欺骗和中间人攻击也玩过,所以对这些知识并不陌生。玩的时候用的也是别人的工具,arp 欺骗用的 dsniff 中的 arpspoof,中间人攻击用的 sslsplit,有
2016-02-18 23:45:03 2633
原创 读书笔记 -《Python 黑帽子》 ( 三 )
读书笔记系列文章一直都在读书,读了忘,忘了再读。不如把每次学到的东西都写下来第四章 Scapy: 网络的掌控者Scapy 的十分强大的,前两章的东西可以用 Scapy 用简单的几行代码就能实现。BPF,pcap 文件这些基本通用的东西在阅读本章前最后先自己补充一下。 Scapy有一个非常强大的功能就是读取 pcap 文件,然后对其中的会话做重组。在写嗅探工具的时候,要么用 libnids来做 tc
2016-02-18 23:42:00 2510
原创 读书笔记 -《Python 黑帽子》 ( 一 )
读书笔记系列文章一直都在读书,读了忘,忘了再读。不如把每次学到的东西都写下来python黑帽子black hat python黑客与渗透测试
2016-02-18 23:05:12 17196
原创 Python 连接 Hbase
Hbase 提供了 thrift 和 thrift2 两种服务供其它语言客户端调用,方便各种语言编写的程序访问 Hbase。python 作为开发效率比较高的语言,可以使用 python 完成一些简单的任务,而不需要编写 Map Reduce 程序来处理 Hbase 数据。先写这一段话,以后慢慢更新本博客。 准备封装python 访问 Hbase 的代码,项目托管到 github
2016-01-26 16:56:03 1493
原创 TLS/SSL 实例分析
TLS/SSL 示例分析简介 TLS/SSL 协议并且在 kali linux 下用 wireshark抓取 curl https://www.baidu.com 的数据详细分析这个会话的数据,一节协议格式
2016-01-26 16:48:25 1407
原创 vagrant doc
vagrant doc1 概述本文档是官方文档的简单摘抄翻译。2. 为什么使用 Vagrant Vagrant 是一款用来构建虚拟开发环境的工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。 官方说法是:vagrant 提供一个简单可配置的,可复制的,移植的工作环境,可以用来建立统一可控制的统一标准的工作流环境,用于提高生查理和灵活性。如果你是开发者。。。。如果你是运
2015-12-04 09:37:46 541
原创 libpcap详解
libpcap详解转自 http://blog.chinaunix.net/uid-21556133-id-120228.html,内容不错,但是原博客的格式比较乱,重新整理了一下。libpcap(Packet Capture Library),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框
2015-10-21 16:30:23 1842
原创 python 连接 hive
由于版本的不同,Python 连接 hive 的方式也就不一样。在网上搜索关键字 python hive 的时候可以找到一些解决方案。大部分是这样的,首先把hive 根目录下的$HIVE_HOME/lib/py拷贝到 python 的库中,也就是 site-package 中,或者干脆把新写的 python 代码和拷贝的 py 库放在同一个目录下,然后用这个目录下提供的 thrift 接口调用。示例
2015-09-23 23:59:45 26842
原创 TCP/IP协议-ICMP和 ping 程序
ICMP、IGMP、UDP、TCP 协议是基于 IP 协议的。 ICMP 协议是封装在 IP 协议里的。 完整的 ICMP 报文的格式是这样的:| 以太网头部 | IP 首部 | ICMP 报文 | CRC |ICMP 协议的强大之处在于它的丰富的报文类型。可以简单简单的分为两种报文,一种是查询报文,比如ping 程序使用的回显应答;另一种是差错报文,比如主机不可达。ICMP 报文的前32位 : |
2015-09-21 18:02:07 1526
原创 TCP/IP协议学习--链路层
本博文记录作者学习 TCP/IP协议的过程,主要的学习材料是《TCP/IP 详解 卷1:协议》,下文中称为『图书』。由于这本经典图书的古老,还会参考一些其它材料。1. 链路层协议链路层的协议有:以太网协议802委员会发布的协议 802.2 链路层共同特性802.3 针对整个 CSMA/CD 网络802.4 针对令牌总线网络802.5 针对令牌环网络串行接口链路层协议:SLIP、CSLI
2015-09-21 15:14:33 744
原创 一个笔试题目
题目九宫格配合加减乘除,横竖都等于4百度知道上有人类的解法。这里讨论一下用代码来求解。假设每一个变量在0-100之间,在不使用求解公式,降维的前提下编程解题。解法1:每个未知数是一个变量,8个未知数就是8个变量,每个变量可以的取值为0-100。需要8层循环,遍历所有的变量的值。再计算公式是否符合要求。解法2:循环太多,看起来不爽,想了一个方法循环改为递归循环遍历改为递归遍历,其实性能上还不如循环,只
2015-09-06 23:06:29 723
原创 go-tour-zh离线安装
go-tour-zh是一个go语言的教程,可以在线看也可以离线安装。 在线地址为:http://go-tour-zh.appspot.com/welcome/下面介绍离线安装的方法。首先需要下载教程的离线包 使用hg下载,地址为:https://bitbucket.org/mikespook/go-tour-zh 命令为:hg clone https://bitbucket.org/mike
2015-09-06 10:59:48 4019
原创 修改C中const修饰的变量
修改C中const修饰的变量由const修饰的变量是不能修改的,但是C还有指针,通过指针可以实现间接的修改。#include<stdio.h>int main(){ const int limit = 10; int *p = &limit; printf("before: %d\n",limit); *p = 20;
2015-08-19 15:26:52 574
原创 nDPI的DNS协议解析
nDPI的DNS协议解析1. 说明把nDpi的DNS协议解析部分拿出来看看,写了一些注释。使用的是nDpi的1.6版本,该版本下的文件结构比较简单,协议解析的代码都在 src/lib/protocols目录下。dns的解析代码自然就是dns.c了。nDpi的协议解析代码基本有着相同的结构,协议解析的入口函数一般定义为 ndpi_search_###。比如DNS的入口函数就是ndpi_search_
2015-06-25 16:45:56 3983
原创 DNS协议解析
DNS协议解析项目需要,所以要多DNS协议的报文进行解析。读了《TCP/IP详解 卷1》的关于DNS部分的内容后,开始写代码做解析。参考资料:http://blog.163.com/libo_5/blog/static/1569685201031433013508/ http://libo.deng.blog.163.com/blog/static/401574222007850244930/代码
2015-06-23 17:10:43 1817
原创 使用nTopng
nTopng瑞典的nTopng和我现在做的东西挺相似的,所以先在自己机器上安装了一个。是在网上搜索dpi找到的,先看到了opendpi,后来找到这家做的东西,刚更新了2.0,看起来还不错。
2015-06-04 21:42:05 3385
原创 thrift2访问hbase
使用thrift2访问hbase需求与环境项目中需要使用c++访问hbase批量导入数据,所以这两天配置了一个hadoop集群,安装了hadoop,zookeeper,hbase。 使用三台虚拟机,一个namenode节点和2个datanode节点。hbase thrift2简介hbase使用java语言编写,原生的hbase客户端是不支持C++的,所以选择使用thrift完成项目的开发。 th
2015-06-02 20:34:13 7377
原创 redis集群客户端-c语言
redis集群功能是在3.0之后才加入的,客户端的支持非常有限,只有ruby的是开发完成的,python的和java的都在开发中,所以,需要自己开发一个客户端。然后这个客户端最好要支持负载均衡,所以还是有点工作要去做的。https://github.com/0xsky/xredis 这个是网友实现的一个客户端,通过封装hiredis实现,是pool功能,估计是比较好
2015-05-19 15:11:40 2056 1
原创 基类与派生类的虚表是什么时候设定好的?在类定义完编译的时候还是类执行时动态绑定的?
// 虚函数是在构造的时覆盖子类虚表。#includeusing namespace std;class Base{public: Base() { fun(); } virtual void fun() { cout<<"this is base"<<endl; } virtual ~Base() { cout<<"~Base"<<endl; }
2014-10-22 08:47:57 924
转载 Pycharm快捷键
Alt+Enter 自动添加包Ctrl+t SVN更新Ctrl+k SVN提交Ctrl + / 注释(取消注释)选择的行Ctrl+Shift+F 高级查找Ctrl+Enter 补全Shift + Enter 开始新行TAB Shift+TAB 缩进/取消缩进所选择的行Ctrl + Alt + I 自动缩进行Ctrl + Y 删除当前插入符所在的行Ctrl +
2013-10-21 21:55:24 760
原创 初学python
“可能不存在的键值”在获取python字典内的值的时候,如果数据不存在就会出发KeyError异常。所以为了优雅的处理这个方面的问题一般使用try/except语句,或使用python字典的get方法。
2013-08-13 14:29:40 841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人