- 博客(312)
- 资源 (4)
- 收藏
- 关注
转载 进程间通信——剪切板
要点:1引子由于在启动一个进程后,操作系统会给这个进程分配 4GB 的私有地址空间,至于为何有 4GB 这么大,那得考虑进程的私有地址空间和实际物理内存地址空间之间的映射以及页交换等等细节问题了,这里不予讨论,从名字就可以知道,既然操作系统给每一个进程分配的是私有地址空间,自然,这段地址空间也只有这个进程自己才能访问了,不然还称为私有干吗呢?既然这段私有
2014-06-15 22:02:20 3600
转载 面试问题整理
前段时间专心面过腾讯,经过了N轮的技术面,结果还是挂了,但没挂在技术面,比较欣慰,回来之后写一点总结,以供有梦想进入腾讯做后台服务器开发的同学参考,本文章为胡成精心总结,胡成原创,copy和转载请通知。ps:()之内的文字由作者点评,非面试题文字。linux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的
2014-06-15 21:35:49 6678
转载 IOCP模型与网络编程
IOCP模型与网络编程一。前言: 在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢?嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找一大堆的资料,为这个了解做准备,只是呢,有时还是想去找一本书去系统地学习一
2014-06-15 21:14:43 700
原创 虚拟地址空间的理解
1、创建一个进程时,操作系统会为该进程分配一个 4GB 大小的虚拟 进程地址空间。之所以是 4GB ,是因为在 32 位的操作系统中,一个指针长度是 4 字节,而 4 字节指针的寻址能力是从 0x00000000~0xFFFFFFFF ,最大值 0xFFFFFFFF 表示的即为 4GB 大小的容量。2、每个进程只能访问自己虚拟地址空间中的数据,无法访问别的进程中的数据,通过这种方法实现了进程间
2014-06-14 22:58:31 4955
原创 OD学习笔记
1、OD与IDA是两个常用工具。OD是动态分析,IDA是静态分析。2、F2下断点,F3加载一个可执行程序。3、Call *** 按F7可以进入该函数内部,Ctrl + F9运行至ret出,就可以返回程序了。4、Alt + B打开断点编辑器,用于取消断点,del或者空格取消断点。
2014-06-08 21:23:48 3802
原创 一个简单的变长内存池
#define NODE_SIZE (200) //每个node的大小#define BASE_NODE_NUM (1024 * 1) //初始分配大小#define STEP_NODE_NUM (1024 * 1) //每次递增大小#include #pragma pack(1)typedef struct _mem_node {
2014-06-02 19:24:04 1737
转载 一个简单的固定长度内存池的实现
一个简单的内存池的实现j 当频繁地用malloc申请内存,然后再用free释放内存时,会存在两个主要问题。第一个问题是频繁的分配释放内存可能导致系统内存碎片过多;第二个问题是分配释放内存花费的时间可能比较多(这个问题不太明显)。这个时候我们就可以考虑使用内存池了。TAG: 内存池 当频繁地用malloc申请内
2014-06-01 17:45:11 3140
转载 获取系统时间(精确到微秒),驱动中KeQueryPerformanceCounter,Win32程序QueryPerformanceCounter
获取系统时间(精确到微秒),驱动中KeQueryPerformanceCounter,Win32程序QueryPerformanceCounter1.在驱动中获取us级的时间间隔今天在做驱动开发时,需要操作时间,而且还要精确到us,而GetTickCount()函数只能精确到ms,所以就用到下面的函数:LARGE_INTEGER KeQueryPerformanceC
2014-05-28 22:55:44 6276
转载 用例子详细介绍各种字符集编码转换问题
---本文背景:本人在编程时需要匹配字符串,由此想到了如果文件是各种字符编码的话,匹配结果有可能不正确,那么,如何判断不同的字符集?如何在不同字符集之间做转换?对于UNICODE编码逐渐通用的情况下,我们软件人员如何从容应对? 本文首先对常用字符集进行总结,然后在字符集的显示及转换上以实例介绍,最后总结了编程中遇到的编码问题。本文目的:对字符集编码做详细介绍,关键配以实例讲
2014-05-17 21:25:52 667
转载 学习c++的50条忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发
2014-05-11 18:14:52 679
转载 ACE框架的三大部分
ACE自适应通信环境(ADAPTIVE CommunicationEnvironment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信
2014-05-10 09:54:55 3744
转载 ACE网络框架学习体会
ACE网络框架学习体会 转载▼标签: ace框架 ace网络 ace编程 ace 游戏分类: 技术性文章ACE网络框架比较有名,30万行左右代码,开发了10几年,数十人的核心开发团队加之数千人的测试队伍,可以说想不开发出好东西也难。 所以要说这个框架好
2014-05-10 09:54:25 1985
转载 继承 内存分布
class Base { public: int m_base; }; class DerivedA: public Base { public: int m_derivedA; }; class DerivedB: public Base { public: int m_derivedB; }; class Deriv
2014-05-08 22:36:21 1582
转载 windbg的使用四(Windbg检查死锁 )
windbg的使用四(Windbg检查死锁 ) 2011-10-14 14:29:44| 分类: windbg用法|举报|字号 订阅 死锁问题,绝对是个令人发狂的问题,特别是工程比较大,引用开源库及第三方库比较多时。我最近就遇到这么一个死锁问题,工程是别人的,很多业务的代码都看不明白,这个时候出现死锁,让我郁闷了一个星期,终于在原来同事的
2014-05-05 22:50:16 9663 1
原创 《Windows核心编程》---HOOK API基础
HOOK API是指截获特定进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。最常用的一种挂钩API的方法是改变目标进程中调用API函数的代码,使得它们对API的调用变为对用户自定义函数的调用。Windows下应用程序有自己的地址空间,它们只能调用自己地址空间中的函数;因此,在挂钩API之前,必须将一个可以代替API执行的函数的执行代码注入到目标进程,接着将目标进程对该AP
2014-04-07 21:16:03 5632
原创 App init dlls注册表路径
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs]
2014-04-07 16:12:35 929
转载 磁盘设备栈的设备传递
磁盘设备栈的设备传递 (2013-01-09 11:22:11)转载▼标签: 磁盘设备栈 分区设备 卷设备 drx 小端口设备 it分类: windows知识理理清楚,主要是今天需要获取c盘对应的DRx设备。文件访问的时候,关系到的设备栈如下:nt
2014-03-23 08:22:02 1287
转载 从零开始学习Windows WDF驱动程序开发
从零开始学习Windows WDF驱动程序开发▼目录:1. 第一部分 编译安装测试一个简单的WDF驱动程序 1.1 编译安装测试 1.2 Windows驱动开发就是要开发出INF文件和SYS文件 1.3 简单介绍下编译脚本 1.4 Windows应用程序如何访问一个设备2. 第二部分 了解WDF框架并且开发WDF驱
2014-03-20 23:09:53 23618 7
转载 函数指针
第一个例子说明指向函数的指针如何说明、赋值、调用。 #include #define TESTDATE 100 int func(int a) /* func用于打印一个整数 */ { return printf("%d\n",a); } main() { int (*FunctionPionter)(int a);
2014-03-19 22:58:38 637
转载 如何使用Windbg自动抓取禁止使用调试器程序的dump
前面我们讲到了如何使用Windbg调试禁止使用调试器的程序,但是如果该程序并不是每次都会发生异常,而我们又想抓取异常的第一现场,每次启动程序的时候都输入命令太麻烦了,本文主要讲述如何自动处理这个问题。1. 使用IFEO自动加载调试器 注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image
2014-03-16 23:32:45 775
转载 自旋锁和互斥锁区别
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提
2014-03-11 22:41:09 630
转载 进程虚拟地址空间
在windows操作系统中,每个进程都有自己的私有地址空间,因此一个进程的线程只能访问属于这个进程的内存空间,即进程之间是地址隔离的。在windows2000中,进程虚拟地址空间可分为如下四个部分:1)NULL 区 (0x00000000~0x0000FFFF): 如果进程中的一个线程试图操作这个分区中的数据,CPU就会引发非法访问。他的作用是,调用malloc等内存分配函数时,如果无法找到足
2014-03-09 22:13:19 1497
原创 Windows驱动开发——派遣函数
1、IRP IRP(I/O Request Package),即输入输出请求包。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将I/O请求转化为相应的IRP数据。不同类型的IRP会传递给不同的派遣函数处理。2、派遣函数 驱动中 处理IRP请求的函数。处理完了之后,必须通过IOCompleteRequest结束IRP。这样,发起I/O请求的Win3
2014-03-09 19:59:03 1652
原创 WDM驱动——物理设备对象与功能设备对象
1、在WDM驱动中,完成一个设备的操作,至少有两个设备对象完成。一个是物理设备对象(PDO),一个是功能设备对象(FDO)。2、PC上插入某个设备时,总线驱动会创建一个PDO设备对象,系统会提示检测到新设备,安装驱动。此驱动负责创建FDO,并附加到PDO上。3、PDO被称为底层驱动,FDO被称为上层驱动。4、NT设备是被动装入的。例如当设备插入PC,系统不会提示,用户需要自己指定加载何
2014-03-09 16:31:35 3426 1
原创 Windows驱动开发——WDM驱动
1、WDM.h/************************************************************************* 文件名称:HelloWDM.h * 作 者:张帆* 完成日期:2007-11-1*********************
2014-03-09 14:29:54 1829
原创 DDK驱动安装方式
1、采用DriverMoniter安装。2、采用InstDrv安装。3、驱动加载完成后,可以在设备管理器中查看驱动。注意选择 ”显示隐藏设备“
2014-03-08 23:10:04 2179
原创 WMD驱动安装两种方法
1、编写好sys文件和 inf文件。2、采用添加硬件的方式添加驱动。在控制面板中找到添加硬件,按步骤添加即可。3、采用工具EZDriverInstaller安装,
2014-03-04 23:00:44 3622
转载 《Windows 驱动程序开发与调试》
第一部分:Windows系统架构概览(1小时)概述Windows 操作系统的架构和系统组件,包括HAL、内核、执行体、系统进程(IDLE、SMSS.EXE、WinLogon.EXE)和子系统等。介绍重要的系统文件:NTOSKRNL.EXE、HAL.DLL、CLFS.SYS、CI.DLL、PSHED.DLL、Win32K.SYS 等。试验一:(15 分钟)使用WinDBG 的本地内核调试功能
2014-02-23 15:22:28 4032
转载 秒杀多线程第一篇 多线程笔试面试题汇总
秒杀多线程第一篇 多线程笔试面试题汇总本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。
2014-02-22 22:01:16 1004
转载 Windows内核驱动开发入门学习资料
Windows内核驱动开发入门学习资料2011年11月5日代码疯子发表评论阅读评论声明:本文所描述的所有资料和源码均搜集自互联网,版权归原始作者所有,所以在引用资料时我尽量注明原始作者和出处;本文所搜集资料也仅供同学们学习之用,由于用作其他用途引起的责任纠纷,本人不负任何责任。(本资料由代码疯子整理)一、书籍推荐《Windows驱动开发技术详解》作者:张帆、史彩成;
2014-02-16 14:24:01 1359
转载 汇编学习计划
路过~~如果你没有学过汇编的话,建议从16位开始,在到32位的汇编,然后在看罗云彬的。学汇编之前最好学过C语言或C++ 精通指针和数组那块更好,理解汇编的基本寻址方式。 注意WIN32汇编和32位汇编不同。WIN32都是讲API的调用等等。32位汇编的书大概都是说指令集。32位汇编指令比16多得多了。16位的汇编 看王爽的。32位看 Intel汇编语言设计 第五版。 我正在看这本
2014-02-09 23:24:27 787 1
转载 jmp指令对应的机器码
jmp指令对应的机器码 (2012-08-27 20:18:26)转载▼标签: 杂谈分类: 驱动逆向od随便打开一个记事本,汇编几条jmp指令,可以看到如下地址 HEX 反汇编010073B4 - E9 7B9E8787 JMP 8888123
2014-01-07 23:19:59 7840 2
转载 ReadProcessMemory与WriteProcessMemory用例分析
首先介绍一个函数VirtualProtectEx,它用来改变一个进程的虚拟地址中特定页里的某一区域的保护属性,这句话有些咬嘴,直接从MSDN中翻译过来的,简单来说就是改变某一进程中虚拟地址的保护属性,如果以前是只读的,那改变属性为PAGE_EXECUTE_READWRITE后,就可以更改这部分内存了。具体看它的实现BOOL WINAPI VirtualProtectEx( _
2014-01-07 00:58:43 1404
转载 Ring3下Hook API实现分析
Ring3下Hook API实现分析2011-01-18 13:37 2175人阅读 评论(6) 收藏 举报hookapinulldescriptordllimport目录(?)[+] 本文主要针对用户级别下HOOK API的方法进行一下总结。对应的,自然也有ring0下的HOOK API方法,但是这个需要一些驱动方面的基础,暂时不在
2014-01-05 23:14:12 1733
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人