随笔分类 -  安全编程

网络编程,“黑客编程”等内容
摘要:玄魂 玄魂工作室 今天 之前开启了一个《Python黑客编程》的系列,后来中断了,内容当时设置的比较宽,不太适合入门。现在将其拆分成两个系列《Python黑客编程之极速入门》和《Python黑客编程之网络安全》,以便初学者有一个入门和提升的过程。 我们首先开启的是《Python黑客编程之极速入门》, 阅读全文
posted @ 2018-12-13 21:53 玄魂 阅读(4800) 评论(0) 推荐(0) 编辑
摘要:玄魂工作室秘书 [玄魂工作室] 思路:先用递归创建一颗二叉树,作为输入;然后对这课二查树进行递归遍历,递归中每遍历一个节点,下次递归的和为sum data;并用一个数组记录遍历过的路径,当存在sum时,输出数组中的路径。 下图为树的输入,输入的数组为: [10,5,4,None,3,None,Non 阅读全文
posted @ 2018-08-28 14:05 玄魂 阅读(651) 评论(0) 推荐(0) 编辑
摘要:玄魂工作室秘书 [玄魂工作室] 昨天发的算法有一处情况没考虑到,比如加一后有进位,导致又出现重复数字的情况,修正后今天重新发一次。 比如输入99,那B应该是101 因为100有两个连续相当的0。 基本思路:最坏的办法 加1一直加1 直到找到有不重复的数为止。 面试:这道题要是作为面试题的话,要跟面试 阅读全文
posted @ 2018-08-27 14:56 玄魂 阅读(518) 评论(0) 推荐(0) 编辑
摘要:Python算法与数据结构 求所有子数组的和的最大值 " " "玄魂工作室 玄魂" 玄魂工作室秘书 玄魂工作室 昨天 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 这个题目有多个解 阅读全文
posted @ 2018-08-23 14:30 玄魂 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:本文目前分享的题目都是来自于July的分享,然后把具体算法实现。搜索树转双向链表主要的实现逻辑是在中序遍历时,调整节点的左右子树;因为中序遍历是递归调用,所以在调整时一定要注意调整的位置,如果写错了,很有可能造成死循环。避免的主要办法是在读完左子树时调整左节点,遍历完右子树时调整右节点,具体代码见t 阅读全文
posted @ 2018-08-21 13:57 玄魂 阅读(399) 评论(0) 推荐(0) 编辑
摘要:题目:设计包含min函数的栈 原创: 白话算法 要求:定义一个栈的数据结构,要求添加一个min函数,使他能够找到栈的最小元素。 要求是:函数min push pop的时间复杂度都是o(1) 写在前面:为什么会有写这样一个公众号的想法呢?我的工作的是测试开发,在工作中大多是写一些工程类的代码,对算法类 阅读全文
posted @ 2018-08-17 18:47 玄魂 阅读(826) 评论(0) 推荐(0) 编辑
摘要:在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规范,从这个角度来看,在以后我们学习设计模式的时候,对设计模式的理解会很有帮助。其次,语言中类是抽象的模板,用来描述具有相同属性和方法的对象的集合,比如Animal类。而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 阅读全文
posted @ 2018-08-08 18:19 玄魂 阅读(11266) 评论(0) 推荐(3) 编辑
摘要:因为本人一直对推理悬疑比较感兴趣,所以这次爬取的网站也是平时看一些悬疑故事的网站,同时也是因为这个网站在编码上面和一些大网站的博客不同,并不那么规范,所以对于初学者还是有一定的挑战性的。我打算把这个爬虫分三次讲,所以每次都先完成一个小目标(当然不是一个亿啦),这次课我们先爬取当前页面的并且下载第一篇文章。第二次课我们就将爬取当前页面的=所有的链接进行下载,第三次课我们将把整个板块的文章都下载下来。 演示系统用的是kali,因为懒得去配置各种py模块了,就利用系统已经配置好的,浏览器是firefox,使用的IDE是微软的vscode 阅读全文
posted @ 2017-04-14 13:25 玄魂 阅读(695) 评论(0) 推荐(0) 编辑
摘要:在上一节,我们完成了编写一个简易的Sniffer的第一步——数据捕获。 很多时候,我们需要将捕获的数据先保存到磁盘上,之后再使用工具或者自己编写代码来进行详细分析。 本节我们在上一节的基础上来讲解保存捕获数据的方式,当然使用tcpdump或者WireShark都可以 很方便的存储数据包。 阅读全文
posted @ 2017-02-09 17:28 玄魂 阅读(2897) 评论(0) 推荐(0) 编辑
摘要:很多同学问我:“我非常想学Python编程,但是找不到兴趣点”。 还有的同学呢,找到了很好的兴趣点,但是无从下手,“玄魂老师,我想下载tumblr上的视频, 怎么下载,Python能实现吗?你懂得(这里有一个淫笑的表情)”。 好吧,我表示对他所要表达的意思秒懂了,宅男都喜欢看别人开车。今天本人姑且装一把老司机, 带大家来分析下如何下载tumblr上的图片和视频。请大家准备好纸巾,哦不,是准备好开发工具, 我们开始写代码。 阅读全文
posted @ 2017-01-18 22:54 玄魂 阅读(51222) 评论(4) 推荐(2) 编辑
摘要:荒废了一个多月了,重新捡起来,手生了不少。发现在《4.1下》的文章里没有 提到pcap库,实在是不应该。 在网络数据分析的工具中,tcpdump绝对是大名鼎鼎,tcpdump底层是libpcap库,由C语言编写。 Pcapy模块则是基于libpcap的Python接口。pcapy在github上的项目地址为: https://github.com/CoreSecurity/pcapy。 阅读全文
posted @ 2017-01-12 17:02 玄魂 阅读(2437) 评论(0) 推荐(1) 编辑
摘要:上一节(《4.1 SNIFFER(嗅探器)之数据捕获(上)》)中, 我们讲解了通过Raw Socket的方式来编写Sniffer的基本方法。 本节我们继续来编写Sniffer,只不过使用现成的库,可以大大 缩短我们的工作时间和编程难度,和上一篇文章对比就知道了。 阅读全文
posted @ 2017-01-12 16:59 玄魂 阅读(6227) 评论(1) 推荐(0) 编辑
摘要:动态中继协议 DTP(Dynamic Trunking Protocol)是一种 Cisco 私有协议。DTP 用于两台交换机的直连二层端口探测对端的配置,自动协商出二层端口的链路类型和以太协议封装进而与对端自适应。这样当对端设备修改时,就不用手工修改本端配置,通过协议自适应更改即可。DTP 的重要作用是,在组网不确定的情况下,可以实现即插即用;修改网络拓扑时,也不用手工修改二层端口的配置。 阅读全文
posted @ 2016-10-13 18:42 玄魂 阅读(1674) 评论(0) 推荐(3) 编辑
摘要:本章的内容核心包含上图中的网络层和传输层。TCP/IP是整个网络协议体系中的核心,因为从这里开始,数据传输从局域网迈向了广阔的互联网,我们的程序也有能力处理来自互联网的数据,可以直接对互联网上的主机进行攻击和测试。 还是老话,希望各位深入的学习协议,通过抓包工具练习数据包分析,通过实例理解协议。下面我们把本章涉及到的内容做简略的描述。 阅读全文
posted @ 2016-10-13 18:40 玄魂 阅读(2687) 评论(0) 推荐(0) 编辑
摘要:VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理网络障碍,将不同子网中的用户划到同一个VLAN中 阅读全文
posted @ 2016-09-27 22:38 玄魂 阅读(2362) 评论(0) 推荐(2) 编辑
摘要:传统的交换机(我只对我目前使用的交互机做过测试,按照常识只能这样表述)在数据转发过程中依靠对CAM表的查询来确定正确的转发接口,一旦在查询过程中无法找到相关目的MAC对应的条目,此数据帧将作为广播帧来处理。CAM表的容量有限,只能储存不多的条目,当CAM表记录的MAC地址达到上限后,新的条目将不会添加到CAM表中。 基于以上原理,我们会发现一个非常有趣的现象。某台PC不断发送去往未知目的地的数据帧,且每个包的源MAC地址都不同,当这样 的数据包发送的速度足够快之后,快到在刷新时间内将交换机的CAM表迅速填满。CAM表被这些伪造的MAC地址占据,真实的MA C地址条目却无法进入CAM表。那么任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理。交换机在此种情况下被降级为Hub。 交换机降级为hub之后,我们就可以监听 阅读全文
posted @ 2016-09-05 14:54 玄魂 阅读(3002) 评论(2) 推荐(1) 编辑
摘要:在第3.1节《ARP欺骗》中,我们学习了ARP的基本原理,使用Python实现了我们自己的ARP欺骗工具。在上一节的基础上,我们来实现一个ARP监控程序,该程序存储局域网中所有的IP和MAC对应关系,如果有新加入的机器会动态添加到列表中,如果有机器的ARP记录发生了变化,会发出警告。 实现这个程序的关键,只有一点,就是监听网络中ARP数据包。Scapy中的sniff方法可以满足我们对ARP监听的需求。 阅读全文
posted @ 2016-08-29 10:43 玄魂 阅读(3650) 评论(5) 推荐(5) 编辑
摘要:ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据监听、篡改、重放、钓鱼等攻击方式。 在进行ARP欺骗的编码实验之前,我们有必要了解下ARP和ARP欺骗的原理。 阅读全文
posted @ 2016-08-26 23:00 玄魂 阅读(16936) 评论(6) 推荐(1) 编辑
摘要:首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止。 本节简单概述下OSI七层模型和TCP/IP四层模型之间的对应关系,最后是本章教程需要的几个核心Python模块。 阅读全文
posted @ 2016-08-24 15:29 玄魂 阅读(3819) 评论(0) 推荐(2) 编辑
摘要:套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此。官方关于socket编程的文档地址为https://docs.python.org/2/library/socket.html,我承认我看起来都很费劲。 套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。许多非BSD UNIX系统(如ms-dos,windows,os/2,mac os及大部分主机环境)都以库形式提供对套接字的支持。 三种最流行的套接字类型是:stream,datagram和raw。stream和datagram套接字可以直接与TCP协议进行接口,而raw套接字则接口到IP协议。但套接字并不限于TCP/IP。 Pyth 阅读全文
posted @ 2016-08-16 17:29 玄魂 阅读(1974) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示