函数指针

CVE-2013-4730漏洞分析报告

混江龙づ霸主 提交于 2019-11-29 22:10:23
极光(CVE-2013-4730)漏洞分析报告 软件名称 :Internet Explorer 软件版本 :6.0 漏洞模块 :mshtml.dll 模块版本 :6.0.2900.5512 编译日期 :2008-04-14 操作系统 : Windows 2000/XP/2003/Vista Gold/2008/7/ 漏洞编号 :CVE-2010-0249 危害等级 高危 漏洞类型 :缓冲区溢出 威胁类型 :远程 2019年07月23日 目录 1. 软件简介 2. 漏洞成因 3. 利用过程 4. PoC 5. 结语 6. 参考资料 软件简介 Internet Explorer,是 微软公司 推出的一款 网页浏览器 。原称Microsoft Internet Explorer(6版本以前)和Windows Internet Explorer(7、8、9、10、11版本),简称IE。在 IE7 以前,中文直译为"网络探路者",但在IE7以后官方便直接俗称"IE 浏览器 "。 漏洞成因 根据收集到的包含恶意代码的网络协议包,可以使用WireShark追踪流功能从网络协议包中获得引发漏洞的html页面代码。 详细html代码见Poc1。 使用phpStudy在win7虚拟机中搭建服务器,将得到的html页面保存到服务器中,等待被攻击主机访问。 在xp+ie6环境下

MFC常用函数总结

佐手、 提交于 2019-11-28 18:16:56
1、MFC编辑框、静态文本框相关的常用函数 《1》GetDlgItemText(ID ,str) 作用:从对话框中获取文本 第一个参数为要获取的编辑框(或者静态文本框、单选按钮等可以显示内容的控件)的ID,第二个参数为字符串(Cstring 类型)的变量,获取的文本存储在str中。 《2》SetDlgItemText(ID,str) 作用:将字符串显示在控件中 第一个参数为要显示的编辑框(或者静态文本框、单选按钮、组合框等可以显示内容的控件)的ID,第二个参数为字符串(Cstring 类型)的变量,显示的文本存储在str中。如果要显示的变量的类型不是Cstring,则通过Format函数强制转换。 通常还要加一个UpDateData(FALSE)。 《3》UINT nID=GetCheckedRadioButton(IDC1, IDC2); 作用:获取单选框的选项的ID 第一个参数为该组合框中第一个单选按钮的ID,第二个参数为该组合框中最后一个按钮的ID。 《4》CheckRadioButton(IDC1, IDC2, IDC3); 作用:初始化单选按钮 第一个参数为该组合框中第一个单选按钮的ID,第二个参数为该组合框中最后一个按钮的ID,第三个参数为为缺省选项的ID。 《5》m_scrollBar.SetScrollRange(0, 500) ; 作用:设置水平滚动条的取值范围

OpenvSwitch 解读2

