暴力破解测试工具--Patator 源码分析
作者:网络转载 发布时间:[ 2013/8/15 17:10:07 ] 推荐标签:
由于是弱密码扫描,字典肯定不小,那么为了追求速度,肯定要使用线程,patator默认使用10个线程去跑,这部分代码主要在控制部分中(class Controller),代码还是有点小复杂的。
gqueues = [Queue(maxsize=10000) for _ in range(self.num_threads)]
# consumers
for num in range(self.num_threads):
pqueue = Queue(maxsize=1000)
t = Thread(target=self.consume, args=(gqueues[num], pqueue))
t.daemon = True
t.start()
self.thread_report.append(pqueue)
self.thread_progress.append(Progress())
# producer
t = Thread(target=self.produce, args=(gqueues,))
t.daemon = True
t.start()
正如你所看到的,启用了两个经典的线程,一个produce,一个consume,两者通信使用的是Queue。self.num_threads是可配的,通过命名行中指定 -t,否则将是默认的10个线程。
到这里要和大家说再见了,Patator源码还是值得一读的,剩下的交给你们自己行动了。

sales@spasvo.com