自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深秋哋黎明的专栏

博观而约取,厚积而薄发

  • 博客(41)
  • 资源 (9)
  • 收藏
  • 关注

原创 Bison笔记

Bison笔记2016/1/211.语法结构%{C/C++头文件、全局文件、全局变量、类型定义此法分析器yylex(采用lex进行此法分析)和错误打印函数%}Bison声明区间。定义之后用到的终结符、非终结符、操作符优先级%%Bison语法规则定义%%C/C++代码 需要定义prologue区域函数,或者其他代码,生成的c/c++文件会完全拷贝这份代

2016-10-21 14:15:24 8947 1

转载 实战 Lucene,第 1 部分: 初识 Lucene

原地址:https://www.ibm.com/developerworks/cn/java/j-lo-lucene1/本文首先介绍了 Lucene 的一些基本概念,然后开发了一个应用程序演示了利用 Lucene 建立索引并在该索引上进行搜索的过程。Lucene 简介Lucene 是一个基于 Java 的全文信息检索工具包,它

2016-09-27 14:56:11 472

原创 基于字符串的编辑距离

最近因为项目需要对一个web网页变更进行实时监控,之前项目组有人采用的是比较简单 的文本对比的方式,只要发现文本中一处发生变动就进行告警,最后导致的结果就是误报的情况比较多,比如在对首页进行监控时,后台对用户访问量的统计会在首页实时更新,这样就会被当做网站被改动来处理了,而这并不是我们所需要的,因为我们感兴趣的不是网页动态数据区域的变化,这样我们最终要解决的就是怎么来分离网页的动态区域和静态区域。

2016-04-08 10:10:49 862

转载 开源爬虫Labin,Nutch,Heritrix介绍和对比

开源爬虫Labin,Nutch,Heritrix介绍和对比            转载原文:http://www.open-open.com/bbs/view/1325332257061/从网上找了一些开源spider的相关资料,整理在下面: ------------------------------------

2016-03-26 18:31:03 4967

原创 网站弱点扫描器核心技术研究一

