- 博客(28)
- 资源 (9)
- 收藏
- 关注
原创 LVM项目小结
无用的瞎bb: 距离上一篇博客其实已经过去很久了,本身没有懈怠但是鉴于实在太忙便一直没更新。 花了很长时间对公司产品做windows动态磁盘(ldm)和lvm的支持。也就是提供一个ldm或者lvm的镜像使用dokany对其进行虚拟重组,方便lvm相关信息的展示以及其lv分区中文件系统的进一步解析。 因为ldm是基于lvm的衍生品所以下面主要会讲关于lvm的故事,原理都是相通的。...
2018-03-25 19:42:12 961
原创 资源管理器看不到WNetAddConnection2A映射的磁盘
记录一个使用WNetAddConnection2映射网络资源但是文件资源管理器看不到的坑
2017-11-14 12:30:10 1553
原创 造轮子之ValueAnd
C++轮子版的ValueAdd,模仿python中and的行为:函数返回对应值而不是bool,受限于C++语言一个函数不能返回多种数据类型,不能传入跨类型参数。
2017-11-07 14:20:49 240
原创 linux c监控U盘插拔事件
在linux下U盘插拔事件的分发采用的是netlink机制。netlink是一种linux下内核态和用户态进程间通讯(IPC)的方法,常用的还有ioctl调用(通过HDIO_GET_IDENTITY获取硬盘序列号),proc文件映射(/proc/cpuinfo可以看到CPU相关信息).相比于后面两者,netlink采用了socket通信方法,于是一下子就多了超多的优点。比如socket可以实现异步通
2017-10-05 20:24:59 7721 1
原创 汇编与C/C++的故事
其实我知道这个标题实在是太广泛了,但是下面所有东西都是和汇编,C++有关的。stdcall与cdecl 首先他们共属于函数约定(calling convention),详情参考wiki(https://en.wikipedia.org/wiki/Calling_convention).总结如下: a. 两者都是参数从右至左进栈. b. stdcall是winapi标准默认调用方式
2017-07-22 09:39:29 442
原创 硬盘SMART信息数据结构
在Windows环境下我知道有两种方法可以读取硬盘SMART信息:一是通过DeviceIoControl这个Win API,还有就是通过wql语句查询。这两种方法已经在网上被说烂,本文主要要记录一个找到死都找不到的东西:无论是通过上面Api还是wql查询都会返回两个512字节的数据,一个记录Attributes,还有一个是SMART信息中的THRESHOLDS(对,它们是分开存储的)。那么这两个5
2017-06-16 18:17:36 5840 3
原创 造轮子之C++中的map,filter,reduce
一直喜欢python的map,filter和reduce函数,在标准C++中分别有std::transform(对应python的map),std::copy_if(对应python的filter),std::accumulate(对应python的reduce)。当然这是后话,当年年少无知,就自己造了一下轮子,毕竟我就是一个热衷于造轮子的人。template <typename Func,type
2017-04-26 21:41:37 7920 1
原创 scapy学习icmp报文
icmp(Internet Control Message Protocol)报文真的是一个数据结构特别简单的报文,虽然它使用到了ip头部,协议位于网络层。说它数据结构简单主要是因为icmp报文最主要出于网络诊断的目的,比如检测某个主机或者路由器是否正确到达,不像tcp,udp或者更上层协议的报文会携带很多额外的信息。icmp报文类型 在icmp报文中最重要的只有type和code字段,其中c
2017-02-11 14:10:57 8924
原创 scapy学习arp欺骗
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。 地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息
2017-02-04 16:57:54 7935
原创 scapy基础-网络数据包结构
网络层次模型,数据包的组成是学习scapy的基础,下文主要关注模型中各个层次的用途,ethernet II和ip包数据结构。 1.五层模型简介 名称 作用 包含协议 应用层 面向程序对程序的传输服务(应用层更关注于ip协议中的数据包部分) HTTP,DNS,FTP,SMTP 传输层 分割并重新组装上层提供的数据流,为数据流提供端口到端口的传输服务。(传输层
2017-01-21 11:41:20 3536
原创 啰嗦编码
其实网上针对编码的讲述实在太多了,我也并不想从重复大家都说烂的东西,但是仍然有很多老程序猿对编码仍然很模糊。知乎里有句话是这么说的:一旦走上了编程之路,如果你不把编码问题搞清楚,那么它将像幽灵一般纠缠你整个职业生涯,各种灵异事件会接踵而来,挥之不去。(先对utf-8,gbk之类编码有一个大概的认识再往下读。) 1.字符集和字符编码 其实字符集和字符编码属于有关系但是属于不同的东西。
2016-12-18 00:46:44 486
原创 centos编译python3绑定的pycaffe
目前python3版本的pycaffe仍然属于不稳定版本,有很多未知因素,所以还是非常建议使用python2.7编译pycaffe。
2016-09-27 16:49:15 2340
原创 正则表达式进阶
网上讲正则表达式的教程实在是太多了,所以这里并不想重复那些被说烂的教程。我真正学习正则表达式是源于python的re模块,所以下面主要会以python语言为基础记录一下关于正则表达式的一些进阶并比较重要的用法。 1.命名捕获组(Named Capturing Groups) 其实我们经常使用捕获组,比如: re.search("(\w).*","a1234").groups()
2016-06-26 15:32:32 441
原创 C++中的仿函数
端午放假回家,无意间拾起侯捷的>,之前一直看的不太懂,没想到今天翻到仿函数(factors)一章,竟有所收获,而且刚好与上一章讲述的函数指针很有关联,遂赶紧记录下来。 在algorithm算法库中有一个for_each函数用于对某个可迭代对象进行某种操作,行为类似于python中的map函数。 其核心代码如下:templateclass _InIt, class _Fn1>
2016-06-13 13:08:15 5440
原创 C++中的函数指针
python中装饰器和偏函数两个概念。装饰器是其本质原理也是将一个函数当作参数传入另一个函数中,起到一层封装的作用,这样可以不改变原有函数的基础上而添加新的功能,比如经典的测函数运行时间,在我之前web性能测试一章用过装饰器(http://blog.csdn.net/cracker_zhou/article/details/50408514),再结合python的@语法糖就完全不用考虑实现的语法问题
2016-05-22 12:33:46 371
原创 图片中的exif数据
前两天python群中一位女神发了一张照片,虽然只是个风景照。但是我突然想起之前在读<<python绝技>>时书中有讲到在图片中包含exif(exchange image file format),exif标准定义了如何存储图片和音频文件的标准,包含文档的作者,修改时间甚至有可能包含照片的GPS位置信息。(事实上不止图片,文档,表格,音频,视频都有类似exif的元数据)。 from PIL
2016-05-08 14:50:22 4833 1
转载 ftp服务
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”,用于Internet上的控制文件的双向传输。下面主要讲两个东西:一个是ftp的主动和被动传输,另一个是ftp的ASCII码传输与二进制传输。1.ftp的主动传输与被动传输 TCP/IP协议中,FTP标准命令TCP端口号为21,数据传输端口为20。 一个主动模式的FTP连接建立要遵循
2016-03-13 13:54:28 461
原创 linux安全之TCP Wrappers
之前有篇文章讲述了linux服务器的安装增强(http://blog.csdn.net/cracker_zhou/article/details/50392594)。在大牛看来这或许不够专业但是我会不断的好好学习,向大牛看起。让csdn的每篇blog见证我的成长。今天主要要讲的是/etc/hosts.deny文件。1.TCP Wrappers TCP Wrappers使用访问控制列表 (ACL
2016-03-12 11:12:27 2513
原创 linux的shadow文件
在《Python绝技》这本书的第一个小程序首先展示了针对与unix系统中shadow文件密码的暴力破解的能力,因为之前只是对shadow文件停留在保存了用户密码的阶段,但并没有详细研究,所以周末两天特地花时间好好研究了一下。 1.passwd文件和shadow文件 在unix早些时候是没有/etc/shadow这个文件的。一个用户的所有信息都只是保存在/etc/passwd文件中,加密后的用户密
2016-03-07 10:57:50 7972 6
原创 python文件读写编码
我们知道,在python中有一句经典名言是“decode early,unicode everywhere,encode later”表示一个字符串建议先全部decode为unicode编码,然后根据所需encode为目标编码。那么对字符串的处理基本没什么问题了。 但是涉及到写文件时的编码问题现在在下面总结一下:#coding:utf-8f = open('file.txt', 'wb') #以
2016-03-02 10:03:20 754
原创 python-web加载性能测试(初级)
首先不得不承认这只是一种很基础的web性能加载测试,因为之前一直没有专业的学过应该如何测试。原因是我们公司的网站快完成了,但是感觉打开的速度很慢啊,后来自己写了一个简单的python脚本主要模拟对web资源的获取。所以这些时间不包括浏览器的渲染js时间,我就先忽略不计吧。 当然很感谢借这个机会让我学习了一下python的装饰器语法,之前一直有听说,而且看了很多资料其实都不是很懂。直到这次实战让我加
2015-12-26 14:43:57 2457
原创 linux服务器安全增强(ssh和iptables)
其实在大学里就一直想做一个服务器运维人员,可惜机遇不巧现在做的是C++开发。终于某一天当我用lastb查看到那么多的对root密码猜解失败记录时意识到我们服务器的安全性确实很差,因为不确定是否有某人进来过所以干脆重装系统从头来。(用的阿里云ECS)1.禁止root用户的ssh登陆,更改ssh默认端口之前一直使用root用户登陆,确实方便。但是确实也很容易出问题,于是首先第一件事就是新建一个账户。
2015-12-24 10:22:28 1812
原创 python之os模块总结
os模块提供了一个轻便的方法使用要依赖操作系统的功能,集成了常用的文件与文件夹操作。下面是与文件路径相关的函数:os.getcwd()os.chdir()os.path.split()os.path.splitext()os.path.splitdriver()os.path.realpath(path) # Return the absolute version of a patho
2015-12-24 10:20:59 366
arm-linux-gcc-4.4.3.tar.gz
2017-10-20
gdcm的python绑定
2016-07-26
opencv2的python绑定
2016-07-20
一键编译升级安装openssh(6.7p1)
2016-01-25
一键编译安装python(2.7.11)
2016-01-25
一键编译升级安装openssh(6.7.1p)
2016-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人