awvs mediumtext级别的需要修改吗?

&p&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-475b2e0b41b8cf84db2205_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&703& data-rawheight=&258& class=&origin_image zh-lightbox-thumb& width=&703& data-original=&https://pic4.zhimg.com/50/v2-475b2e0b41b8cf84db2205_r.jpg&&&/figure&&p&作为知名的全球最大同性交友社区网站,很多开发人员每天工作中都会用到 GitHub。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-cd9ffe7f99f8e6f9e3ad0b761b7148ca_b.jpg& data-size=&normal& data-rawwidth=&2000& data-rawheight=&665& class=&origin_image zh-lightbox-thumb& width=&2000& data-original=&https://pic4.zhimg.com/50/v2-cd9ffe7f99f8e6f9e3ad0b761b7148ca_r.jpg&&&figcaption&外人很难理解程序员们有多爱这只..章鱼猫?&/figcaption&&/figure&&p&在上面找项目、写代码可以说是每个程序员的日常了。&/p&&p&&br&&/p&&p&那么什么是 GitHub?为什么要用 GitHub?怎么用 GitHub?对于这些问题,最近在 GitHub 上出现了一篇面向 GitHub 新手的使用指南,详细解释了 GitHub 上的一些重要概念,集智对这篇 GitHub 入门帖子《A Developer’s Introduction to Github》进行了编译。&/p&&p&&br&&/p&&h2&&b&GitHub简介&/b&&/h2&&p&简单来说,GitHub 是一个面向开发人员的网站,每天会有数百万的开发者聚在上面,一起讨论开源软件和项目。网站上也汇存了多达数十亿行的代码,用户也可以在上面报告使用软件和编程时遇到的问题。&/p&&p&总之,这是个为软件开发人员构建的平台,是围绕 Git 构建的。要么分享自己的代码,要么使用别人的代码。下面我们会解释 GitHub 上的一些重要概念,如何利用 GitHub 的功能让自己更高效的工作,以及如何将其它应用整合到你自己的编程工作中。&/p&&p&&br&&/p&&h2&&b&为什么要用GitHub?&/b&&/h2&&p&现在你已经知道什么是 GitHub 了,那你可能就要问了:&b&为什么要用它?&/b&&/p&&p&毕竟 GitHub 是由私人公司管理,并且该公司通过托管代码进行获利,那么为什么该用 GitHub,而不是 BitBucket 或者 GitLab 这样类似的平台呢?&/p&&p&除了个人偏好和技术原因外,还有一个很大的原因:&b&几乎每个开发人员都在用GitHub,这就产生了巨大的网络效应。&/b&&/p&&p&&br&&/p&&p&主要的代码库随着时间推移已经从其它版本的控制系统迁移到了 Git 上,因为它更加便捷, GitHub 也一直投入很大的精力,努力满足开源社区的需求。&/p&&p&&br&&/p&&p&因此,今天不管你找什么样的程序库,99% 的情况下,你都能在 GitHub 上找到。原因就是&b&用户多,资源也就多。&/b&&/p&&p&除了开源代码之外,很多开发人员能在 Github 上托管私人仓库(repository),因为这在 GitHub 上非常方便。&/p&&p&&br&&/p&&p&GitHub issues 是世界上最受欢迎的 bug 跟踪系统之一。它让项目所有者能够组织、标记和指派重要的 issue。如果你在其他人管理的项目上打开某个 issue,它会一直处于打开状态,直到你主动将它关闭(例如你知道了问题所在)或者项目所有人关闭了这个 issue。&/p&&p&有时你会得到明确的答案,在其它时候这个 issue 会呈打开状态并被标记上一些分类信息,然后开发人员可以回到这个 issue 解决问题,或根据反馈优化代码库。&/p&&p&&br&&/p&&p&大多数开发者在 GitHub 发布代码后,维护代码都没有直接报酬,因此通常你不会收到他们的即时回复。但一些开放源代码库由那些围绕该代码提供服务的公司发布,它们会提供具有更多功能的版本或者使用基于插件的系统。&/p&&p&&br&&/p&&h2&&b&社交编码&/b&&/h2&&p&几年前GitHub上增加了“社交编码”(social coding)的标签,这是什么意思呢?和 GitHub 有什么关系?&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-4d37adcc17c_b.jpg& data-size=&normal& data-rawwidth=&268& data-rawheight=&179& class=&content_image& width=&268&&&figcaption&并不是指“社会型编程”&/figcaption&&/figure&&p&在 GitHub 上,你可以在一些开发者的个人主页上点击“follow”来关注他们。&/p&&p&你也可以通过点击某个仓库上的“Watch”按钮来关注它。&/p&&p&不管是关注某个人还是某个仓库,都会显示在你的 dashboard 上。在 GitHub 上关注用户和仓库,跟你在 Twitter、微博上关注人不一样,你看不到他们说什么,但能看到他们做什么。&/p&&p&&br&&/p&&h2&&b&Stars&/b&&/h2&&p&GitHub 的一大特点就是能给仓库添加星标。通过这步操作,你可以将仓库添加到“starred repositories”(已加星标仓库)的列表中,这样你就能发现自己感兴趣的项目。而且这也是 GitHub 上一个重要的排名机制之一,因为一个仓库或项目的 star 数越多,就说明它越重要越受欢迎,在搜索结果中也会处于更显眼的位置。一些很重要的项目可能有多达几万个 star 数。&/p&&p&&br&&/p&&p&GitHub 同样也有一个 trending 页面,它会显示特定时间内,比如今天、本周或本月,获得 star 数最多的仓库或项目。&/p&&p&&br&&/p&&h2&&b&Fork&/b&&/h2&&p&项目的最后一个重要指标就是 fork 数。&/p&&p&这是 GitHub 如何工作的关键,因为 fork 是 Pull Request(PR)的基础,它是一个更改提议。某人可能会 fork 你的仓库,做些改动,然后创建一个 PR 让你去合并这些改动。&/p&&p&&br&&/p&&p&有时 fork 仓库的人可能也从来不让你去合并什么东西,只是他们很喜欢你的代码,决定在上面加点东西,或者修复了他们在体验过程中遇到的bug。&/p&&p&&br&&/p&&h2&&b&受欢迎=更好&/b&&/h2&&p&言而总之,上面这些都是一个项目受欢迎度的重要指标。除此以外,项目最近一次提交的日期和作者参与 issue 跟踪系统的信息,也是衡量仓库或软件可信度的标准之一。&/p&&p&&br&&/p&&h2&&b&Pull Requests&/b&&/h2&&p&在前面介绍了什么是 Pull Request(PR)。总之,一个人可以 fork 你的仓库,做一些改动,然后创建一个PR让你去合并这些改动。&/p&&p&某个项目可能会有几百个PR,总的来说,一个项目越受欢迎,PR 就越多,如 React 项目:&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-dc342a299f3e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1145& data-rawheight=&814& class=&origin_image zh-lightbox-thumb& width=&1145& data-original=&https://pic4.zhimg.com/50/v2-dc342a299f3e_r.jpg&&&/figure&&p&&br&&/p&&p&一旦有人提交了 PR(在 GitHub 界面上很容易操作),项目的核心维护人员会对其进行审核。&/p&&p&根据你的 PR 的范围不同(改动数量,或者改动影响幅度,以及涉及代码的复杂程度等),维护人员可能需要不同的时间来确认这些改动和项目是否兼容。&/p&&p&&br&&/p&&p&一个项目可能会有相关改进的明确时间表。维护人员希望用户能以比较简单的方式介绍 PR 中的体系结构。&/p&&p&&br&&/p&&p&也就是说,并不是每个 PR 都会被立刻接受,甚至都不能保证 PR 最终被接受。&/p&&p&在上面所举的例子中,仓库中甚至有个一年半以前的 PR,几乎所有的项目中都存在这种情况。&/p&&p&&br&&/p&&h2&&b&项目管理&/b&&/h2&&p&除了 issue 之外,也就是开发者获得来自用户反馈的地方,GitHub 界面上还有其它帮助项目管理的功能。&/p&&p&其中一个就是 Projects,虽然它在 GitHub 的生态系统中比较新,用的人也不是很多,但它相当于一个看板,能帮助你组织问题和需要完成的工作。&/p&&p&&br&&/p&&p&Wiki 可以被用作文档。另一个受欢迎的项目管理功能是“里程碑”(milestone),它在 issue 页面上,你可以将 issue 分配给特定的 milestone,可以是发布目标。&/p&&p&&br&&/p&&p&说到发布,GitHub 通过引入发布增强了 Git tag 的功能。&/p&&p&&br&&/p&&p&Git tag 是特定 commit 的指针,如果完成的时间一致,能帮你回到之前版本的代码,无需引用特定的 commit。&/p&&p&&br&&/p&&p&Github 的发布版建立在 Git tag 的基础之上,代表了你的代码的完整发布版本,以及 zip 文件,发布说明和二进制 assets,这些可能代表了你的代码终端产品的完整工作版本。&/p&&p&&br&&/p&&p&虽然可以通过写程序创建 Git tag(比如使用命令行 Git 程序),但创建 GitHub 发布版需要手动操作,在 GitHub UI 上进行。你可以在 GitHub 上创建一个新版本,选择你想使用的 tag 发布。&/p&&p&&br&&/p&&h2&&b&比较commit&/b&&/h2&&p&GitHub 提供了很多处理代码的工具。&/p&&p&你最想做的事情之一,可能就是将一个分支与另一个分支相比较。你可能想将最新的 commit 与你当前所用版本进行比较,看看发生了哪些变动。&/p&&p&&br&&/p&&p&你可以用 GitHub 上的比较视图进行这项操作,只需在仓库名字后添加 /compare 即可。例如:&/p&&a href=&//link.zhihu.com/?target=https%3A//github.com/facebook/react/compare& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic2.zhimg.com/v2-e7e8a2ff9b7fc780affbd_ipico.jpg& data-image-width=&400& data-image-height=&400& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&facebook/react&/a&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-bf901aea16cdf4c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1405& data-rawheight=&931& class=&origin_image zh-lightbox-thumb& width=&1405& data-original=&https://pic1.zhimg.com/50/v2-bf901aea16cdf4c_r.jpg&&&/figure&&p&&br&&/p&&p&例如,这里我选择将最新的 React v15.x 和最新的 v16.0.0-rc 版本进行比较,查看有哪些改变:&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-1ebfe92d294e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1405& data-rawheight=&1467& class=&origin_image zh-lightbox-thumb& width=&1405& data-original=&https://pic4.zhimg.com/50/v2-1ebfe92d294e_r.jpg&&&/figure&&p&&br&&/p&&p&我们会发现两个发布版本之间的 commits 不同之处和实际差异。&/p&&p&&br&&/p&&h2&&b&Webhooks和Services&/b&&/h2&&p&GitHub 提供了有助于开发者工作流程的功能,其中一个就是 webhooks,另一个是 services。&/p&&p&&br&&/p&&ul&&li&&b&Webhooks&/b&&/li&&/ul&&p&当仓库出现特定问题时,webhooks 就会触发外部服务,比如当推送代码时,创建或删除了 tag,或者有人 fork 了仓库等。&/p&&p&&br&&/p&&p&当发生问题时,GitHub 会给我们让它用的 URL 发送 POST 请求。&/p&&p&&br&&/p&&p&这项功能的一个常见用法是当我们从本地计算机发送一个更新时,它会触发一个远程服务器从 GitHub 获取最新代码。&/p&&p&&br&&/p&&ul&&li&&b&Services&/b&&/li&&/ul&&p&GitHub service 和新的 GitHub 应用都是第三方集成程序,能够改善开发者的使用体验或提供服务。&/p&&p&例如,你可以设置一个测试运行器,每次用 TravisCI 推送一些新 commit 时都能自动运行测试。&/p&&p&&br&&/p&&p&你可以用 CircleCI 设置 continuous integration。也可以创建一个 Codeclimate 集成程序来分析代码,它还能提供 technical debt 和测试覆盖率的报告。&/p&&p&&br&&/p&&h2&&b&结语&/b&&/h2&&p&总之,GitHub 是个很了不起的工具和服务平台,也是当今开发者们不可或缺的开发神器。本文只是帮你简单了解一下 GitHub,到上面真正体验一下你就知道它的魅力了。&/p&&p&&br&&/p&&hr&&figure&&img src=&https://pic3.zhimg.com/50/v2-298c372ecbaefe7ee6ff_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&720& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/50/v2-298c372ecbaefe7ee6ff_r.jpg&&&/figure&&p&&/p&
作为知名的全球最大同性交友社区网站,很多开发人员每天工作中都会用到 GitHub。在上面找项目、写代码可以说是每个程序员的日常了。 那么什么是 GitHub?为什么要用 GitHub?怎么用 GitHub?对于这些问题,最近在 GitHub 上出现了一篇面向 GitHub 新手的使…
中国科大 LUG 的 &a data-hash=&f2efaaed2de8d50eee749a& href=&//www.zhihu.com/people/f2efaaed2de8d50eee749a& class=&member_mention& data-editable=&true& data-title=&@高一凡& data-hovercard=&p$b$f2efaaed2de8d50eee749a&&@高一凡&/a& 在 LUG HTTP 代理服务器上部署了 Linux 4.9 的 TCP BBR 拥塞控制算法。从科大的移动出口到新加坡 DigitalOcean 的实测下载速度&b&从 647 KB/s 提高到了 22.1 MB/s&/b&(截屏如下)。&br&&figure&&img src=&https://pic4.zhimg.com/50/v2-2218943eab7a6b70ad0f4a213cb1f393_b.jpg& data-rawwidth=&840& data-rawheight=&167& class=&origin_image zh-lightbox-thumb& width=&840& data-original=&https://pic4.zhimg.com/50/v2-2218943eab7a6b70ad0f4a213cb1f393_r.jpg&&&/figure&(应评论区各位 dalao 要求,补充测试环境说明:是在新加坡的服务器上设置了 BBR,&b&新加坡的服务器是数据的发送方&/b&。这个服务器是访问墙外资源的 HTTP 代理。科大移动出口到 DigitalOcean 之间不是 dedicated 的专线,是走的公网,科大移动出口这边是 1 Gbps 无限速(但是要跟其他人 share),DigitalOcean 实测是限速 200 Mbps。RTT 是 66 ms。实测结果这么好,也是因为大多数人用的是 TCP Cubic (Linux) / Compound TCP (Windows),&b&在有一定丢包率的情况下,TCP BBR 更加激进,抢占了更多的公网带宽&/b&。因此也是有些不道德的感觉。)&br&&br&此次 Google 提交到 Linux 主线并发表在 ACM queue 期刊上的 TCP BBR 拥塞控制算法,继承了 Google “先在生产环境部署,再开源和发论文” 的研究传统。TCP BBR 已经在 Youtube 服务器和 Google 跨数据中心的内部广域网(B4)上部署。&br&&br&&b&TCP BBR 致力于解决两个问题:&/b&&br&&ol&&li&&b&在有一定丢包率的网络链路上充分利用带宽。&/b&&/li&&li&&b&降低网络链路上的 buffer 占用率,从而降低延迟。&/b&&/li&&/ol&&br&TCP 拥塞控制的目标是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想用满这条水管,最好的办法就是给这根水管灌满水,也就是:&br&&b&水管内的水的数量 = 水管的容积 = 水管粗细 × 水管长度&/b&&br&换成网络的名词,也就是:&br&&b&网络内尚未被确认收到的数据包数量 = 网络链路上能容纳的数据包数量 = 链路带宽 × 往返延迟&/b&&br&&br&TCP 维护一个&b&发送窗口&/b&,估计当前网络链路上能容纳的数据包数量,希望在有数据可发的情况下,回来一个确认包就发出一个数据包,总是保持发送窗口那么多个包在网络中流动。&br&&br&&figure&&img src=&https://pic2.zhimg.com/50/v2-c81d606af6f0cfaf2de62_b.jpg& data-rawwidth=&451& data-rawheight=&225& class=&origin_image zh-lightbox-thumb& width=&451& data-original=&https://pic2.zhimg.com/50/v2-c81d606af6f0cfaf2de62_r.jpg&&&/figure&&br&&i&TCP 与水管的类比示意(图片来源:Van Jacobson,Congestion Avoidance and Control,1988)&/i&&br&&br&如何估计水管的容积呢?一种大家都能想到的方法是不断往里灌水,直到溢出来为止。标准 TCP 中的拥塞控制算法也类似:&b&不断增加发送窗口,直到发现开始丢包&/b&。这就是所谓的 ”加性增,乘性减”,也就是当收到一个确认消息的时候慢慢增加发送窗口,当确认一个包丢掉的时候较快地减小发送窗口。&br&&br&标准 TCP 的这种做法有两个问题:&br&&br&首先,假定网络中的丢包都是由于拥塞导致(网络设备的缓冲区放不下了,只好丢掉一些数据包)。事实上网络中有可能存在传输错误导致的丢包,基于丢包的拥塞控制算法并不能区分&b&拥塞丢包&/b&和&b&错误丢包&/b&。在数据中心内部,错误丢包率在十万分之一(1e-5)的量级;在广域网上,错误丢包率一般要高得多。&br&&br&更重要的是,“加性增,乘性减” 的拥塞控制算法要能正常工作,&b&错误丢包率需要与发送窗口的平方成反比&/b&。数据中心内的延迟一般是 10-100 微秒,带宽 10-40 Gbps,乘起来得到稳定的发送窗口为 12.5 KB 到 500 KB。而广域网上的带宽可能是 100 Mbps,延迟 100 毫秒,乘起来得到稳定的发送窗口为 10 MB。广域网上的发送窗口比数据中心网络高 1-2 个数量级,错误丢包率就需要低 2-4 个数量级才能正常工作。因此标准 TCP 在有一定错误丢包率的&b&长肥管道(long-fat pipe,即延迟高、带宽大的链路)&/b&上只会收敛到一个很小的发送窗口。这就是很多时候客户端和服务器都有很大带宽,运营商核心网络也没占满,但下载速度很慢,甚至下载到一半就没速度了的一个原因。&br&&br&其次,网络中会有一些 buffer,就像输液管里中间膨大的部分,用于吸收网络中的流量波动。由于标准 TCP 是通过 “灌满水管” 的方式来估算发送窗口的,在连接的开始阶段,buffer 会被倾向于占满。后续 buffer 的占用会逐渐减少,但是并不会完全消失。客户端估计的水管容积(发送窗口大小)总是略大于水管中除去膨大部分的容积。这个问题被称为 &b&bufferbloat(缓冲区膨胀)&/b&。&br&&figure&&img src=&https://pic3.zhimg.com/50/v2-47da56cba0cf246e6d8b_b.jpg& data-rawwidth=&423& data-rawheight=&283& class=&origin_image zh-lightbox-thumb& width=&423& data-original=&https://pic3.zhimg.com/50/v2-47da56cba0cf246e6d8b_r.jpg&&&/figure&&br&&i&缓冲区膨胀现象图示&/i&&br&&br&缓冲区膨胀有两个危害:&br&&ol&&li&&b&增加网络延迟&/b&。buffer 里面的东西越多,要等的时间就越长嘛。&/li&&li&共享网络瓶颈的连接较多时,可能导致&b&缓冲区被填满而丢包&/b&。很多人把这种丢包认为是发生了网络拥塞,实则不然。&/li&&/ol&&figure&&img src=&https://pic4.zhimg.com/50/v2-c623d2f88cc5f3ad568c2ce97e6ec9e1_b.jpg& data-rawwidth=&476& data-rawheight=&273& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic4.zhimg.com/50/v2-c623d2f88cc5f3ad568c2ce97e6ec9e1_r.jpg&&&/figure&&br&&i&往返延迟随时间的变化。&/i&&i&红线:标准 TCP(可见周期性的延迟变化,以及 buffer 几乎总是被填满);绿线:TCP BBR&/i&&br&&i&(图片引自 Google 在 ACM queue 2016 年 9-10 月刊上的论文 [1],下同)&/i&&br&&br&有很多论文提出在网络设备上把当前缓冲区大小的信息反馈给终端,比如在数据中心广泛应用的 ECN(Explicit Congestion Notification)。然而广域网上网络设备众多,更新换代困难,需要网络设备介入的方案很难大范围部署。&br&&br&TCP BBR 是怎样解决以上两个问题的呢?&br&&ol&&li&&b&既然不容易区分拥塞丢包和错误丢包,TCP BBR 就干脆不考虑丢包。&br&&/b&&/li&&li&&b&既然灌满水管的方式容易造成缓冲区膨胀,TCP BBR 就分别估计带宽和延迟,而不是直接估计水管的容积。&/b&&/li&&/ol&带宽和延迟的乘积就是发送窗口应有的大小。发明于 2002 年并已进入 Linux 内核的 TCP Westwood 拥塞控制算法,就是分别估计带宽和延迟,并计算其乘积作为发送窗口。然而&b&带宽和延迟就像粒子的位置和动量,是没办法同时测准的&/b&:要测量最大带宽,就要把水管灌满,缓冲区中有一定量的数据包,此时延迟就是较高的;要测量最低延迟,就要保证缓冲区为空,网络里的流量越少越好,但此时带宽就是较低的。&br&&br&TCP BBR 解决&b&带宽和延迟无法同时测准&/b&的方法是:&b&交替测量带宽和延迟;用一段时间内的带宽极大值和延迟极小值作为估计值。&/b&&br&&br&在连接刚建立的时候,TCP BBR 采用类似标准 TCP 的&b&慢启动&/b&,指数增长发送速率。然而标准 TCP 遇到任何一个丢包就会立即进入拥塞避免阶段,它的本意是填满水管之后进入拥塞避免,然而(1)如果链路的错误丢包率较高,没等到水管填满就放弃了;(2)如果网络里有 buffer,总要把缓冲区填满了才会放弃。&br&&br&TCP BBR 则是根据收到的确认包,发现有效带宽不再增长时,就进入拥塞避免阶段。(1)链路的错误丢包率只要不太高,对 BBR 没有影响;(2)当发送速率增长到开始占用 buffer 的时候,有效带宽不再增长,BBR 就及时放弃了(事实上放弃的时候占的是 3 倍带宽 × 延迟,后面会把多出来的 2 倍 buffer 清掉),这样就不会把缓冲区填满。&br&&figure&&img src=&https://pic3.zhimg.com/50/v2-bdcb_b.jpg& data-rawwidth=&354& data-rawheight=&479& class=&content_image& width=&354&&&/figure&&i&发送窗口与往返延迟和有效带宽的关系。BBR 会在左右两侧的拐点之间停下,基于丢包的标准 TCP 会在右侧拐点停下(图片引自 TCP BBR 论文,下同)&/i&&br&&br&在慢启动过程中,由于 buffer 在前期几乎没被占用,延迟的最小值就是延迟的初始估计;慢启动结束时的最大有效带宽就是带宽的初始估计。&br&&br&慢启动结束后,为了把多占用的 2 倍带宽 × 延迟消耗掉,BBR 将进入&b&排空(drain)阶段&/b&,指数降低发送速率,此时 buffer 里的包就被慢慢排空,直到往返延迟不再降低。如下图绿线所示。&br&&figure&&img src=&https://pic3.zhimg.com/50/v2-39bd5ebffb4bc1a1e9bf2_b.jpg& data-rawwidth=&480& data-rawheight=&413& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic3.zhimg.com/50/v2-39bd5ebffb4bc1a1e9bf2_r.jpg&&&/figure&&br&&i&TCP BBR(绿线)与标准 TCP(红线)有效带宽和往返延迟的比较&/i&&br&&br&排空阶段结束后,BBR 进入稳定运行状态,交替探测带宽和延迟。由于网络带宽的变化比延迟的变化更频繁,&b&BBR 稳定状态的绝大多数时间处于带宽探测阶段&/b&。带宽探测阶段是一个正反馈系统:定期尝试增加发包速率,如果收到确认的速率也增加了,就进一步增加发包速率。&br&&br&具体来说,以每 8 个往返延迟为周期,在第一个往返的时间里,BBR 尝试增加发包速率 1/4(即以估计带宽的 5/4 速度发送)。在第二个往返的时间里,为了把前一个往返多发出来的包排空,BBR 在估计带宽的基础上降低 1/4 作为发包速率。剩下 6 个往返的时间里,BBR 使用估计的带宽发包。&br&&br&当网络带宽增长一倍的时候,每个周期估计带宽会增长 1/4,每个周期为 8 个往返延迟。其中向上的尖峰是尝试增加发包速率 1/4,向下的尖峰是降低发包速率 1/4(排空阶段),后面 6 个往返延迟,使用更新后的估计带宽。3 个周期,即 24 个往返延迟后,估计带宽达到增长后的网络带宽。&br&&figure&&img src=&https://pic4.zhimg.com/50/v2-a738f6aab8262cfecc4fa_b.jpg& data-rawwidth=&326& data-rawheight=&279& class=&content_image& width=&326&&&/figure&&br&&i&网络带宽增长一倍时的行为。绿线为网络中包的数量,蓝线为延迟&/i&&br&&br&当网络带宽降低一半的时候,多出来的包占用了 buffer,导致网络中包的延迟显著增加(下图蓝线),有效带宽降低一半。延迟是使用极小值作为估计,增加的实际延迟不会反映到估计延迟(除非在延迟探测阶段,下面会讲)。带宽的估计则是使用一段滑动窗口时间内的极大值,当之前的估计值超时(移出滑动窗口)之后,降低一半后的有效带宽就会变成估计带宽。估计带宽减半后,发送窗口减半,发送端没有窗口无法发包,buffer 被逐渐排空。&br&&figure&&img src=&https://pic2.zhimg.com/50/v2-d07aebb5e_b.jpg& data-rawwidth=&320& data-rawheight=&279& class=&content_image& width=&320&&&/figure&&i&网络带宽降低一半时的行为。&/i&&i&绿线为网络中包的数量,蓝线为延迟&/i&&br&&br&&b&当带宽增加一倍时,BBR 仅用 1.5 秒就收敛了;而当带宽降低一半时,BBR 需要 4 秒才能收敛。&/b&前者由于带宽增长是指数级的;后者主要是由于带宽估计采用滑动窗口内的极大值,需要一定时间有效带宽的下降才能反馈到带宽估计中。&br&&br&当网络带宽保持不变的时候,稳定状态下的 TCP BBR 是下图这样的:(我们前面看到过这张图)可见每 8 个往返延迟为周期的延迟细微变化。&br&&figure&&img src=&https://pic4.zhimg.com/50/v2-c623d2f88cc5f3ad568c2ce97e6ec9e1_b.jpg& data-rawwidth=&476& data-rawheight=&273& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic4.zhimg.com/50/v2-c623d2f88cc5f3ad568c2ce97e6ec9e1_r.jpg&&&/figure&&br&&i&往返延迟随时间的变化。&/i&&i&红线:标准 TCP;绿线:TCP BBR&/i&&br&&br&上面介绍了 BBR 稳定状态下的带宽探测阶段,那么什么时候探测延迟呢?在带宽探测阶段中,估计延迟始终是使用极小值,如果实际延迟真的增加了怎么办?TCP BBR 每过 10 秒,如果估计延迟没有改变(也就是没有发现一个更低的延迟),就进入延迟探测阶段。延迟探测阶段持续的时间仅为 200 毫秒(或一个往返延迟,如果后者更大),这段时间里发送窗口固定为 4 个包,也就是几乎不发包。这段时间内测得的最小延迟作为新的延迟估计。也就是说,&b&大约有 2% 的时间 BBR 用极低的发包速率来测量延迟&/b&。&br&&br&&b&TCP BBR 还使用 pacing 的方法降低发包时的 burstiness&/b&,减少突然传输的一串包导致缓冲区膨胀。发包的 burstiness 可能由两个原因引起:&br&&ol&&li&数据接收方为了节约带宽,把多个确认(ACK)包累积成一个发出,这叫做 ACK Compression。数据发送方收到这个累积确认包后,如果没有 pacing,就会发出一连串的数据包。&/li&&li&数据发送方没有足够的数据可传输,积累了一定量的空闲发送窗口。当应用层突然需要传输较多的数据时,如果没有 pacing,就会把空闲发送窗口大小这么多数据一股脑发出去。&/li&&/ol&&br&下面我们来看 TCP BBR 的效果如何。&br&&br&首先看 BBR 试图解决的第一个问题:在有随机丢包情况下的吞吐量。如下图所示,&b&只要有万分之一的丢包率,标准 TCP 的带宽就只剩 30%;千分之一丢包率时只剩 10%;有百分之一的丢包率时几乎就卡住了。而 TCP BBR 在丢包率 5% 以下几乎没有带宽损失,在丢包率 15% 的时候仍有 75% 带宽&/b&。&br&&figure&&img src=&https://pic1.zhimg.com/50/v2-1df6e7ba0cae0147dddb01aac0d0f309_b.jpg& data-rawwidth=&483& data-rawheight=&277& class=&origin_image zh-lightbox-thumb& width=&483& data-original=&https://pic1.zhimg.com/50/v2-1df6e7ba0cae0147dddb01aac0d0f309_r.jpg&&&/figure&&i&100 Mbps,100ms 下的丢包率和有效带宽(红线:标准 TCP,绿线:TCP BBR)&br&&/i&&br&&b&异地数据中心间跨广域网的传输往往是高带宽、高延迟的,且有一定丢包率,TCP BBR 可以显著提高传输速度&/b&。这也是中国科大 LUG HTTP 代理服务器和 Google 广域网(B4)部署 TCP BBR 的主要原因。&br&&br&再来看 BBR 试图解决的第二个问题:&b&降低延迟,减少缓冲区膨胀&/b&。如下图所示,&b&标准 TCP 倾向于把缓冲区填满,缓冲区越大,延迟就越高&/b&。当用户的网络接入速度很慢时,这个延迟可能超过操作系统连接建立的超时时间,导致连接建立失败。使用 TCP BBR 就可以避免这个问题。&br&&figure&&img src=&https://pic4.zhimg.com/50/v2-78cabc327d487caf1309e0_b.jpg& data-rawwidth=&453& data-rawheight=&250& class=&origin_image zh-lightbox-thumb& width=&453& data-original=&https://pic4.zhimg.com/50/v2-78cabc327d487caf1309e0_r.jpg&&&/figure&&br&&i&缓冲区大小与延迟的关系(红线:标准 TCP,绿线:TCP BBR)&/i&&br&&br&Youtube 部署了 TCP BBR 之后,全球范围的中位数延迟降低了 53%(也就是快了一倍),发展中国家的中位数延迟降低了 80%(也就是快了 4 倍)。从下图可见,&b&延迟越高的用户,采用 TCP BBR 后的延迟下降比例越高,原来需要 10 秒的现在只要 2 秒了&/b&。如果您的网站需要让用 GPRS 或者慢速 WiFi 接入网络的用户也能流畅访问,不妨试试 TCP BBR。&br&&figure&&img src=&https://pic3.zhimg.com/50/v2-febab4b4a48caaa8bf569e8d033757cf_b.jpg& data-rawwidth=&476& data-rawheight=&272& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic3.zhimg.com/50/v2-febab4b4a48caaa8bf569e8d033757cf_r.jpg&&&/figure&&br&&i&标准 TCP 与 TCP BBR 的往返延迟中位数之比&/i&&br&&br&综上,&b&TCP BBR 不再使用丢包作为拥塞的信号,也不使用 “加性增,乘性减” 来维护发送窗口大小,而是分别估计极大带宽和极小延迟,把它们的乘积作为发送窗口大小。&/b&&br&&br&&br&BBR 的连接开始阶段由慢启动、排空两阶段构成。为了解决带宽和延迟不易同时测准的问题,BBR 在连接稳定后交替探测带宽和延迟,其中探测带宽阶段占绝大部分时间,通过正反馈和周期性的带宽增益尝试来快速响应可用带宽变化;偶尔的探测延迟阶段发包速率很慢,用于测准延迟。&br&&br&BBR 解决了两个问题:&br&&ol&&li&&b&在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟、高带宽的网络链路。&/b&&/li&&li&&b&降低网络链路上的 buffer 占用率,从而降低延迟。非常适合慢速接入网络的用户。&/b&&/li&&/ol&&br&看到评论区很多客户端和服务器哪个部署 TCP BBR 有效的问题,需要提醒:&b&TCP 拥塞控制算法是数据的发送端决定发送窗口,因此在哪边部署,就对哪边发出的数据有效。&/b&如果是下载,就应在服务器部署;如果是上传,就应在客户端部署。&br&&br&如果希望加速访问国外网站的速度,且下载流量远高于上传流量,在客户端上部署 TCP BBR(或者任何基于 TCP 拥塞控制的加速算法)是没什么效果的。需要在 VPN 的国外出口端部署 TCP BBR,并做 TCP Termination & TCP Proxy。也就是客户建立连接事实上是跟 VPN 的国外出口服务器建联,国外出口服务器再去跟目标服务器建联,使得丢包率高、延迟大的这一段(从客户端到国外出口)是部署了 BBR 的国外出口服务器在发送数据。或者在 VPN 的国外出口端部署 BBR 并做 HTTP(S) Proxy,原理相同。&br&&br&大概是由于 ACM queue 的篇幅限制和目标读者,这篇论文并没有讨论(仅有拥塞丢包情况下)TCP BBR 与标准 TCP 的公平性。也没有讨论 BBR 与现有拥塞控制算法的比较,如基于往返延迟的(如 TCP Vegas)、综合丢包和延迟因素的(如 Compound TCP、TCP Westwood+)、基于网络设备提供拥塞信息的(如 ECN)、网络设备采用新调度策略的(如 CoDel)。期待 Google 发表更详细的论文,也期待各位同行报告 TCP BBR 在实验或生产环境中的性能。&br&&br&本人不是 TCP 拥塞控制领域的专家,如有错漏不当之处,恳请指正。&br&&br&[1] Cardwell, Neal, et al. &BBR: Congestion-Based Congestion Control.& &i&Queue&/i&14.5 (2016): 50.
中国科大 LUG 的
在 LUG HTTP 代理服务器上部署了 Linux 4.9 的 TCP BBR 拥塞控制算法。从科大的移动出口到新加坡 DigitalOcean 的实测下载速度从 647 KB/s 提高到了 22.1 MB/s(截屏如下)。 (应评论区各位 dalao 要求,补充测试环境说明:是在新…
&p&前面已经回答很多了,刚好最近我们公众号发了一篇文章——信息安全工具汇总&/p&&p&希望对大家有帮助&/p&&h2&&b&目录&/b&&/h2&&ul&&li&漏洞及渗透练习平台&/li&&li&数据库注入练习平台&/li&&li&花式扫描器&/li&&li&信息搜集工具&/li&&li&WEB工具&/li&&li&windows域渗透工具&/li&&li&漏洞利用及攻击框架&/li&&li&漏洞POC&EXP&/li&&li&中间人攻击及钓鱼&/li&&li&密码破解&/li&&li&二进制及代码分析工具&/li&&li&EXP编写框架及工具&/li&&li&隐写相关工具&/li&&li&各类安全资料&/li&&li&各类CTF资源&/li&&li&各类编程资源&/li&&li&Python&br&&/li&&/ul&&h2&&b&漏洞及渗透练习平台&/b&&/h2&&p&WebGoat漏洞练习环境&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/WebGoat/WebGoat& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/WebGoat/WebG&/span&&span class=&invisible&&oat&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/WebGoat/WebGoat-Legacy& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/WebGoat/WebG&/span&&span class=&invisible&&oat-Legacy&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Damn Vulnerable Web Application(漏洞练习平台)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/RandomStorm/DVWA& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/RandomStorm/&/span&&span class=&invisible&&DVWA&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&数据库注入练习平台&/b&&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/Audi-1/sqli-labs& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/Audi-1/sqli-&/span&&span class=&invisible&&labs&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&用node编写的漏洞练习平台,like OWASP Node Goat&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/cr0hn/vulnerable-node& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/cr0hn/vulner&/span&&span class=&invisible&&able-node&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&花式扫描器&/b&&/h2&&p&端口扫描器Nmap&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/nmap/nmap& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/nmap/nmap&/span&&span class=&invisible&&&/span&&/a&&/p&&h2&本地网络扫描器&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/SkyLined/LocalNetworkScanner& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/SkyLined/Loc&/span&&span class=&invisible&&alNetworkScanner&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&子域名扫描器&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lijiejie/subDomainsBrute& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lijiejie/sub&/span&&span class=&invisible&&DomainsBrute&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&漏洞路由扫描器&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/jh00nbr/Routerhunter-2.0& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/jh00nbr/Rout&/span&&span class=&invisible&&erhunter-2.0&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&迷你批量信息泄漏扫描脚本&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lijiejie/BBScan& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lijiejie/BBS&/span&&span class=&invisible&&can&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&Waf类型检测工具&/h2&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/EnableSecurity/wafw00f& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/EnableSecuri&/span&&span class=&invisible&&ty/wafw00f&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&信息搜集工具&/b&&/h2&&p&社工插件,可查找以email、phone、username的注册的所有网站账号信息&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/n0tr00t/Sreg& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/n0tr00t/Sreg&/span&&span class=&invisible&&&/span&&/a&&/p&&p&Github信息搜集,可实时扫描查询git最新上传有关邮箱账号密码信息&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/sea-god/gitscan& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/sea-god/gits&/span&&span class=&invisible&&can&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&github Repo信息搜集工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/metac0rtex/GitHarvester& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/metac0rtex/G&/span&&span class=&invisible&&itHarvester&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&WEB工具&/b&&/h2&&p&webshell大合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/tennc/webshell& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/tennc/webshe&/span&&span class=&invisible&&ll&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&渗透以及web攻击脚本&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/brianwrf/hackUtils& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/brianwrf/hac&/span&&span class=&invisible&&kUtils&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&web渗透小工具大合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/rootphantomer/hack& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/rootphantome&/span&&span class=&invisible&&r/hack&/span&&span class=&ellipsis&&&/span&&/a&&i&tools&/i&for_me&/p&&p&XSS数据接收平台&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/firesunCN/BlueLotus_XSSReceiver& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/firesunCN/Bl&/span&&span class=&invisible&&ueLotus_XSSReceiver&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&XSS与CSRF工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/evilcos/xssor& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/evilcos/xsso&/span&&span class=&invisible&&r&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Short for command injection exploiter,web向命令注入检测工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/stasinopoulos/commix& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/stasinopoulo&/span&&span class=&invisible&&s/commix&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&数据库注入工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/sqlmapproject/sqlmap& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/sqlmapprojec&/span&&span class=&invisible&&t/sqlmap&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Web代理,通过加载sqlmap api进行sqli实时检测&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/zt2/sqli-hunter& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/zt2/sqli-hun&/span&&span class=&invisible&&ter&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&新版中国菜刀&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/Chora10/Cknife& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/Chora10/Ckni&/span&&span class=&invisible&&fe&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&.git泄露利用EXP&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lijiejie/GitHack& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lijiejie/Git&/span&&span class=&invisible&&Hack&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&浏览器攻击框架&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/beefproject/beef& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/beefproject/&/span&&span class=&invisible&&beef&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&自动化绕过WAF脚本&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/khalilbijjou/WAFNinja& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/khalilbijjou&/span&&span class=&invisible&&/WAFNinja&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&http命令行客户端,可以从命令行构造发送各种http请求(类似于Curl)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/jkbrzt/httpie& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/jkbrzt/httpi&/span&&span class=&invisible&&e&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&浏览器调试利器&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/firebug/firebug& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/firebug/fire&/span&&span class=&invisible&&bug&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&一款开源WAF&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/SpiderLabs/ModSecurity& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/SpiderLabs/M&/span&&span class=&invisible&&odSecurity&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&windows域渗透工具&/b&&/h2&&p&windows渗透神器&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/gentilkiwi/mimikatz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/gentilkiwi/m&/span&&span class=&invisible&&imikatz&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Powershell渗透库合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/PowerShellMafia/PowerSploit& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/PowerShellMa&/span&&span class=&invisible&&fia/PowerSploit&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Powershell tools合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/clymb3r/PowerShell& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/clymb3r/Powe&/span&&span class=&invisible&&rShell&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&Fuzz&/h2&&p&Web向Fuzz工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/xmendez/wfuzz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/xmendez/wfuz&/span&&span class=&invisible&&z&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&HTTP暴力破解,撞库攻击脚本&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lijiejie/htpwdScan& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lijiejie/htp&/span&&span class=&invisible&&wdScan&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&漏洞利用及攻击框架&/b&&/h2&&p&msf&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/rapid7/metasploit-framework& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/rapid7/metas&/span&&span class=&invisible&&ploit-framework&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Poc调用框架,可加载Pocsuite,Tangscan,Beebeeto等&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/erevus-cn/pocscan& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/erevus-cn/po&/span&&span class=&invisible&&cscan&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Pocsuite&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/knownsec/Pocsuite& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/knownsec/Poc&/span&&span class=&invisible&&suite&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Beebeeto&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/n0tr00t/Beebeeto-framework& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/n0tr00t/Beeb&/span&&span class=&invisible&&eeto-framework&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&漏洞POC&EXP&/b&&/h2&&p&ExploitDB官方git版本&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/offensive-security/exploit-database& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/offensive-se&/span&&span class=&invisible&&curity/exploit-database&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&php漏洞代码分析&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/80vul/phpcodz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/80vul/phpcod&/span&&span class=&invisible&&z&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Simple test for CVE-&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/FiloSottile/CVE-& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/FiloSottile/&/span&&span class=&invisible&&CVE-&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&CVE- POC&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/fjserna/CVE-& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/fjserna/CVE-&/span&&span class=&invisible&&&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&JAVA反序列化POC生成工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/frohoff/ysoserial& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/frohoff/ysos&/span&&span class=&invisible&&erial&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&JAVA反序列化EXP&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/foxglovesec/JavaUnserializeExploits& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/foxglovesec/&/span&&span class=&invisible&&JavaUnserializeExploits&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Jenkins CommonCollections EXP&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/CaledoniaProject/jenkins-cli-exploit& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/CaledoniaPro&/span&&span class=&invisible&&ject/jenkins-cli-exploit&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&CVE- EXP (windows内核提权)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/vlad902/hacking-team-windows-kernel-lpe& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/vlad902/hack&/span&&span class=&invisible&&ing-team-windows-kernel-lpe&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&use docker to show web attack(php本地文件包含结合phpinfo getshell 以及ssrf结合curl的利用演示)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/hxer/vulnapp& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/hxer/vulnapp&/span&&span class=&invisible&&&/span&&/a&&/p&&p&php7缓存覆写漏洞Demo及相关工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/GoSecure/php7-opcache-override& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/GoSecure/php&/span&&span class=&invisible&&7-opcache-override&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&XcodeGhost木马样本&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/XcodeGhostSource/XcodeGhost& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/XcodeGhostSo&/span&&span class=&invisible&&urce/XcodeGhost&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&中间人攻击及钓鱼&/b&&/h2&&p&中间人攻击框架&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/secretsquirrel/the-backdoor-factory& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/secretsquirr&/span&&span class=&invisible&&el/the-backdoor-factory&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/secretsquirrel/BDFProxy& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/secretsquirr&/span&&span class=&invisible&&el/BDFProxy&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/byt3bl33d3r/MITMf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/byt3bl33d3r/&/span&&span class=&invisible&&MITMf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Inject code, jam wifi, and spy on wifi users&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/DanMcInerney/LANs.py& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/DanMcInerney&/span&&span class=&invisible&&/LANs.py&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&可扩展的中间人代理工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/intrepidusgroup/mallory& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/intrepidusgr&/span&&span class=&invisible&&oup/mallory&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&wifi钓鱼&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/sophron/wifiphisher& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/sophron/wifi&/span&&span class=&invisible&&phisher&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&密码破解&/b&&/h2&&p&密码破解工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/shinnok/johnny& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/shinnok/john&/span&&span class=&invisible&&ny&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&本地存储的各类密码提取利器&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/AlessandroZ/LaZagne& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/AlessandroZ/&/span&&span class=&invisible&&LaZagne&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&二进制及代码分析工具&/b&&/h2&&p&二进制分析工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/devttys0/binwalk& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/devttys0/bin&/span&&span class=&invisible&&walk&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&系统扫描器,用于寻找程序和库然后收集他们的依赖关系,链接等信息&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/quarkslab/binmap& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/quarkslab/bi&/span&&span class=&invisible&&nmap&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&rp++ is a full-cpp written tool that aims to find ROP sequences in PE/Elf/Mach-O (doesn't support the FAT binaries) x86/x64 binaries.&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/0vercl0k/rp& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/0vercl0k/rp&/span&&span class=&invisible&&&/span&&/a&&/p&&p&Windows Exploit Development工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lillypad/badger& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lillypad/bad&/span&&span class=&invisible&&ger&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&二进制静态分析工具(python)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/bdcht/amoco& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/bdcht/amoco&/span&&span class=&invisible&&&/span&&/a&&/p&&p&Python Exploit Development Assistance for GDB&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/longld/peda& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/longld/peda&/span&&span class=&invisible&&&/span&&/a&&/p&&p&对BillGates Linux Botnet系木马活动的监控工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ValdikSS/billgates-botnet-tracker& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ValdikSS/bil&/span&&span class=&invisible&&lgates-botnet-tracker&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&木马配置参数提取工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/kevthehermit/RATDecoders& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/kevthehermit&/span&&span class=&invisible&&/RATDecoders&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Shellphish编写的二进制分析工具(CTF向)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/angr/angr& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/angr/angr&/span&&span class=&invisible&&&/span&&/a&&/p&&p&针对python的静态代码分析工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/yinwang0/pysonar2& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/yinwang0/pys&/span&&span class=&invisible&&onar2&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&一个自动化的脚本(shell)分析工具,用来给出警告和建议&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/koalaman/shellcheck& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/koalaman/she&/span&&span class=&invisible&&llcheck&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&基于AST变换的简易Javascript反混淆辅助工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ChiChou/etacsufbo& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ChiChou/etac&/span&&span class=&invisible&&sufbo&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&EXP编写框架及工具&/b&&/h2&&p&二进制EXP编写工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/t00sh/rop-tool& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/t00sh/rop-to&/span&&span class=&invisible&&ol&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&CTF Pwn 类题目脚本编写框架&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/Gallopsled/pwntools& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/Gallopsled/p&/span&&span class=&invisible&&wntools&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&an easy-to-use io library for pwning development&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/zTrix/zio& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/zTrix/zio&/span&&span class=&invisible&&&/span&&/a&&/p&&p&跨平台注入工具( Inject JavaScript to explore native apps on Windows, Mac, Linux, iOS and Android.)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/frida/frida& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/frida/frida&/span&&span class=&invisible&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&隐写相关工具&/b&&/h2&&p&隐写检测工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/abeluck/stegdetect& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/abeluck/steg&/span&&span class=&invisible&&detect&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&各类安全资料&/b&&/h2&&p&域渗透教程&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/l3m0n/pentest_study& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/l3m0n/pentes&/span&&span class=&invisible&&t_study&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python security教程(原文链接&a href=&//link.zhihu.com/?target=http%3A//www.primalsecurity.net/tutorials/python-tutorials/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&primalsecurity.net/tuto&/span&&span class=&invisible&&rials/python-tutorials/&/span&&span class=&ellipsis&&&/span&&/a&)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/smartFlash/pySecurity& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/smartFlash/p&/span&&span class=&invisible&&ySecurity&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&data_hacking合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ClickSecurity/data_hacking& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ClickSecurit&/span&&span class=&invisible&&y/data_hacking&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&mobile-security-wiki&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/exploitprotocol/mobile-security-wiki& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/exploitproto&/span&&span class=&invisible&&col/mobile-security-wiki&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&书籍《reverse-engineering-for-beginners》&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/veficos/reverse-engineering-for-beginners& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/veficos/reve&/span&&span class=&invisible&&rse-engineering-for-beginners&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&一些信息安全标准及设备配置&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/luyg24/IT_security& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/luyg24/IT_se&/span&&span class=&invisible&&curity&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&APT相关笔记&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/kbandla/APTnotes& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/kbandla/APTn&/span&&span class=&invisible&&otes&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Kcon资料&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/knownsec/KCon& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/knownsec/KCo&/span&&span class=&invisible&&n&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&ctf及黑客资源合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/bt3gl/My-Gray-Hacker-Resources& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/bt3gl/My-Gra&/span&&span class=&invisible&&y-Hacker-Resources&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&ctf和安全工具大合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/zardus/ctf-tools& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/zardus/ctf-t&/span&&span class=&invisible&&ools&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&《DO NOT FUCK WITH A HACKER》&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/citypw/DNFWAH& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/citypw/DNFWA&/span&&span class=&invisible&&H&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&各类CTF资源&/b&&/h2&&p&近年ctf writeup大全&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ctfs/write-ups-2016& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ctfs/write-u&/span&&span class=&invisible&&ps-2016&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ctfs/write-ups-2015& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ctfs/write-u&/span&&span class=&invisible&&ps-2015&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ctfs/write-ups-2014& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ctfs/write-u&/span&&span class=&invisible&&ps-2014&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&fbctf竞赛平台Demo&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/facebook/fbctf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/facebook/fbc&/span&&span class=&invisible&&tf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&ctf Resources&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ctfs/resources& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ctfs/resourc&/span&&span class=&invisible&&es&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&各类编程资源&/b&&/h2&&p&大礼包(什么都有)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/bayandin/awesome-awesomeness& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/bayandin/awe&/span&&span class=&invisible&&some-awesomeness&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&bash-handbook&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/denysdovhan/bash-handbook& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/denysdovhan/&/span&&span class=&invisible&&bash-handbook&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&b&python资源大全&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/jobbole/awesome-python-cn& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/jobbole/awes&/span&&span class=&invisible&&ome-python-cn&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&git学习资料&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/xirong/my-git& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/xirong/my-gi&/span&&span class=&invisible&&t&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&安卓开源代码解析&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/android-cn/android-open-project-analysis& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/android-cn/a&/span&&span class=&invisible&&ndroid-open-project-analysis&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python框架,库,资源大合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/vinta/awesome-python& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/vinta/awesom&/span&&span class=&invisible&&e-python&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&JS 正则表达式库(用于简化构造复杂的JS正则表达式)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/VerbalExpressions/JSVerbalExpressions& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/VerbalExpres&/span&&span class=&invisible&&sions/JSVerbalExpressions&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&Python&/h2&&p&python 正则表达式库(用于简化构造复杂的python正则表达式)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/VerbalExpressions/PythonVerbalExpressions& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/VerbalExpres&/span&&span class=&invisible&&sions/PythonVerbalExpressions&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python任务管理以及命令执行库&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/pyinvoke/invoke& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/pyinvoke/inv&/span&&span class=&invisible&&oke&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python exe打包库&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/pyinstaller/pyinstaller& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/pyinstaller/&/span&&span class=&invisible&&pyinstaller&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&py3 爬虫框架&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/orf/cyborg& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/orf/cyborg&/span&&span class=&invisible&&&/span&&/a&&/p&&p&一个提供底层接口数据包编程和网络协议支持的python库&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/CoreSecurity/impacket& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/CoreSecurity&/span&&span class=&invisible&&/impacket&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python requests 库&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/kennethreitz/requests& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/kennethreitz&/span&&span class=&invisible&&/requests&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python 实用工具合集&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/mahmoud/boltons& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/mahmoud/bolt&/span&&span class=&invisible&&ons&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&python爬虫系统&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/binux/pyspider& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/binux/pyspid&/span&&span class=&invisible&&er&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&ctf向 python工具包&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/P1kachu/v0lt& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/P1kachu/v0lt&/span&&span class=&invisible&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&科学上网&/b&&/h2&&p&科学上网工具&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/XX-net/XX-Net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/XX-net/XX-Ne&/span&&span class=&invisible&&t&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&老司机福利&/h2&&p&微信自动抢红包动态库&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/east520/AutoGetRedEnv& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/east520/Auto&/span&&span class=&invisible&&GetRedEnv&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&微信抢红包插件(安卓版)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/geeeeeeeeek/WeChatLuckyMoney& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/geeeeeeeeek/&/span&&span class=&invisible&&WeChatLuckyMoney&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&神器&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/yangyangwithgnu/hardseed& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/yangyangwith&/span&&span class=&invisible&&gnu/hardseed&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&h2&&b&其他&/b&&/h2&&p&以下内容来自:&a href=&//link.zhihu.com/?target=https%3A//github.com/We5ter/Scanners-Box/blob/master/README_CN.md& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/We5ter/Scann&/span&&span class=&invisible&&ers-Box/blob/master/README_CN.md&/span&&span class=&ellipsis&&&/span&&/a& 子域名枚举类&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/lijiejie/subDomainsBrute& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/lijiejie/sub&/span&&span class=&invisible&&DomainsBrute&/span&&span class=&ellipsis&&&/span&&/a& (经典的子域名爆破枚举脚本)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/ring04h/wydomain& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/ring04h/wydo&/span&&span class=&invisible&&main&/span&&span class=&ellipsis&&&/span&&/a& (子域名字典穷举)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/le4f/dnsmaper& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/le4f/dnsmape&/span&&span class=&invisible&&r&/span&&span class=&ellipsis&&&/span&&/a& (子域名枚举与地图标记)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/0xbug/orangescan& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/0xbug/orange&/span&&span class=&invisible&&scan&/span&&span class=&ellipsis&&&/span&&/a& (在线子域名信息收集工具)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/TheRook/subbrute& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/TheRook/subb&/span&&span class=&invisible&&rute&/span&&span class=&ellipsis&&&/span&&/a& (根据DNS记录查询子域名)&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//github.com/We5ter/Goog

我要回帖

更多关于 hindi medium 的文章

 

随机推荐