之前一直都是在转载被人的一些网络安全相关的文章,最近有空了就写写之前完成的一个项目的核心技术,对网络安全或是弱点扫描器有兴趣的可以和我一起探讨这方面的知识。ps:当我设计完这款扫描器的时候俨然发现我已经成为一名会写代码的黑客了,不对,应该是白帽子,因为我不会去做坏事,嘿嘿。。。。设计一款网站弱点扫描器的必要基础是你必须非常熟悉http协议和相关的库(如urllib、urllib2,由于

2015-05-14 13:31:06 1592

转载 web攻防之Cookie注入

摘要:随着网络安全技术的发展,SQL注入作为一种很流行的攻击方式被越来越多的人所知晓。很多网站也都对SQL注入做了防护,许多网站管理员的做法就是添加一个防注入程序。这时我们用常规的手段去探测网站的SQL注入漏洞时会被防注入程序阻挡,遇到这种情况我们该怎么办?难道就没有办法了吗?答案是否定的。随着网络安全技术的发展,SQL注入作为一种很流行的攻击方式被越来越多的人所知晓。很多网站也都对SQL

2014-11-20 13:38:30 863

转载 web攻防之跨站脚本攻击漏洞

摘要:XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式。因为Web环境的复杂性以及XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决。那么,XSS跨站脚本攻击具体攻击行为是什么,又该如何进行有效的防范呢?本文对此进行了有针对性的具体实例分析。XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式。因为Web环境的复杂性以及XSS跨站脚本攻击的多变性,使得该

2014-11-20 13:34:07 11880

转载 Apache Struts远程命令执行漏洞、开放式式重定向漏洞

摘要:Struts应用开发框架目前广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。近日网上公布了Struts一个严重的命令执行漏洞,在我国互联网环境影响巨大,本文将对这个漏洞进行分析和描述。Struts是Apache软件基金会Jakarta项目组的一个开源项目,它采用MVC模式,帮助java开发者利用J2EE开发Web应用。目前,Struts广泛应用于大型

2014-11-20 13:29:19 11866

转载 织梦Dedecms buy_action.php SQL注入漏洞分析

Dedecms buy_action.php SQL注入漏洞分析0x01 补丁对比通过对比源码和2月25日补丁发现被改动的文件有三个,buy_action.php、uploadsafe.inc.php和sys_info.htm。sys_info.htm只是添加了一个重置cfg_cookie_encode的代码,而且是静态文件,可以忽略掉。uploadsafe.inc.php

2014-11-20 13:16:28 5611

转载 spring框架远程代码执行漏洞

Spring框架远程代码执行0x01 概述2012年12月国外研究者DanAmodio发表《Remote Code with Expression Language Injection》一文,指出Spring框架存在潜在的代码注入风险。在2013年1月,国内安全研究人员在微博上分享了该篇文章的中文翻译内容。文章中指出Spring框架3.0.6以下版本,在一定的条件下,可以被

2014-11-20 13:12:43 9837 1

转载 Linux五种IO模型性能分析

socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做

2014-01-11 15:53:55 33447 7

转载 Windows五种IO模型性能分析

重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。 采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次最多都只能支持6 4个套接字。假如想让这个模型同时管理不止64个套接字,必须创建额外的工作者线程,以便等待更多的事件对

2014-01-11 15:38:55 9577

转载 使用C/C++扩展Python

使用C/C++扩展Python翻译:gashero如果你会用C,实现Python嵌入模块很简单。利用扩展模块可做很多Python不方便做的事情,他们可以直接调用C库和系统调用。为了支持扩展,Python API定义了一系列函数、宏和变量,提供了对Python运行时系统的访问支持。Python的C API由C源码组成,并包含  “Python.h” 头文件。编写扩展模块与你的系统

2013-12-16 10:58:50 1793

转载 75个顶级开源安全应用

随着网络犯罪的日益增多,或许我们需要更多资金投入到安全方面。不过,你并非一定要花钱购买安全应用,开源社区一直在不断开发优秀的安全工具,以满足更广泛的安全需要。下面是由国外专家总结出来的75个顶级开源安全应用,共大家参考。反病毒/反恶意软件工具1、ClamAV最著名、最受欢迎的开源反病毒引擎,大量商业和开源安全应用都使用了该引擎。该软件可以运行在Linux/Unix操作系统上

2013-12-07 12:30:35 3935 1

原创 驱动层主动发数据到应用层

上次转载的一片博客已经介绍了驱动层主动发送数据给应用层的方法,下面介绍的一种方法有点差异之处,上次的是在应用层创建事件对象,在驱动层创建MDL(内存描述符)来实现同步通信,而这次则是在应用层创建虚拟内存,驱动程序将虚拟地址转换成物理地址,然后再转成驱动程序能访问的虚拟地址,同样能达到内存共享的目的。驱动层部分代码switch (ioControlCode){ case 2001:

2013-11-20 15:44:37 4079

转载 应用层与驱动层同步事件处理方法

应用层与驱动层同步事件处理方法              关于这个问题高手略过吧。              Ring3与Ring0同步是很有用的手段,在此做一个简要的整理,希望对开发这方面程序的朋友有帮助,好了,开始吧。             1 同步的策略             初写驱动的朋友都知道,通过DeviceIoControl这个API函数,

2013-11-20 15:23:06 2585 3

转载 IO_STACK_LOCATION

如前文所述,nt内核的驱动模型没有完全使用函数调用栈,而是自己山寨出来一个IO_STACK_LOCATION,里面保存了驱动调用序列。我们知道函数调用栈的push和pop都是编译器帮忙弄的,你甚至都可以在完全不了解内幕的前提下写代码,但是驱动开发不一样,调用序列要你自己去关心,何时入栈,何时出栈,栈内保留的什么内容,全部都要照顾好,否则BSOD就在前方不远等你。与IO_STACK_LOCA

2013-10-19 00:32:50 3414 1

原创 驱动开发笔记(二)入门篇

学习驱动开发也有大半年时间了,刚好国庆也过完了,今天逛了下csdn博客,发现自己好久没写博客了,一时兴起想写点什么关于驱动的,因为我刚学驱动开发时对一些概念不清楚,可能是文档没讲清楚或是我理解错了,我觉得有必要把我自己理解的讲出来。这里我以文件过滤驱动为例。(此处我认为大家都看过楚狂人的驱动编程基础文档,如有理解错误的地方,请不吝指正)首先你要了解驱动对象和设备对象驱动对象(DRIVER_

2013-10-07 14:37:02 1015

原创 NDIS中间层驱动开发在Win7系统下和Windows XP系统下的区别

http://bbs.pediy.com/showthread.php?t=137545

2013-09-08 00:36:26 1000

原创 Windows NT 驱动程序开发人员提示 -- 应注意避免

下面是开发人员在使用 Windows NT 设备驱动程序时应当避免的事项列表: 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。一定不要将 DeviceObject->Flag

2013-04-26 17:17:01 1022

原创 windows驱动开发笔记

突然发现自己好长时间没写博客了,而且也没什么浏览量就没写了。今天突然想写一下这段时间的学习经历,以纪念看代码时逝去的青春岁月。因为申请了学校的创新项目要做一个驱动层的文件透明加密系统,自己有从来没接触过,只好硬着头皮从零学起了。文件系统驱动又分好几种,如NTFS、FAT32、网络文件系统、CD_ROM文件系统等等。从最开始编译别人的驱动程序、搭建调试环境、自己建一个驱动程序开始算是步入了驱

2013-04-14 20:36:45 671

原创 微软面试题解题笔记——二元查找树的镜像转换

(题目来源于v_JULY_v的整理,微软公司等数据结构+算法面试100题,July博客http://blog.csdn.net/v_JULY_v)题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。  例如输入:  8  / \  6 10 / \    / \5

2013-01-17 23:13:12 605

原创 线段树思想实现矩形切割

因为前段时间碰到一个问题,是要对一组相交、重叠、相离的矩形进行切割,一组大致有几百个矩形,当时写了个算法,虽然没有问题单总感觉时间复杂度比较大,判断次数比较多,那个算法就不发了,今天没事有研究了下这个问题,发现用线段树思想爱解决这个问题比较容易,准确说是用线段树里面的二维矩形树,这里只说下对两个相交矩形的切割,对一组矩形的切割就比较简单了。如下图,对矩形1按x和y方向切割后

2012-12-18 15:56:56 871

原创 共享内存

今天花了一天时间写的一个共享类,通过共享内存区来实现进程间的通信,写的不完整的请改正,下面贴代码#pragma once/************************************************************************//* 文件名 : MemMap.h 创建时间:[29/11/2012] 作者: J-K

2012-11-29 16:46:17 790

原创 串口通信

这里采用字符串池实现串口数据接收,串口类改自一个老外写的CSerialPort类。/*** FILENAME CSerialPort.h**** PURPOSE This class can read, write and watch one serial port.** It sends messages to its owner when something h

2012-11-25 22:27:56 4437 4

转载 stl string用法总结

在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化string类的字符操作:const char &operator[](int n)c

2012-11-25 16:01:08 537

转载 x264源码分析

相关说明:1.     使用版本:  x264-cvs-2004-05-112.     这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了.3.     需要学习的知识:a)       编码器的工作流程.b)      H.264的码流结构,像x264_sps_t

2012-11-15 22:19:53 683

原创 Socket Send和Recv函数详解

send函数int send( SOCKET s,      const char FAR *buf,      int len,      int flags );  不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端

2012-11-14 18:09:51 623

转载 CxImage编译

CxImage图像库CxImage下载地址:http://www.codeproject.com/KB/graphics/cximage/cximage600_full.zip作者:Davide Pizzolato CxImage简介      CxImage是一个可以简便而快速地打开、保存、显示和转换图像文件的 C++类库,它可以用于MFC

2012-11-05 14:52:39 1693

转载 LibJpeg编译过程

在Unix或Linux系统上的编译情况如下:1.       tar xzvf jpegsrcv6b.tar.gz2.       cd jpeg-6b3.       ./configure4.       make5.       make test(编译测试程序,看看能否在系统上正确运行)6.       make install

2012-10-30 22:20:34 750

原创 改写libjpeg实现自定义压缩方案

这几天网上看的libjpeg内存压缩讲的不是很清楚,自己就去看了下源文档,理解了调用原理才能实现符合程序的压缩方案,。背景:对屏幕上的小矩行进行压缩自定义协议:数据长度+RECT结构+jpeg数据部分协议头typedef struct tagBuffAreaHeader{ int nBuffLength; RECT rect;}BuffAreaHeader;自定义目标输出

2012-10-30 14:06:42 2803

原创 setjmp和longjmp

setjmp和longjmp是C语言独有的,只有将它们结合起来使用,才能达到程序控制流有效转移的目的,按照程序员的预先设计的意图,去实现对程序中可能出现的异常进行集中处理。先来看一下这两个函数的定义吧:setjmp和longjmp的函数原型在setjmp.h中函数原型:int setjmp(jmp_buf envbuf);setjmp函数用缓冲区envbuf

2012-10-28 21:34:32 492

原创 托盘

一、托盘简介     所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起,但又不希望占据任务栏的时候,就可以把程序放到托盘区。其实,托盘区的编程很简单,下面简要阐述一下子喽^_^ 二、托盘编程相关函数     其实呢,把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可

2012-10-22 21:02:00 515

原创 SetWindowsHookEx详解

SetWindowsHookEx详解函数功能:该函数将一个应用程序定义的挂钩处理过程安装到挂钩链中去,您可以通过安装挂钩处理过程来对系统的某些类型事件进行监控,这些事件与某个特定的线程或系统中的所有事件相关.函数原形:HHOOK SetWindowsHookEx( int idHook, HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId );参

2012-10-18 13:32:43 988

转载 设计模式7大原则(三)

五、接口隔离原则1. 定义        i.  客户端不应该依赖那些它不需要的接口。        ii.  一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。 2.分析         i.  接口隔离原则是指使用多个专门的接口,而不使用单一的总接口。每一个接口应该承担一种相对独立的角色,不多不少,不干

2012-10-13 09:47:04 818

转载 设计模式7大原则(二)

二、依赖倒转原则                1.依赖倒转原则定义                        i. 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。                        ii. 要针对接口编程,不要针对实现编程。                 2. 依赖倒转原则分析

2012-10-13 09:46:03 680

转载 设计模式7大原则(一)

花絮        每天都在和面向对象打交道,但是我们在应用面向对象的时候感觉自己的面向对象技术应用的很合理?理解的很到位?应用的很到位?用的时候恰到好处?用的是否符合软件的发展趋势?        上面很多一连串的问题,没有把你搞晕吧!我想说的面向对象的应用也有面向对象的原则,一个程序员的编程素质从一个小例子几十行代码就可以展现出来。面向对象编程是是面向对象的基础中的基础,废话不

2012-10-13 09:44:57 803

原创 STL list中对象排序

#pragma once#include class CCell{public: RECT rect;public: CCell(); CCell(RECT rc); ~CCell(void); int GetLeft() const;//获取左上角x坐标 int GetTop() const;//获取左上角y坐标};#include "StdAfx.h"#inclu

2012-10-04 15:26:29 747

原创 内存映射实现进程间通信

示例通过内存映射实现从服务器加载bmp位图到内存,客户端从内存读取并显示。//服务器部分代码void CServerDlg::OnCreateFileMap() { // TODO: Add your control notification handler code here CButton* pButton = (CButton*)GetDlgItem(IDC_BUTTON1)

2012-09-28 22:18:22 1139

原创 MFC中线程创建的一般方法

说到线程的创建,常用到的函数有3类,CreateThread、_beginthread或_beginthreadex、AfxrBeginThread,以前刚学多线程的时候,只要是创建线程,我一般都是用的_beginthread或_beginthreadex,因为用的多,也就比较熟悉了,但是,线程创建时是要分情况的,控制台下用_beginthread或_beginthreadex比较多,下面看看函数

2012-09-08 16:29:36 3233 1

ratproxy漏洞扫描代码

ratproxy漏洞扫描代码。

2016-03-01

驱动加载工具

驱动加载工具,,特殊驱动(比如ndis、tdi、miniport、usb等可能需要用inf文件来加载)。

2013-11-21

禹盾主动防御系统源码

使用ssdt hook技术实现的主动防御,值得研究!

2013-11-21

WIndows驱动开发技术详解源码

Windows驱动开发技术详解 张帆著 这本书是学驱动开发的入门书籍,书中涉及所有源码已打包,搞驱动开发的值得下载。

2012-12-08

c++模拟实现动态分区式存储管理算法(带文档)

连续动态分区内存管理模拟实现 该程序实现连续动态分区内存管理方式管理一块虚拟内存,采用四种内存分配算法,即首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法实现内存分配和回收功能。带详细文档说明。

2012-12-03

共享内存Share Memory

通过创建共享内存区实现进程间的通信,测试demo,需要的请下载。。。

2012-11-29

Jpeg压缩算法

内含两个压缩包,一个是是libjpeg压缩算法,支持文件到文件的压缩,一个是改进后的压缩算法,支持内存到内存的压缩,减少了图像传输效率。

2012-09-04

SkinFeature皮肤库

SkinFeature皮肤界面库,包含dll和lib文件

2012-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除