- 博客(39)
- 资源 (33)
- 收藏
- 关注
转载 各种排序算法的比较
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。各种排序的稳定性,时间复杂度和空间复杂度总结:1.稳定性比较插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、
2015-10-24 22:03:27 410
转载 排序算法——基数排序
【1】基数排序以前研究的各种排序算法,都是通过比较数据大小的方法对欲排数据序列进行排序整理过程。而基数排序却不再相同,那么,基数排序是采用怎样的策略进行排序的呢?简略概述:基数排序是通过“分配”和“收集”过程来实现排序。而这个思想该如何理解呢?请看以下例子。(1)假设有欲排数据序列如下所示:73 22 93 43 55 14 28 65 39
2015-10-24 22:00:42 566
转载 排序算法——希尔排序
希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了(此时插入排序较快)。假设有一个很小的数据在一个已按升序排好序的数组的末端。如果用复杂度为O(n2)的排序(冒泡排序或插入排序),可能会进行n次的比较和交换才能将该数
2015-10-24 16:06:15 466
转载 排序算法——归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为
2015-10-24 12:47:12 379
转载 排序算法——选择排序
选择排序选择排序是通过每一趟排序过程中从待排序记录中选择出关键字最小(大)的记录,将其依次放在数据表的最前或最后端的方法来实现整个数据表的有序排列。本节将介绍选择排序方法中最简单且最常用的简单选择排序。选择排序基本思想 第一趟排序在所有待排序的n个记录中选出关键字最小的记录,将它与数据表中的第一个记录交换位置,使关键字最小的记录处于数据表的最前端;第二趟在剩下的n-1个记录中再选
2015-10-24 11:34:32 508
转载 排序算法——插入排序
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。以下代码仅供参考,欢迎指正#include "stdafx.h"void
2015-10-24 10:59:14 398
转载 基地址和偏移地址的概念
首先必须明白 cpu和内存的区别cpu 中央处理器 内存是物理数据存放的地方cpu不直接存放数据而是通过内存来存放数据cpu和内存之间通过20条地址总线相连接,地址总线就是cpu通过地址找到对应的内存的物理数据的传递工具计算机只能处理0,1 二进制数据每一条线可以处理 0,1 两种类型数据所以20根线的 总共能拥有 2^20=1048576个不相同的
2015-10-21 15:07:05 5129 2
转载 masm中常用的伪指令
ASSUME CS:code,DS:data;用于定义段例如:assume cs:code,ds:dataSEGMENTENDS;用于定义数据或者代码例如:data segment msg db "122" bbs db 99,2d,3ddata endsSTART:
2015-10-21 15:05:44 2007
转载 函数声明后面加个stdcall是什么意思
首先先要清楚汇编中堆栈的原理 才能了解 stdcall的约束 这里 是我通过ollydbg汇编代码调试去理解比如 我们看到这个方法的调用位置为 00401378 找到这个地址的调用代码为00401378 |. E8 BD000000 call 0040143A (这里等价于 call MessageBoxA)进入 0040143A004
2015-10-21 15:05:06 998
转载 指令和伪指令和宏指令区别
指令:编译软件最终编译成机器码伪指令:不编译成机器码 只是告诉编译器应该怎么做宏指令 : 将一堆指令合并编写 完成一个特定的任务 这里要让编译器知道是否是宏指令就需要伪指令声明这里举例 lea命令和offset命令lea为机器指令 offset为伪指令比如lea ax,[1] 就是一条机器指令 在执行时将ds的第一个字节的偏移地址写给ax也就是 1mov
2015-10-21 15:04:48 1355
转载 进位与溢出
Cy位是进位位,用来表示本次无符号数运算结果的溢出溢出。由于无符号数的最高有效位只有数位意义而无符号意义,所以该位所产生的进位应该是本次运算结果的实际进位值。所以说:进位位Cy是在给定二进制数的位数范围内,代表了本次运算结果的溢出情况。另一方面,它所保存的进位值有时也是有用的。例如,双字长运算时,可以利用进位值把低位字的进位计入高位字。 OV位表示溢出。溢出位是用来表示带符号数
2015-10-21 15:03:41 3936
转载 什么是OEP
OEP OEP:(Original Entry Point),程序的入口点未加壳的程序 oep表示程序的入口点 加壳的程序会隐藏oep 找到真正的oep可以脱壳 并且反向调试程序
2015-10-21 15:03:08 1467
转载 三条总线作用
总线分为 3种 地址总线,数据总线,控制总线 比如 要往内存地址a 写入 1 三条总线配合如下cpu通过 地址总线发送内存地址a到内存中 内存定位到a地址 cpu通过数据中线发送1到内存a地址 cpu通过控制总线发送写的指令 内存将1写入a地址怎么确定二进制是数据还是地址了进入地址总线的
2015-10-21 15:02:05 781
转载 C++中Struct和Class的区别
Struct和Class的区别今天这篇博文主要讲解在C++中关键字struct和class的区别。这篇博文,将会系统的将这两个关键字的不同面进行详细的讲解。从语法上来讲,class和struct做类型定义时只有两点区别:默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;成员的默认访问权限。class的成
2015-10-19 16:25:56 333
转载 用Python生成随机的中文验证码图片
大家都在 Python论坛里讨论、交流,你还在等什么!赶快加入!在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了。今天我们就跟大家分享一段用Python生成随机的中文验证码图片源代码。01# -*- coding: utf-8 -*-
2015-10-18 21:58:22 718 1
转载 5个常用的Python功能代码
大家都在 Python论坛里讨论、交流,你还在等什么!赶快加入!今天玩蛇网给大家提供5个最常用的Python功能和它的源代码。一、随机数生成>>> import random #导入Python内置的随机模块 >>> num = random.randint(1,1000) #生成1-1000之间的伪随机数二、读文件>>> f = open("c:\
2015-10-18 21:44:47 494
转载 C++11中值得关注的几大变化
赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2
2015-10-18 15:36:30 244
转载 C++指向成员函数的指针
C++指向函数的指针定义方式为:返回类型 (*指针名)(函数参数列表),例如 void (*p)(int)是指向一个返回值为void 参数为int类型的函数。而若想定义一个指向类成员函数的函数指针该怎么定义呢?对成员函数指针的使用。(1)非静态成员函数定义方式:返回类型 (类名::*指针名)(函数参数列表)例如void (A::*p)(int)是一个指向A类中成员函
2015-10-17 13:31:42 470
转载 我所理解的设计模式(C++实现)—— “一句话总结”和索引
我所理解的设计模式系列已经全部完成,在写该系列的过程中收获很多。俗话说得好,好记性不如烂笔头,写出来不单单可以增加自己对知识的理解,也可以很好的分享给大家,大家共同学习。这里是最后一篇,来给所有的设计模式来个一句话总结,在让我们“过电影”般在过一遍。按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的
2015-10-16 17:41:21 324
原创 洗牌算法
//混乱扑克VOID CGameLogic::UpsetCards(BYTE cbCardBuffer[], BYTE cbBufferCount){ //混乱准备 BYTE cbCardData[cbBufferCount]; CopyMemory(cbCardData,cbCardBuffer,cbBufferCount); //混乱扑克 BYTE cbRandCount=0,
2015-10-16 10:00:00 687
转载 Python编写简易木马程序
0x00 准备文章内容仅供学习研究、切勿用于非法用途!这次我们使用Python编写一个具有键盘记录、截屏以及通信功能的简易木马。依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码,安装配置JEDI插件可以参照这里: http://drops.wooyun.org/tips/4413首先准备好我们需要的依赖库,python hook
2015-10-14 23:08:11 10372 1
转载 python网络编程实例简析
本文实例讲述了python网络编程,分享给大家供大家参考。具体方法如下:服务端代码如下:?12345678910111213141516fromSocketServer import(TCPS
2015-10-14 23:01:00 1022
转载 动态语言和静态语言的比较
一 、静态语言的优势到底在哪?来自robbin 摘自 http://www.javaeye.com/article/33971?page=7引用是像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势 这是一个存在于大家心里常识了。我承认我自己在潜意识里面也觉得静态强类型语言适合开发复杂
2015-10-14 22:50:34 403
原创 3_5 ResponsibilityChainMode 责任链模式
StarUML使用说明-指导手册原著:Stephen Wong翻译:火猴StarUML是一种生成类图和其他类型的统一建模语言(UML)图表的工具。这是一个用Java语言描述的创建类图的简明手册。StarUML(简称SU),是一种创建UML类图,并能够自动生成Java的“stub code”的工具。SU也可以做JAVA逆向工程,以产生相应的UML图表。在
2015-10-14 19:50:38 426
转载 23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
2015-10-14 17:40:45 734
原创 3_10 MediaMode 中介者模式
将功能分层设计,方便业务理解,管理和维护。三层架构是最经常用的。每层包的命名:组织结构.公司名称.模块层。如:com.lovo.gui/service/dao/util。一、表示层界面、数据收集、交互、展现数据。表示层的主要功能是:1.显示数据和界面,负责与用户交互。2.读取用户数据。3.验证数据。4.调用相应的业务层接口进行
2015-10-14 15:38:18 390
原创 3_9 VisitorMode 访问者模式
一、行为模式行为模式关注的是对象的行为。该类型的模式需要做的是对可能变化的行为进行抽象,通过封装达到整个架构的可扩展性。例如策略模式,就是将可能变化的策略或算法抽象为一个独立的接口或抽象类,从而实现未来策略的扩展。其它的行为型设计模式也大致如此,或者封装一个请求(命令模式),或者封装一种状态(状态模式),或者封装访问的方式(访问者模式),或者封装遍历算法(迭代器模式)。这些模式所要封装的行为,
2015-10-14 15:35:31 522
原创 3_8 StateMode 状态模式
先来说说模式的概念吧。模式就是:具有代表性的某些重复问题的解决方案,是进过多次证实,与业务无关的方案。它们都有特定的名称和适用的环境。模式的使用为我们带来了复用性的提高和可维护性的提高,同时可以增强表达能力。因为它是整个解决方案的总结。一、模式的主要分类模式分为两大类:设计模式和架构模式。根据group of four 定义的23种模式和MVC模式,总共有2
2015-10-14 15:32:50 588
原创 3_7 MementoMode 备忘录模式
一、设计原则意义为了设计出一个好的软件系统。我们必须遵照一定的规则。衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。除了功能需求以外,还有很多衡量软件设计质量的标准,包括可读性、可复用性、可扩展性、可维护性等。1一般一个好的软件具有以下特点:可读性:软件的设计文档是否轻易被其他程序员理解。可读性差的设计会给大型软件的开发和维护过程带来严重的危害。可复用性:软件系
2015-10-14 15:26:14 434
原创 3_6 CommandMode 命令模式
在面向对象技术中,实现封装的方式有三种:第一种是对数据的隐藏,将数据隐藏在方法的背后。第二种是对实现的隐藏,将实现隐藏在接口背后。第三种是对变化的隐藏,将变化隐藏于抽象背后。一、软件工程定义由于软件系统的规模越来越大,功能越来越多,相应的复杂程度也是越来越高,导致软件开发者难以掌控,也就是软件危机。它的产生促使了软件工程的提出。软件工程就是,用工程学的方法来指导软件开发、产
2015-10-14 15:19:57 680
转载 SQL Server 字符串函数
SQL Server 字符串函数字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数。 1、获取字符的ASCII码 ASCII ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。 语法结构: ASCII(espression) 这里的expre
2015-10-13 17:34:34 470
原创 木马捆绑器设计思路和源码
木马捆绑是把一个有界面的正常程序,和一个后门程序捆绑在一起从而制作一个木马。木马捆绑器一般是三个程序和在一起,程序1:正常程序,程序2:后门程序,程序3:一个加载。这个加载器的作用就是包容、释放、加载这前面两个个程序,MZ*******************************************************************************
2015-10-10 21:00:36 4045
转载 vector作为参数传递到dll问题
最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况。这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中相应的数据问题,始终都获得不了正确的数据,要么就是一些非法的数据;另一个问题就是delete这个指针时候会产生相应异常(针对这个问题的思考:如果EXE和DLL都链接到DLL的C/C++运行期库,那么代
2015-10-09 13:28:17 975
转载 C++中的RAII机制
前言在写C++设计模式——单例模式的时候,在写到实例销毁时,设计的GC类是很巧妙的,而这一巧妙的设计就是根据当对象的生命周期结束时会自动调用其析构函数的,而这一巧妙的设计也是有专业的名词的——RAII。那以下将围绕RAII,全面的讲解RAII的相关知识。什么是RAII?RAII是Resource Acquisition Is Initialization的简称,是C++语言
2015-10-08 13:11:28 343
转载 __declspec(selectany)的作用
__declspec是一个Microsoft Visual C++特定的编译器属性开关。括号中指明的是哪一个属性生效。关于__declspec的其他属性可以百度“__declspec msdn”查看微软的官方帮助。也可以参看博客中转载的文章。言归正传。__declspec(selectany)在MSDN中的说明是这样的:Tells the compiler that the dec...
2015-10-08 11:04:34 508
原创 暴力破解百度云
// CrackBaidu.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #pragma comment(lib,"WS2_32")#pragma warning(disable:4996)class LMemTest{public: LMemTest(void){}; ~LMemTest(voi
2015-10-07 21:00:15 3268
转载 换种思路去理解设计模式
1 前言 看过许多关于设计模式的博客,也读过关于设计模式的书。几乎所有的介绍的开头,直接就引入了“设计模式”或者“某某模式”。设计模式到底是因什么而来?这是一个很重要的问题。孙悟空从石头缝里蹦出来,《西游记》还介绍了这个石头的来历呢。 要想了解一个东西,至少有“3W”——what、why、how——是什么、为什么、怎么用。看现在大部分的文章或者书籍,重点介绍的还是“what”,
2015-10-07 20:44:29 574
转载 设计模式大全
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类的实
2015-10-07 20:40:51 479
转载 C++源代码免杀之函数的动态调用
最近也在学着修改Gh0st远控的源代码,源代码免杀起来还是方便、简单、有效和简单点。针对于输入输出表盯的比较紧的杀毒软件,最有效的还是进行函数动态调用。也就是说找到函数的原定义,包括值类型和参数等等,再在调用该函数的地方重新定义这个函数,其实也只是改下函数名而已,下面举个例子:CreateRemoteThread 作用是创建远线程,假设杀毒软件现在就杀在这个函数上,我们就这样处理,首先在代
2015-10-02 11:42:19 2849
SSDTHook实现进程保护
2017-06-09
SkinSharp开发库+百款皮肤+皮肤编辑器
2017-05-24
minhook-1.3.2
2017-05-09
python2.7.8 32
2016-05-25
AStar 算法实例
2015-07-18
Visual Assist X补丁
2015-06-18
cmake-3.14.3-win64-x64.zip
2019-09-05
跨平台高性能TCP服务器框架 &boost;
2018-06-25
网狐IOCP压缩版
2018-06-22
用C++实现的壳
2017-09-14
像加载DLL一样加载EXE
2017-09-10
protobuf-2.61最新版
2017-08-28
Gh0stVC6到VS2010迁移所有问题的解决方法
2017-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人