自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飘之境界_puztion

原来你一直对我在线不可见啊

  • 博客(20)
  • 收藏
  • 关注

原创 80386的内存寻址机制复习

  题外话:“不试试怎么知道不行。”金句啊金句。80x86的内存寻址机制复习2011.06.0380386处理器的工作模式:80386处理器有三种工作模式:实模式、保护模式 和 虚拟86模式。模式的切换:实模式和保护模式之间可以相互转换,保护模式和虚拟86模式之间可以相互转换,而实模式和虚拟86模式之间不可以相互转换。DOS系统运行于实模式下,Windows

2011-06-04 01:57:00 2784

原创 NT驱动开发学习笔记005

<br /><br /> <br />题外话:<br />日日都睡午觉,睡午觉上瘾了,呵呵,希望自己能一直这样,做一个能睡午觉的程序员。<br /><br /><br />NT驱动开发学习笔记五2011.05.07<br />IO设备控制操作:<br />应用程序与驱动程序互交:正常来说,应用程序和驱动程序不是运行在同在同一个层上的,所以不能相互通讯。windows提供了ReadFile 、 WriteFile 和 DeviceIoControl等API,能让应用程序向底层发送IRP,达到和驱动程序互交的目

2011-05-07 17:40:00 792

原创 NT驱动开发学习笔记004

题外话:“我什么时候能长胖一点?”午觉刚醒,我看着自己竹竿似的手臂轻笑道。今天下午还是悠闲点,了解一下一些windos系统内核驱动的概念吧,操作固然重要,概念真的是不能少的。NT驱动开发学习笔记四2011.05.06基本概念:Windows两个模式:内核模式(Kernel Mode)和用户模式(User Mode)。对比起Linux系统的单一内核,这样Linux的速度就会很快,可是单一内核的耦合性太高了。CPU的4个特权层(i386):分别是Ring0 到 Ring3,其中Ring0最高,Ring3最低。W

2011-05-06 18:10:00 569

原创 NT驱动开发学习笔记003

<br /><br /> <br />题外话:<br />坚持写笔记,慢慢形成习惯,劳逸结合,Go,Go,Go。<br /><br /><br />NT驱动开发学习笔记三2011.05.05<br /><br /><br />NT驱动的卸载例程DriverUnload:<br />A driver's Unload routine, if supplied, should be named XxxUnload, where Xxx is a driver-specific prefix. The drive

2011-05-05 21:25:00 674

原创 NT驱动开发学习笔记002

