python与黑客(c++和python先学哪个)

python与黑客(c++和python先学哪个)

黑客平台hacker2024-04-27 6:20:20735A+A-

  python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天,我们来谈谈python多线程在渗透测试中的应用,本文,我们将编写一个简易c段存活主机扫描脚本,以及一个python版本的多线程御剑--目录扫描工具

  一、python 多线程

  python多线程有几种写法

  1

  thread模块

  python的一个多线程模块,小脚本可以用,但是有瑕疵,比如不稳定,线程数不好控制下方贴出一个c段存活主机扫描脚本,这个脚本i春秋ado老师也有教过哦思想:输入一个ip,经过字符拆分,获取c段,多线程地ping -c 2 ip ,根据返回的信息来判断主机是否存活

  demo ping_thread.py:

  运行情况:

  速度还行,稳定性一般

  thread模块,核心在:

  scan_ip是要执行的函数,(ip,)是传入的参数,记得sleep一下

  2

  threading模块用法

  demo:

  运行情况:

  可以看到,基本是同时运行的,threading.Thread模块的一种用法就是这样:

  模式1.:一个列表存放所有线程,start()执行列表中线程,join()等待运行完毕

  模式1?,还有模式2吗?

  当然,模式2就是从threading.Thread继承一个子类class,重写父类run方法,实现多线程运行run函数,而这种也是非常良好的写法

  demo:

  运行情况:

  二、线程间的数据守护

  Queue绝对是保护线程间数据安全的好选择,有关于Queue,大家可以自行百度其用法,我发出一点经常用的:

  Queue.qsize() 返回队列的大小

  Queue.empty() 如果队列为空,返回True,反之False

  Queue.full() 如果队列满了,返回True,反之False

  Queue.full 与 maxsize 大小对应

  Queue.get([block[, timeout]]) 获取队列,timeout等待时间

  Queue.get_nowait() 相当Queue.get(False)

  非阻塞 Queue.put(item) 写入队列,timeout等待时间

  Queue.put_nowait(item) 相当Queue.put(item, False)

  Queue.task_done() 在完成一项工作之后,Queue.task_done() 函数向任务已经完成的队列发送一个信号

  Queue.join() 实际上意味着等到队列为空,再执行别的操作

  三、多线程threading.Thread+Queue实现渗透测试工具编写

python与黑客(c++和python先学哪个)

  脚本放出来:

  1

  多线程c段存活主机扫描

  ubuntu下运行成功,win下需要修改Popen里的命令等,截图:

  速度很快,稳定性较强

  c段主机存活脚本:https://github.com/xiaoyecent/ping_threading_Queue

python与黑客(c++和python先学哪个)

  2

  py版多线程御剑--目录扫描--支持自定义字典、输出文件位置以及自定义线程数:

  

  

  

  参数用法贴出来

  运行情况

  举个例子:

  -u https://localhost -s 30 -d d://PHP.txt -o d://ichunqiu.txt:

  结果:

  运行速度取决于线程数(默认60)和实际环境

  源码:https://github.com/xiaoyecent/scan_dir

  多线程加队列实现线程间的数据保护是很好的搭配,threading.Thread+Queue的用法希望大家能够掌握,另外,继承threading.Thread写出子类,重写父类run方法来实现多线程的写法也值得借鉴。

  作者:xiaoye

  来源:i春秋

  链接:https://bbs.ichunqiu.com/thread-19727-1-1.html

炼石信息安全培训春季班开招

QQ:495066536

372806985

敬请持续关注……

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 5条评论
  • 语酌晴枙2024-04-27 14:54:06
  • ut(item) 写入队列,timeout等待时间  Queue.put_nowait(item) 相当Queue.put(item, False)  Queue.task_done() 在完成一项工作之后,Queue.task_done() 函数向任务已经完成的队列发送一个信号  Queue.jo
  • 痴者卿忬2024-04-27 14:41:39
  • un方法来实现多线程的写法也值得借鉴。  作者:xiaoye  来源:i春秋  链接:https://bbs.ichunqiu.com/thread-19727-1-1.h
  • 萌懂怀桔2024-04-27 16:51:37
  • l 与 maxsize 大小对应  Queue.get([block[, timeout]]) 获取队列,timeout等待时间  Queue.get_nowait() 相当Queue.get(False)  非阻塞 Que
  • 辞眸拔弦2024-04-27 07:52:12
  • 程数:         参数用法贴出来  运行情况  举个例子:  -u https://localhost -s 30 -d d://PHP.txt -o d://ichunqiu.txt:   结果:  运行速度取决于线程数(默认60)和实际环境  源码

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理