- 博客(342)
- 收藏
- 关注
转载 STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2015-04-22 17:16:55
952
转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算
一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,
2015-04-07 13:57:18
924
转载 C++ 虚函数表解析
C++ 虚函数表解析 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做
2015-04-07 13:56:16
796
转载 COM编程小结
编程小结 一、Com概念所谓COM(Componet ObjectModel,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。在COM规范下将能够以高度灵活的编程手段来开发、维
2015-04-02 18:44:47
2963
转载 Python:itertools模块
itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用。chain(iter1, iter2, ..., iterN):给出一组迭代器(iter1, iter2, ..., iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从it
2015-03-16 10:29:20
521
转载 最易懂的栈桢介绍
首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图出栈操作:pop e
2015-03-12 16:50:11
1315
转载 在Source Insight中看Python代码
SI是个很强大的代码查看修改工具,以前用来看C,C++都是相当happy的。最近需要用Python,看了两天毫无颜色的UltraEdit之后决定,还是迁移回SI看。无奈SI默认不支持Python,需要进行下小小设置~~~步骤如下:下载个SI的CLF文件,地址为http://www.sourceinsight.com/public/languages/Python.CLF。打开SI。选项 |
2015-03-11 16:38:41
2464
转载 C++著名程序库的比较和学习经验
C++著名程序库的比较和学习经验(转自校内,了解一些基础的还是很有必要)1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8
2015-02-27 16:59:19
673
转载 技术上界与使用下界
台湾的苏克毅教授许多年前讲过一件有趣的事情。在韩国,日韩翻译软件售价100美元左右,畅销市场,英韩翻译软件售价10美元左右,无人问津。按理说,英韩翻译的需求应该远大于日韩翻译的需求,为什么会出现这种情况呢?原来,日文与韩文的语法相近,只要按照词典进行单词级别的翻译,就可以得到不错的结果,机器翻译比较容易实现,基本可以满足大家的需求;而英文与韩文的语法相异甚大,机器翻译比较困难,翻译的质量还远远不能
2015-02-13 11:58:41
749
转载 虚拟机检测技术攻防
目录(?)[-]方法一通过执行特权指令来检测虚拟机方法二利用IDT基址检测虚拟机方法三利用LDT和GDT的检测方法方法四基于STR的检测方法方法五基于注册表检测虚拟机方法六基于时间差的检测方式方法七利用虚拟硬件指纹检测虚拟机anti VM的解决方法前言在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,
2015-02-05 11:38:41
1046
转载 跨越进程边界共享内核对象【复制对象句柄】
跨越进程边界共享内核对象有三种方法:对象句柄的继承性命名对象复制对象句柄复制对象句柄共享跨越进程边界的内核对象的最后一个方法是使用BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHa
2015-02-04 11:15:45
809
转载 GetKeyState、GetAsyncKeyState、GetKeyboardState的区别:
GetKeyState、GetAsyncKeyState、GetKeyboardState函数的区别:1、BOOL GetKeyboardState( PBYTE lpKeyState );获得所有的256个键(键盘按键、鼠标按键等等)的状态,lpKeyState是指向一个256bit的数组,存放所有键的状态。2、SHORT GetAsyncKeyState( int vKey )
2015-02-02 18:27:18
1105
转载 剪切板操作
// Funciton: // 拷贝数据到剪切板 // 从剪切板粘贴数据 // Data:2011/4/8 #include #include void SetDataToClip(void) { // 打开剪贴板 if (!OpenClipboard(NULL)|| !EmptyClipboa
2015-02-02 17:12:23
808
转载 Win32 系统部分函数
一.GetSystemMetrics返回与windows环境有关的信息 void CDemoDlg::OnTest() { CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST); pListBox->ResetContent(); int nWidth = 0; int nHeight = 0;
2015-02-02 15:42:26
631
转载 3种简单的键盘记录简单介绍
Ring3层键盘记录的实现 本文主要论述、对比了用户层主要的三种实现键盘记录的方法:利用钩子函数、轮询键盘消息和直接从输入设备获取数据。在木马程序中,键盘记录是不可缺少的一部分,因为它是窃取别人电脑上数据的关键部分,记录这些程序的账号、密码主要就是靠键盘记录实现的。然后再将获得的账号、密码发到某个指定的邮箱里或某个FTP或网站服务器上。 在用户层实现键盘记录远比在系统层实现简单,是比
2015-01-30 17:48:35
4429
转载 CreateFileMapping在N个进程间共享一个HWND类型内存
Windows高深啊,做点东西要查来查去,把人脑创造性转成机器服务C/C++ code?1234567891011121314151617class CIPC{public:
2015-01-29 17:58:04
869
转载 document 方法:getElementsByName()与getElementById()、getElementsByTagName()的区别
document.getElementsByName() 是根据控件名称获取这个控件对象,因为控件名称可以相同,返回的是一个对象数组。 document.getElementById() 是根据控件ID获取这个控件对象,因为控件ID唯一,返回的是一个对象。 document.getElementsByTagName() 是根据控件TAG获取这个控件对象,返回的是一
2015-01-20 10:56:31
4174
转载 python与web编程
source:: http://code.google.com/p/python-tips/source/browse/MP3-Fetch/doc/doc_1 #! /usr/bin/python一. 代理服务器:代理服务器(Proxy server),从其名字上不难理解,就是做代理的,其作用与现在各种各样的代理商差不多。作为教育网和169的用户来讲,他们不能直接访问国外的
2015-01-19 18:39:44
856
转载 python : COM-IE 操作2
# -*- coding:UTF-8 -*- import sysfrom time import sleepimport win32com.clientfrom win32com.client import DispatchExstdin, stdout, stderr = sys.stdin, sys.stdout, sys.stderrreload(sys)
2015-01-19 18:10:21
1037
转载 python : COM-IE 操作1
# -*- coding:UTF-8 -*- from time import sleepimport win32com.clientfrom win32com.client import DispatchExclass COM_IE:def __init__(self,url=None):self.url = urlself.Visible = 1
2015-01-19 18:09:44
956
转载 python : COM-IE 填充表单登录
import win32com.clientfrom time import sleeploginurl='http://www.renren.com/SysHome.do'username='用户名'password='密码'ie = win32com.client.Dispatch("InternetExplorer.Application.1")
2015-01-19 18:06:13
1148
转载 InternetExplorer Object
InternetExplorer Object42 out of 82 rated this helpful Rate this topicControls an instance of Windows Internet Explorer through automation.Members TableThe following table lists
2015-01-19 13:59:24
1653
转载 一步一步创建VC2005解决方案
现在软件开发已经告别了“独行侠”的年代,而是以团队开发为主。一般情况下,一个解决方案都会包含多个项目,比如:其中一些是静态库项目,一些是动态库项目,当然还会有应用程序项目。另外,根据需要,还可能会使用一些第三方库。因此为解决方案设置一个合理的目录结构并配合一定的环境变量,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变
2015-01-08 12:04:07
563
转载 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
梯度下降(GD)是最小化风险函数、损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正。下面的h(x)是要拟合的函数,J(theta)损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(theta)就出来了。其中m是训练集的记录条数,j是参数的个数。
2015-01-05 10:45:03
583
转载 VS2005设置代码区域背景颜色
工具-选项弹出设置对话框 选择对话框左侧的环境选项下的字体和颜色选项环境 --... --字体和颜色 --...主要是修改显示项里的纯文本和标识符的项背景色我改的背景色是185 227 221背景色-#B9E3DD(185 227 221) 效果图
2014-12-31 14:54:14
3221
转载 TLSAlloc()
为什么要有TLS?原因在于,进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。 如果需要在一个线程内部的各个函数调用都能访
2014-12-22 11:38:09
1525
转载 最流行的4个机器学习数据集
机器学习算法需要作用于数据,而数据的本质则决定了应用的机器学习算法是否合适,而数据的质量也会决定算法表现的好坏程度。所以会研究数据,会分析数据很重要。本文作为学习研究数据系列博文的开篇,列举了4个最流行的机器学习数据集。IrisIris也称鸢尾花卉数据集,是一类多重变量分析的数据集。通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolo
2014-12-17 10:57:56
1662
转载 PDF转Word方法小罗列
1. 用MS Office Document Imaging 将PDF转为Word 如果您有MS Office的相应套件,则可通过MS Office Document Imaging进行PDF到Word的转换。 Microsoft Office Document Imaging 是MS Office的一款选装组件,用于印刷文档的图像化扫描存储,并具有O
2014-12-12 11:22:41
766
转载 Hook : SetThreadContext
目前windows下注入dll的技术大体上就是两种1:钩子 SetWindowsHook2:创建远程线程 CreateRemoteThread尽管都能实现远程注入dll,但都难逃杀毒软件的法眼,特别是 CreateRemoteThread一般都被杀毒软件监控的很牢,这里提供一个巧妙的方法能够利用目标进程(确切地说是线程)自己主动调用LoadLibrary装载dll.我们
2014-12-02 10:26:58
1620
转载 FS寄存器
FS寄存器指向当前活动线程的TEB结构(线程结构)偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程ID02C 指向线程局部存储指针
2014-11-27 17:23:28
1448
转载 深入探索Win32结构化异常处理
在Win32操作系统提供的所有功能中,使用最广泛而又没有公开的恐怕要数结构化异常处理( Structured Exception Handling ,SEH ) 了。当你考虑Win32结构化异常处理时,也许会想到__try、__finally和__except等术语。可能你在任何一本讲解Win32的好书上 都能找到关于SEH较为详细的描述,甚至Win32 SDK文档也对使用__try、__fi
2014-11-26 10:27:56
673
转载 Windows XP中的新型向量化异常处理
当我安装完Windows XP Beta(以前代号为“Whistler”)时,并没有指望能够看到许多新的API,结果却惊喜地发现我错了!在本月的专栏中,我就要讲述这些新增功能其 中之一——向量化异常处理(Vectored Exception Handling)。 当运行我在1997年11 月MSJ 杂志Under The Hood 专栏 中 介绍的PEDIFF程序时,我发现了向量化
2014-11-26 10:26:33
1342
转载 关于寄存器ESP和EBP的一些理解
一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush p2 ;参数2入栈, ESP -= 4h , ESP = NN - 4h
2014-11-24 19:14:51
848
转载 位运算 的探究
前言由于有人没看明白起初的O(n)操作, 所以这里就先简单的介绍一下 O(n log(n))的做法.我这里添加上基本的做法, 然后把O(n)做法的分析写的更详细了一个, 明白的人可能看起来比较啰嗦, 抱歉了.另外有人问假设是大部分都是4个相同, 只有一个是2个相同怎么做, 这个问题我们可以称为4-2问题.这样的话这篇文章主要讲解的就是3-1问题了.为了不偏离主题, 我重
2014-11-13 13:43:25
631
转载 MATLAB入门教程
MATLAB入门教程 1.MATLAB的基本知识1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answe
2014-11-10 10:59:00
756
转载 Python2.7环境下安装pydbg
pydbg在Python2.7环境下的安装问题,并贴在这里希望能帮助到其他人。(本文由Wei Wang原创, 欢迎访问我的博客:http://blog.csdn.net/cheng_tian)1. 下载pydbg:请到 https://github.com/OpenRCE/pydbg,该页面有个“ZIP”按钮,点击即可下载压缩包。2. 解压后将所得文件夹重命名为pydbg并将其放在py
2014-11-06 14:12:36
805
转载 了解HEAP组织
HEAP的概念堆栈堆栈,在操作系统内存中有两种存储空间,一个是堆,一个是栈。堆主要用于存储用户动态分配的变量,而栈呢,则是存储我们程序过程中的临时变量。当然栈的作用远不止用作存储变量,但这不是我们这篇文章的讨论内容。 堆(HEAP)的分配,使用,回收都是通过微软的API来管理的,最常见的API是malloc和new。在往底层走一点呢,这两个函数都会调用HeapAlloc(R
2014-11-03 13:50:21
743
转载 PageHeap的堆破坏检测原理
堆破坏所谓的堆破坏,是说没控制好自己的指针,把不属于你分配的那块内存给写覆盖了。这块内存可能是你程序的数据,也可能是堆的管理结构。那么这个会导致怎样的后果呢?可能的情况我们来yy下把程序里的计算结果覆盖了,这也许会让你重复看了N次代码,校验了N次计算逻辑也搞不明白为何计算结果还是有问题堆管理结构被破坏了,new/delete,或者malloc/free操作失败等等等等~堆破
2014-11-03 13:47:35
2127
转载 过滤驱动容易让新手纠结的几个函数
1. IoAttachDevice[cpp] view plaincopyNTSTATUS IoAttachDevice( IN PDEVICE_OBJECT SourceDevice, IN PUNICODE_STRING TargetDevice, OUT PDEVICE_OBJECT *A
2014-10-30 16:54:48
816
转载 如何清晰地思考
如何思维产生了极大的兴趣,于是在一年的时间里面密集地阅读了以下一些方面的经典著作:社会心理学、认知科学、神经科学、进化心理学、行为经济学、机器学习、人工智能、自然语言处理、问题求解、辩论法(Argumentation Theory)、Critical Thinking、判断与决策。以及大量的 Wikipedia 条目。这一年来,对以上这些领域的阅读和思考给我带来了极大的价值,我相信他们也会
2014-10-29 16:37:13
744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人