自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (1)
  • 收藏
  • 关注

原创 OpenStack源码调试之路(0)——pycharm远程调试OpenStack

要阅读一个源码,最好的方法是调试代码,一步步跟踪,会使你对整个过程的理解更加透彻,对于OpenStack也是如此,虽然看过很多分析源码的书,但总是觉得对不上号,加上有需求,所以觉得自己对源码进行一番调试。最开始试过python的pdb调试,虽然大神都说怎么怎么好,但终归是控制台的操作,一点都不直观,最后找到使用pycharm远程调试的方法,觉得非常好用,windows下可视化界面,变量查看,追踪回...

2019-04-03 20:15:14 3132 5

原创 python WSGI中loadapp源码分析

WSGI是python网络标准,这篇文章主要将分析WSGI中一个重要的函数——loadapp,此函数用户构建application。直接放一个代码结构图,我用百度脑图画的,由于太大了,直接放图片看不清,所以这里大家可以直接打开对比百度脑图看http://naotu.baidu.com/file/4469a9697fb99850f63784ff56a15bde?token=88752f72859...

2019-03-17 14:04:36 437

原创 python Crypto包中DSA签名的源码分析(2)——签名与验证签名

DSA签名过程如下:计算和,其中p、q、g是第一步生成的全局公钥,k是的随机数或者伪随机数,H是杂凑函数,M是待签名的信息Crypto中DSA签名关键源码如下: inv_k = inverse(k, self.q) # Compute k**-1 mod q r = pow(self.g, k, self.p) % self.q # r = (g*...

2019-03-12 16:40:52 1120

原创 python Crypto中DSA签名的源码分析(1)——密钥生成

DSA需要的密钥有三种,分别是全局公开钥:p、q、g;私钥x;公钥y,具体要求如下: -全局公钥p:满足的大素数,其中512≤L≤1024且L是64的倍数; -全局公钥q:p-1的素因子,满足,即q一定是160bit; -全局公钥g:,其中h是满足1<h<p-1且使得的任一整数; -服务器私钥x:满足0<x<q的随机数或伪随机数;...

2019-03-11 22:40:19 1871

原创 OpenStack源码调试之路(4)——setup_backends

