摘要: 首先,你得准备一套python开发环境,正常情况下,一般是在windows下开发的,因为win系统应用广泛,再则就是要有个IDE,这里我选择我熟悉的Eclipse。环境搭建,网上都有,比如:http://www.jb51.net/article/34517.htm。环境搭好后,再来说一下什么是调试器。一般用python写黑客脚本,都会用到一个神库:ctype。兼具C语言的底层操作能力,同时具备动态语言的方便性,这种情况在编程语言里不多见吧?!ctype模块能使你轻而易举的调用动态链接库中的导出函数,更美妙的是你还可以通过ctype构建复杂的C数据类型,从而编写出具有底层内存操作功能的工具函数。 阅读全文
posted @ 2013-12-19 12:43 为了生活,加油 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 绕了一圈,发现自己的兴趣点还是在黑客和渗透上。于是,这个作为开篇第一个。重走黑客之路。首先列举一下国外黑客的相关资源。allhack.com 本网站提供了图书馆及下载专区。该图书馆为初学者提供了黑客知识和计算机技术基础知识。下载区包括了扫描工具,FLOOD工具,解密工具,拒绝服务攻击等alw.nih.gov 在安全目录下有大量的安全工具anticode.com 入侵攻击,拒绝服务攻击,密钥记录器,邮件炸弹,最流行的IRC客户程序脚本,扫描器,嗅探器,口令解密器,木马等程序。此网站更新及时,而且维护也很好auscert.org.au 澳大利亚电脑紧急反应小组,包括大量入侵攻击及其工作原理的信息a 阅读全文
posted @ 2013-12-18 17:51 为了生活,加油 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 最近发现几起对ThreadPoolExecutor的误用,其中包括自己,发现都是因为没有仔细看注释和内部运转机制,想当然的揣测参数导致,先看一下新建一个ThreadPoolExecutor的构建参数:publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,TimeUnitunit,BlockingQueueworkQueue,ThreadFactorythreadFactory,RejectedExecutionHandlerhandler)看这个参数很容易让人以为是线程池里保持corePool 阅读全文
posted @ 2013-11-13 17:06 为了生活,加油 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 一、什么是同步器多线程并发的执行,之间通过某种共享状态来同步,只有当状态满足xxxx条件,才能触发线程执行xxxx。这个共同的语义可以称之为同步器。可以认为以上所有的锁机制都可以基于同步器定制来实现的。而juc(java.util.concurrent)里的思想是将这些场景抽象出来的语义通过统一的同步框架来支持。juc里所有的这些锁机制都是基于AQS(AbstractQueuedSynchronizer)框架上构建的。下面简单介绍下AQS(AbstractQueuedSynchronizer)。可以参考Doug Lea的论文The java.util.concurrent Synchroniz 阅读全文
posted @ 2013-10-26 10:38 为了生活,加油 阅读(1903) 评论(0) 推荐(0) 编辑
摘要: 一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下:抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)移除remove()poll()take()poll(time, unit)检查element()peek()不可用不可用 1)add(anObject):把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则招聘异常 2)offer(anObject):.. 阅读全文
posted @ 2013-10-26 10:36 为了生活,加油 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 一、双向队列DequeQueue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。Deque在Queue的基础上增加了更多的操作方法。从上图可以看到,Deque不仅具有FIFO的Queue实现,也有FILO的实现,也就是不仅可以实现队列,也可以实现一个堆栈。同时在Deque的体系结构图中可以看到,实现一个Deque可以使用数组(ArrayDeq 阅读全文
posted @ 2013-10-26 10:34 为了生活,加油 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 一、Map体系Hashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者HashMap。尽管Hashtable和HashMap的结构非常类似,但是他们之间并没有多大联系。ConcurrentHashMap是HashMap的线程安全版本,ConcurrentSkipListMap是TreeMap的线程安全版本。最终可用的线程安全版本Map实现是ConcurrentHashMap/ConcurrentSkipL 阅读全文
posted @ 2013-10-26 10:33 为了生活,加油 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 一、前言concurrentHashMap与ConcurrentSkipListMap性能测试在4线程1.6万数据的条件下,ConcurrentHashMap 存取速度是ConcurrentSkipListMap 的4倍左右。但ConcurrentSkipListMap有几个ConcurrentHashMap 不能比拟的优点:1、ConcurrentSkipListMap 的key是有序的。2、ConcurrentSkipListMap 支持更高的并发。ConcurrentSkipListMap 的存取时间是log(N),和线程数几乎无关。也就是说在数据量一定的情况下,并发的线程越多,Conc 阅读全文
posted @ 2013-10-26 10:32 为了生活,加油 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 一、何谓Atomic?Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成)在x86 平台上,CPU提供了在指令执行期间对总线加锁的手段。CPU芯片上有一条引线#HLOCK pin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HLOCK pin的电位拉低,持续到这条指 阅读全文
posted @ 2013-10-26 10:27 为了生活,加油 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 首要结论:volatile 变量提供了线程的可见性,并不能保证线程安全性和原子性。什么是线程的可见性:锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证,线程看到的共享变量可能是修改前的值或不一致的值,这将引发许多严重问题。具体看volatile的语义:volatile相当于s 阅读全文
posted @ 2013-10-26 10:27 为了生活,加油 阅读(324) 评论(0) 推荐(0) 编辑