上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: 黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程。为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特将这些常用的API按照7大分类进行整理如下,希望对大家的学习有所帮助。一、进程创建进程:CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&si,&pi);WinExec("notepad",SW_SHOW);ShellExecute(0,"op 阅读全文
posted @ 2012-09-01 20:49 Florian 阅读(11967) 评论(29) 推荐(16) 编辑
摘要: 远程线程注入引出的问题一、远程线程注入基本原理远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行。在提供便利的同时,正是因为如此,使得系统内部出现了安全隐患。常用的注入手段有两种:一种是远程的dll的注入,另一种是远程代码的注入。后者相对起来更加隐蔽,也更难被杀软检测。本文具体实现这两种操作,在介绍相关API使用的同时,也会解决由此引发的一些问题。顾名思义,远程线程注入就是在非本地进程中创建一个新的线程。相比而言,本地创建线程的方法很简单,系统AP 阅读全文
posted @ 2012-08-30 19:27 Florian 阅读(17387) 评论(34) 推荐(21) 编辑
摘要: Windows字符集的统一与转换一、字符集的历史渊源在Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑。其实只要弄清Win32程序使用的字符编码方式就清楚了,图1展示了一个Win32控制台项目的属性中的字符集选项。这里有两个不同的字符集:一个是Unicode字符集,另一个就是多字节字符集MBCS(Multi-ByteCharacterSystem),即熟知的ANSI字符集。图1 Visual Studio Win32项目属性或许有人和我一样对这么一群“凭空出现”的字符集既痛恨又好奇,痛恨的是为什么不使用统一的方式对字符编码,还要在程序中不断的转换。好奇的原因亦是如此 阅读全文
posted @ 2012-08-28 17:28 Florian 阅读(11021) 评论(0) 推荐(5) 编辑
摘要: Windows文件操作基础代码 Windows下对文件进行操作使用的一段基础代码File.h,首先是File类定义:#pragmaonce#include<Windows.h>#include<assert.h>classFile{HANDLEhFile;//文件句柄public:voidopen(LPCWSTRfileName);intread(char*data,intlen);voidmovefp(longdisp,inttype);intwrite(char*data,intlen);voidclose();staticvoidcopy(LPCWSTRsrc,L 阅读全文
posted @ 2012-07-31 18:31 Florian 阅读(1324) 评论(5) 推荐(0) 编辑
摘要: Windows注册表操作基础代码 Windows下对注册表进行操作使用的一段基础代码Reg.h:#pragmaonce#include<assert.h>#include<windows.h>classReg{HKEYhkey;public:voidopen(HKEYroot,char*subKey);//打开注册表键,不存在则创建voiddel(HKEYroot,char*subKey);//删除注册表键voidclose();//关闭注册表键voidsetValue(char*name,char*data);//设置注册表值,不存在则创建voidgetValue(c 阅读全文
posted @ 2012-07-31 16:10 Florian 阅读(2103) 评论(0) 推荐(0) 编辑
摘要: Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要的一段代码:#include<PCAP.H>#pragmacomment(lib,"wpcap.lib")//#pragmacomment(lib,"ws2_32.lib")#include<iostream>usingnamespacestd;//回调函数voidpacket_handler(u_char*param,conststructpcap_pkthdr*header,constu_char*pkt_data);intmain(){pcap_if_t 阅读全文
posted @ 2012-07-28 16:13 Florian 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 快速傅里叶变换C++递归算法实现 网上有些算法资料经测试运行结果是错误的,虽然代码的使用的是非递归形式。为了方便验证快速傅里叶变换的准确性,我提供了自己设计的递归算法。 基于时域抽取的“基2”快速傅里叶变换算法代码: Fouier.h文件:#pragmaonce#include"Complex.h"classFouier{Complex*data;voidfft(intstart,intstep,intlen);ComplexW(intk,intn);//e^(-i*2*pi*k/n)public:Fouier(void);~Fouier(void);voidfft();} 阅读全文
posted @ 2012-07-28 15:23 Florian 阅读(1669) 评论(0) 推荐(0) 编辑
摘要: 多柱汉诺塔最优算法设计探究引言汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究。最简单的汉诺塔是三个柱子(A、B、C),因此多柱汉诺塔的柱子个数M≥3。下面从三柱汉诺塔说起,慢慢深入我们要关心的问题。1. 三柱汉诺塔三柱汉诺塔是经典的汉诺塔问题,在算法设计中是递归算法的典型问题。其算法是这样的: 首先把A 柱上面的n- 1 个碟子通过C 柱移到B 柱上【T(n-1)步】,然后把A 柱剩下的一个碟子移到C 柱上【1步】, 最后把B 柱上所有的碟子通过A 柱移到C 柱上【T(n-1)步】。很容易得到算法的递归方程为:T(n)=2*T(n-1)+1,因此 阅读全文
posted @ 2012-07-28 15:08 Florian 阅读(8765) 评论(1) 推荐(5) 编辑
摘要: 算法设计关于递归方程T(n)=aT(n/b)+f(n)之通用解法在算法设计中经常需要通过递归方程估计算法的时间复杂度T(n),本文针对形如T(n)=aT(n/b)+f(n)的递归方程进行讨论,以期望找出通用的递归方程的求解方式。算法设计教材中给出的Master定理可以解决该类方程的绝大多数情况,根据Master定理:o-渐进上界、w-渐进下界、O-渐进确界。设a≥1,b>1为常数,f(n)为函数,T(n)=aT(n/b)+f(n)为非负数,令x=logba:1. f(n)=o(nx-e),e>0,那么T(n)=O(nx)。2. f(n)=O(nx),那么T(n)=O(nx logn)。3. f 阅读全文
posted @ 2012-07-28 15:06 Florian 阅读(5545) 评论(0) 推荐(0) 编辑
摘要: 关于如何评价洗牌质量的猜想洗牌算法是卡牌类游戏中必须使用的算法,本质上说洗牌算法的目的是使某个给定的顺序更加的无序,因此出现了很多种洗牌算法。我们不重点讨论如何洗牌,我们将眼光关注于洗出的牌是否达到我们预期的要求,以及如何衡量洗出的牌无序的程度。首先先看一个简单有效的洗牌算法。一、一个简单的洗牌算法一个比较容易实现的洗牌算法是这样的,通过随机选出两张牌进行交换,通过多次这样的重复操作,就能达到洗牌的目的。事实证明这种洗牌方式还是比较可行,最重要的是比较简单,代码如下。//洗牌算法,随机交换数组的两个元素,交换数组长度次为一次洗牌template<classT>voidmess(Td 阅读全文
posted @ 2012-07-28 15:01 Florian 阅读(1261) 评论(2) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页