上篇我们调试了configure,这篇我们开始服务器启动最核心的部分setup_backends。进入这章之前,请一定先学习WSGI和python paste(可以在我关于OpenStack调试的第一篇文章中找到),这样才能理解这部分代码。假设你已经学完了那两个东西,那我们就开始吧。def setup_backends(load_extra_backends_fn=lambda: {}, ...

2018-03-28 22:14:00 327 2

原创 OpenStack源码调试之路(3)——配置文件(configure)

前排提示:源码调试中会涉及很多OpenStack的工具库(oslo开头的),建议遇到之后想要了解这些工具库的,请参考这个博主的文章,里面对每个工具库都有介绍目录一.keystone.conf.configure模块二.sql.initialize模块三.keystone.conf.set_config_defaults模块四.CONF五.setup_logging上一篇...

2018-03-27 22:25:49 856

原创 OpenStack源码调试之路(2)——initialize_application模块概括

通过上一篇我们知道了keystone的调试入口,现在我们就跟踪下去,看看在服务启动起来的时候,openstack到底做了一些什么事。首先说明,因为我采用手动apt安装的方式,所以openstack代码均在/usr/lib/python2.7/dist-packages/下,没有特殊说明,我所说的目录都是在这个相对目录下。进入/keystone/server/wsgi.py,可以找到两个initia...

2018-03-27 09:44:08 467

原创 OpenStack源码调试之路(1)——apache与keystone

由于openstack版本迭代的太快,很多上一个版本还能用的东西,下个版本又不能用了,我开始接触的时候是M版,等我上手之后,P版已经成熟,Q版也可以使用了。因为我需要对keystone的架构重写,所以我首先要解决的问题就是调试源代码,虽然通过各种书籍理论知道了keystone的架构模型,但实际自己去动源代码,也是很难的。一开始我参考网上给的调试方法,结果发现,由于版本的更迭,很多东西已经不一样...

2018-03-26 12:51:35 1326

转载 linux双网卡同时访问外网

配置步骤:1.ip route adddefault via 192.168.X.1(扩展网卡网关) dev eth1 table default  ---在default表中添加路由2.ip rule addfrom 192.168.X.X(扩展网卡ip)lookup default prio 253   ---添加策略路由至此,两块网卡上的公网ip应该都可以访问了。实现开机或者

2017-11-18 20:35:19 4340

转载 Django学习8—数据库使用3-原始sql使用

这里我就不自己写了,这篇不错,只是我还不知道raw里面增删改怎么让其生效在Django中使用原生Sql主要有以下几种方式:一:extra:结果集修改器,一种提供额外查询参数的机制二:raw:执行原始sql并返回模型实例三:直接执行自定义Sql(这种方式完全不依赖model,前两种还是要依赖于model) 实例:使用ex

2017-05-05 11:31:02 281

原创 Django学习7—数据库使用2—使用api增删改查

继续上一次,我们已经可以连接mysql数据库了,而数据库最重要的操作,无非就是增删改查,Django提供了一系列api,用于增删改查,这样可以不使用sql语句来完成数据库操作。增:即向数据库插入数据,这里我们在交互式python中来学习,使用python manage.py shell(如果安装了Ipython这些的话,也可以使用它们),然后就是导包,假设,models.py文件为:f

2017-05-05 09:34:15 532

原创 Django学习6-mysql数据库使用1-安装与连接

从这篇开始,我们要开始有趣的部分了,哈哈,数据库。这里我使用的mysql,对于Django和python的版本不同,这里会有很多想不到的麻烦,那么开始吧,遇到再说。不多bb,至少先搞个mysql撒,Ubuntu下:apt-get install mysql-server中途会提示设置root密码吧。好了,mysql装好了,下面就一个一个python连接mysql的中间件了,这里注意,p

2017-04-23 15:32:28 509

原创 Django学习5-url配置

这个东西我们在第一次的时候接触过,就是url.py那个文件,当时还说了1.8之后的写法不同,现在我们来详细说一下这个配置文件。首先,url.py这个文件的写法没什么说的from django.conf.urls import urlfrom django.contrib import adminfrom test01.blog.views import indexfrom test01.

2017-04-22 17:33:40 292

原创 Django学习4-模板表达式

这个东西怎么说呢,我觉得,实际应用中还是不要使用吧,把逻辑代码放到html里写,这样感觉不好吧,包括变量的使用,我也这样觉得,但既然有这个功能,我们还是说一下。这里我只是简单举个例子,剩下的,大家可以去点击打开链接官方文档里查看用法。这里我给个if的用法 {{title}} {% if user%} holle {{user.name

2017-04-22 16:42:51 613

原创 Django学习3-模板中使用变量

Django可以动态向模板中传递变量,主要是以字典方式传递的,继续前面的test01工程。首先,在模板中使用变量,是用{{变量名}},这样的方式使用的,传递是在views.py的处理函数return render_to_response('index.html',{})中,通过第二个参数传递的,这是上次的模板,没有使用变量,所以是一个空字典。比如,模板改为:

2017-04-22 16:10:20 2331

原创 Django学习2-使用模板

上次简单看了一下Django的使用,现在继续,沿用上一篇写好的东西,我们来看看它怎么使用已经写好的html模板吧(一定要按照上一篇讲的把工程、app等建好,setting等设置好),首先,你需要有一个模板,随便点吧,我这里用的这个,名为index: mytest hello world!好了,开始吧。首先,在工程下建立一个文件夹,用于存放模板,我是在blog目录下建

2017-04-22 14:41:42 263

原创 Django学习1-安装与初识

(注意:环境为Django1.11,python2.7,Ubuntu14.04)先从安装开始吧,这里需要注意,从1.8开始,有很大的变化,这里采用的1.11版本1.先把环境搞起来可以采用pip安装,则需要先安装pip: apt-get install python-pip然后: pip install Django 或者 pip install  Django-1.11前者

2017-04-21 19:40:02 228

原创 KMP算法详解

在模式匹配中,除开最基本的暴力匹配之外,还有很多高效的方法,其中KMP就是其中一个经典算法,但这个算法思想晦涩难懂,我最开始学习,都直接放弃了,直接学的boyer-moore,后来还是觉得应该弄懂才行,为此,特地将我解决的思路分享出来。设,需要在text中查找模式pattern出现的位置,KMP的思想关键在于前面匹配过之后,是会留下有用信息的,这样后面可以直接跳过一些查找,如图所示:

2017-03-09 21:45:32 245

原创 ICMP扫描

icmp(Internet control message protocol),是一种网络上用来传递错误报文的协议,根据类型和代码,可以分为很多类型的,为了实现icmp扫描,我们这里只需要用到请求回显(type=8,code=0)和回显应答(type=0,code=0),具体情况,请查看icmp,报文格式。原理,像需要扫描的ip发送icmp请求回显,如果收到icmp回显应答,则该ip处于活动状

2016-04-18 21:33:16 5404

原创 Windows下使用winpcap-2.2arp探测局域网内主机(接收并解析arp数据包)

上篇文章我们成功发送了arp请求,这里我们就需要等待并看看能不能收到来自我们需探测ip的arp回复,如果收到,则该主机为活动的,因为这个等待arp返回需要等待一段时间,这里我之间写出来,实际用的时候,你们需要写成线程,并在发送arp请求之前调用。定义需要的变量 pcap_if_t * alldevs; pcap_if_t *d; pcap_t * adhandle;//定义包捕捉句柄

2016-04-06 22:09:47 2338

原创 Windows下使用winpcap-2.1ARP探测局域网活动主机(发送ARP请求)

通过上一次的配置环境,现在就可以使用了,那么这里我们就先来发一个arp请求吧,这里建议大家安装一个wireshark(抓包工具,操作简单),以便于我们随时查看数据包,方便调试。首先,我们需要知道的是,ARP是地址解析协议,工作在数据链路层,用来在一个局域网内获取一个IP的mac地址,当我们想要知道一个IP的MAC地址的时候,我们就向局域网广播一个arp请求,如果此IP为活动主机,则其就会回复一

2016-04-06 20:33:24 2776 1

原创 windows下使用winpcap-1.环境安装

winpcap是 Windows下一个能忽略操作系统直接工作在网络上的工具,为什么要使用呢,因为在WindowsXP以后,因为权限的问题,有些东西我们不能直接使用,例如,我会在接下来的文章里说的实现端口扫描器中,其中像ARP扫描活动主机,TCP SYN扫描端口(这个在李瑞明的网络扫描技术中,他直接用socket构建数据包,然后使用原始套接字,但他书出的时候是04年吧,以我们现在的系统来看,已经不能

2016-04-06 19:43:18 9545 3

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除