蹲街弑〆低调 提交于 2019-11-28 17:31:27
OVS 核心代码 datapath 目录 ovs-switchd OVS数据库管理 ofproto OVS 架构 OVS 主要的数据结构 数据结构关系图 主要的数据结构和数据结构的参数 数据结构代码 vvport /** - struct vport - one port within a datapath - @rcu: RCU callback head for deferred destruction. - @dp: Datapath to which this port belongs. - @upcall_portids: RCU protected 'struct vport_portids'. - @port_no: Index into @dp's @ports array. - @hash_node: Element in @dev_table hash table in vport.c. - @dp_hash_node: Element in @datapath->ports hash table in datapath.c. - @ops: Class structure. - @percpu_stats: Points to per-CPU statistics used and maintained by vport - @err_stats:

OpenvSwitch 解读

末鹿安然 提交于 2019-11-28 15:35:22
https://segmentfault.com/a/1190000015816722 ovs sdn OVS 核心代码 datapath 目录 ovs-switchd OVS数据库管理 ofproto OVS 架构 OVS 主要的数据结构 数据结构关系图 主要的数据结构和数据结构的参数 数据结构代码 vvport /** - struct vport - one port within a datapath - @rcu: RCU callback head for deferred destruction. - @dp: Datapath to which this port belongs. - @upcall_portids: RCU protected 'struct vport_portids'. - @port_no: Index into @dp's @ports array. - @hash_node: Element in @dev_table hash table in vport.c. - @dp_hash_node: Element in @datapath->ports hash table in datapath.c. - @ops: Class structure. - @percpu_stats: Points to per-CPU

go 学习笔记之详细说一说封装是怎么回事

泪湿孤枕 提交于 2019-11-28 08:55:45
关注公众号[雪之梦技术驿站]查看上篇文章 猜猜看go是不是面向对象语言?能不能面向对象编程? 虽然在上篇文章中,我们通过尝试性学习探索了 Go 语言中关于面向对象的相关概念,更确切的说是关于封装的基本概念以及相关实现. 但那还远远不够,不能满足于一条路,而是应该尽可能地多走几条路,只有这样才能为以后可能遇到的问题积攒下来经验,所以这一节我们将继续探索封装. 何为探索性学习 通过现有知识加上思想规则指导不断猜想假设逐步验证的学习过程是探索性学习,这样既有利于我们思考又能加深我们对新知识的理解,何乐而不为? 学习 Go 语言的过程越发觉得吃力,倒不是因为语法晦涩难懂而是因为语法习惯背后蕴藏的思维习惯差异性太大! Go 语言相对于其他主流的编程语言来说是一种新语言,不仅体现在语法层面更重要的是实现思路的差异性. 尤其是对于已有其他编程经验的开发者而言,这种体会更加深刻,原本可能觉得理所应当的事情到了 Go 语言这里基本上都变了模样,很大程度上都换了一种思路去实现,这其实是一件好事,不同的思维碰撞才能促进思考进步,一成不变的话,谈何创新发展? 在这里不得不感谢强大的 IDE 开发工具,没有它我们就不能及时发现错误,正是这种快速试错的体验才给我们足够的反馈,运用已有的编程经验逐步接近 Go 语言编程的真相. 上篇文章中已经确定主线方向,基本上弄清楚了面向对象中的封装概念以及实现

C++软件开发面试题总结

落爺英雄遲暮 提交于 2019-11-28 07:34:53
  面试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃。我们面对高薪就业的态度永远不变,那就是坚持、坚持、再坚持。出现问题,找原因;遇到困难,想办法。我们一直坚信只有在坚持中才能看到希望,而不是看到希望才去坚持。   人生没有如果,只有结果和后果。既然选择了,就不后悔。年轻就是资本,年轻就要吃苦,就要历练。就要学会在坚持中成长。如此感慨,至深的心得体会,绝对的经验之谈。 1、 Static有什么用途? (1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变; (2)模块内的static全局变量同样只能在该模块内的函数访问和调用,不能被模块外的其他函数访问; (3)在类中的static成员变量属于整个类所有,对类的所有对象只有一份拷贝,这个函数不接受this指针,因为只能范围类的static成员函数。 2、 const (1)不管在函数声明修饰形参、还是修饰类的成员变量,表示该成员变量不能被改变,而且通常需要进行初始化,因为之后不能再改变; (2)对于指针来说,可以修饰指针所指向的变量(在*左边,即指针指向内容为常量),也可以指定指针本身为const(在*右边,指针本身是常量),或者两者同时指定为const(都是常量)。 3、 this指针 (1)this指针本质是一个函数参数,只是编译期隐藏起形式的,语法层面上的参数

C++基础学习5

有些话、适合烂在心里 提交于 2019-11-28 07:12:18
9类和对象进一步 9.1构造函数 如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。 但是,如果数据成员是私有的,或者类中有private或protected的成员, 就不能用这种方法初始化。 class Time {public : //声明为公用成员 hour; minute; sec; }; Time t1={14,56,30}; //将t1初始化为14:56:30 构造函数的作用 构造函数的名字必须与类名同名,构造函数没有返回值,因此也不需要在定义构造函数时声明类型, 以便编译系统能识别它并把它作为构造函数处理。 在类内定义构造函数,也可以只在类内对构造函数进行声明而在类外定义构造函数。 构造函数不需用户调用,也不能被用户调用。 带参数的构造函数 构造函数首部的一般格式为构造函数名(类型 1 形参1,类型2 形参2, …) 定义对象的一般格式为 类名 对象名(实参1,实参2, …); #include <iostream> using namespace std; class Box {public : Box(int,int,int);//形参由定义对象时给出 int volume( ); private : int height; int width; int length; }; //声明带参数的构造函数//声明计算体积的函数 Box::Box

转 C++面试题

我怕爱的太早我们不能终老 提交于 2019-11-28 05:18:51
1.static有什么用途?(请至少说明两种) 1)函数体内,声明为static的变量,在函数调用中其值不变。 2) 在同一个文件内(但在函数体外),声明为静态的变量,可被本文件内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用( &)与指针(*)有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 4) 引用没有 const,指针有 const,const 的指针不可变; 附:int &ra=a; //引用ra,是变量a的引用,即别名 & 在此不是求地址运算,而是起标识作用。 声明引用,必须同时对其初始化。 引用声明完,相当于变量有两个名称。 引用本身不占有存储单元 不能建立引用的引用,指向指针的引用(int && n ; int &*p 为错误的 int *&q;正确) 3.描述实时系统的基本特性 时间约束性 可预测性 可靠性 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库 局部变量在堆栈。 局部变量会屏蔽全局变量 全局变量运行时会更快(不用再分配空间) 5.什么是平衡二叉树?

vc中常用的方法

谁说胖子不能爱 提交于 2019-11-28 03:09:15
一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); 三、关闭计算机 OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构 OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OsVersionInfo); //获取操作系统版本信息 if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { //Windows98,调用ExitWindowsEx()函数重新启动计算机 DWORD dwReserved; ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改变第一个参数,实现注销用户、 //关机、关闭电源等操作 // 退出前的一些处理程序 } 四、重启计算机 typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针 HINSTANCE hInst = LoadLibrary(

Windows 进程间通信

淺唱寂寞╮ 提交于 2019-11-28 02:32:36
3.4 使用 WM_COPYDATA 消息通信 对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据来说,用SendMessage()就容易造成窗口假死。 3.4.1 通过 WM_COPYDATA 消息实现进程间通信的方法 在Win32中,WM_COPYDATA消息主要目的是允许在进程间传递只读数据。SDK文档推荐用户使用SendMessage()函数,接收方在数据复制完成前不返回,这样发送方就不可能删除和修改数据。这个函数的原型如下: SendMessage(WM_COPYDATA,wParam,lParam) 其中wParam设置为包含数据的窗口句柄,lParam指向一个COPYDATASTRUCT的结构,其定义为: typedef struct tagCOPYDATASTRUCT{ DWORD dwData; DWORD cbData; PVOID lpData; }COPYDATASTRUCT; 其中dwData为自定义数据, cbData为数据大小, lpData为指向数据的指针。需要注意的是,WM_COPYDATA消息保证发送的数据从原进程复制到目标进程。但是,WM_COPYDATA消息不能发送HDC、HBITMAP之类的东西