题外话:今天继续坚持写笔记,原来例程的意思就是没有返回值的函数啊,呵呵。NT驱动开发学习笔记二2011.05.05NT驱动的入口函数DriverEntry:NTSTATUS DriverEntry(IN PDRIVER_OBJECT  pDriverObject, //驱动对象指针IN PUNICODE_STRING  pRegistryPath) //设备服务在注册表中键名的字符串(全路径)本函数主要是要对驱动程序初始化工作,由系统进程调用,系统进程就是任务管理器看到的一个名为System的进程。在驱动加

2011-05-05 08:24:00 700

原创 NT驱动开发学习笔记001

<br /><br /> <br />题外话:<br />关于之前写的《内核编程学习笔记1-5》,那只是为了做某游戏的双开驱动而做的学习,所以比较肤浅(连NT式驱动和WDM式驱动都分不不清)。这次是一个系统的学习,会结合操作系统的知识来学习,是一个系统的学习过程,所以要重新写的学习笔记。加油吧~<br /><br /><br /><br />NT驱动开发学习笔记一2011.05.04<br /><br /><br />关于头文件:<br />①#pragma once//表示这个头文件只会被包含一次,可以防

2011-05-04 23:43:00 2526

原创 多线程程序复习003

<br /><br /> <br />多线程程序复习三 2011.05.03<br /><br /><br />互斥量(Mutex):<br />互斥量是一种内核对象,这东西用途如其名,在一个时间内只能被单一线程拥有权限。<br /><br />HANDLE CreateMutex(<br />  LPSECURITY_ATTRIBUTES lpMutexAttributes,  // SD(NULL:使用默认安全性)<br />  BOOL bInitialOwner,  // initial owner

2011-05-03 12:14:00 605

原创 多线程程序复习002

<br /><br /> <br />多线程程序复习二 2011.05.03<br /><br /><br />线程同步(synchronization[siŋkrə,nai'ze*ən] with the threads):<br />当多个线程在并发或并行的时候,要对某共享数据进行操作,就有可能出现数据误差,因此必须进行线程同步。线程同步最关键的就是一点:保证整个存取过程的独占性。独占机制不能简单的用一个标志变量来解决,应为测试标志和改变标志的过程仍然可能被其他线程打断,导致多个线程认为标志有效,出现误

2011-05-03 10:24:00 478

原创 多线程程序复习001

<br /><br /> <br />多线程程序复习一 2011.05.02<br /><br />首先最重要的是复习概念:<br /><br /><br />程序是计算机指令的集合,以文件形式存储在磁盘上。进程是程序在内存中的一个运行实例,是程序在内存中的一次执行活动。所以一个程序可以对应多个进程。进程是线程的执行环境,真正执行代码的线程,所以一个进程至少有一个线程(主线程),一般来说,主线程产生各种子线程,主线程在最后完成执行或者说最后执行各种“关闭”动作。<br /><br /><br /><br /

2011-05-03 07:37:00 438

原创 操作系统知识复习

操作系统知识复习 2011.05.02多道程序设计(multiprogramming):宏观并行,微观串行多重处理(multiprocessing):宏观并行,微观并行并发:若干事件在同一个时间间隔内发生(参考RR轮转法)进程:进程是程序的执行过程,是独立分配资源的基本单位进程控制块PCB(process control block):包含进程的描述信息,控制信息,资源信息上下文(context):一种属性的有序列,为驻留在环境内的对象定义环境。对象的激活过程中创建上下文,对象被配置,多个对象可在同一个上下

2011-05-02 08:43:00 738

原创 MFC对话框程序基础复习005

<br /> <br />对话框基础复习五 2011.4.29<br /><br /><br />ListCtrl 控件:(CListCtrl类)<br />ListCtrl 是列表视图控件,ListBox 与其差不多,ListCtrl 有列标题,其中这个列标题是另外一个Windows通用控件(标题控件),这个控件提供了列排序功能。<br /><br />ListCtrl有四个style: Large Icons, Small Icons,,List,Report(Details),有三种切换style的方

2011-04-29 19:57:00 376

原创 MFC对话框程序基础复习005

对话框基础复习五 2011.4.29ListCtrl 控件:(CListCtrl类)ListCtrl 是列表视图控件,ListBox 与其差不多,ListCtrl 有列标题,其中这个列标题是另外一个Windows通用控件(标题控件),这个控件提供了列排序功能。ListCtrl有四个style: Large Icons, Small Icons,,List,Report(Details),有三种切换style的方法:①可以在控件的 properties 里的style 里选择。②可以通过从 CWnd继承的 M

2011-04-29 19:56:00 582

原创 MFC对话框程序基础复习004

<br />对话框基础复习四 2011.4.26<br />Menu 控件:(CMenu类)<br /><br />为对话框程序添加普通菜单:<br />①在 resources 里添加一个菜单<br />②在 对话框类里 创建一个CMenu 的对象 m_menu<br />③在构造函数里<br />m_menu.LoadMenu(IDR_*);<br />④SetMenu 为对话框设置菜单<br /><br /><br /><br />为特定控件添加右键菜单:<br />①在 resources 里添加一

2011-04-26 10:32:00 679

原创 MFC对话框程序基础复习003

<br />对话框基础复习三 2011.4.24<br /><br />Tab Control控件:(CTabCtr类)<br />分析原理,其实TabControl控件并不是多页面,只是在一个窗体上面添加了Tab的按钮,每次在Tab按钮的选择改变时候响应消息,通过利用它作为父窗口创建的子窗口集合相互交替显示和隐藏,就可以实现Tab页面的切换。<br /><br /><br />使用方法:<br />①为Tab Control关联一个控制对象,例如m_TabTest<br />②要设置多少个页面就创建多少个

2011-04-24 18:48:00 523

原创 MFC对话框程序基础复习002

对话框基础复习二 2011.4.23可以把一个控件关联一个类,在这个类内响应消息,就会只对控件本身响应消息了。PROPPAGE = property[propəti] page,在插入资源中展开Dialog 可以选择不同size的。这里要注意的是,这个dlg是英文的,不支持显示中文,要在Properties里全选择中文。属性页 和 普通Dialog 的不同:一般来说,属性页的style是child,没有system menu, 在More Style中选中Disable。知道这些之后,就可以在普通Dialo

2011-04-23 20:58:00 488

原创 MFC对话框程序基础复习001

<br /><br />对话框基础复习一 2011.4.21<br />对话框有两种:<br />一种是模态对话框(Modal['məudl]),其中模态对话框显示时候,程序的其他的在对话框之外都不可操作,只有关闭了模态对话框才可以继续操作,例如文本工具的“打开对话框”。<br />一种是非模态对话框(Modeless),非模态对话框跟用户对程序其他操作没有影响,例如文本工具的“查找对话框”。<br /> <br />MFC中对资源的操作都是通过一个与资源相关的类来完成的。<br /> <br />模态对话

2011-04-23 20:57:00 581

原创 内核编程学习笔记(005) “天空很蓝”的5个教训

<br /><br />某游戏的双开驱动虽然说是简单,本人在做这个工具的时候,蓝屏死机了n次,为了自己的电脑着想,特此把经验给记录下来。<br /><br />①寄存器没有平衡或平衡写错,低级错误打自己嘴巴。<br /><br />②页面保护欺骗逻辑与运算写错,低级错误。<br />and eax,not 00010000h<br />or eax,00010000h<br /><br />③对于SSDT里的Nt函数 整个操作系统都随时有可能会调用到,并不是只有自己心目中某程序想的时候才会用,就像NtCre

2011-04-23 07:40:00 2700

原创 内核编程学习笔记(004) 对某某游戏的驱动双开的分析及其学习

<br /><br />目前网络游戏,由于外(和谐)挂盛行,在游戏中加了很多很多的防护校验,我们耳熟能详的有TP,NP,HS,xtrap,apex等,在游戏加载前都可以看到它们的身影。<br /><br /><br /><br />作为一个初学内核驱动的菜鸟,看着高手们辗压各种驱动保护,心里真的是羡慕妒嫉恨啊。不过,现在还是要打好基础为最重要。先还是实现一个简单的驱动双开吧~<br /><br /><br /><br />某游戏要实现双开,说难不难,说容易不容易,主要是有一条技术分界线,那就是ring0级的

2011-04-23 07:38:00 3074

原创 内核编程学习笔记(002) 利用API函数加载系统服务以加载驱动

<br /><br />利用API函数加载系统服务以加载驱动<br /><br />基础知识:<br />一个服务由三部分组成,第一部分是Service Control Manager(SCM)。每个Windows NT/2000系统都有一个SCM,SCM存在于Service.exe中,在Windows启动的时候会自动运行,伴随着操作系统的启动和关闭而产生和终止。这个进程以系统特权运行,并且提供一个统一的、安全的手段去控制服务。它其实是一个RPC Server,因此我们可以远程安装和管理服务,不过这不在本文

2011-02-27 09:58:00 1953

原创 内核编程学习笔记(001)

<br /><br />1. WDK windows Driver Kit 下载并安装在本机上,安装路径要避免有空格,最新版本还会集成了WinDbg,很方便<br /> <br /> <br />2. 然后编写第一个工程<br /> <br />******驱动主程序myfirst.c<br /> <br /> <br />#include <ntddk.h><br /> <br /> <br />//卸载函数<br /> <br />VOID DriverUnload(PDRIVER_OBJECT dri

2011-02-26 22:43:00 787

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除