windows核心编程
Shonm
用blog记录点点滴滴。。。成长的轨迹一步一个印
展开
-
Windows核心编程Dll注入之远程线程
为了让某个进程运行我们的Dll,可以使用远程线程来达到目的。为了达到这个目的,我们必须让该进程调用我们的Dll。怎样才能让目标进程来调用我们的DLL呢?首先不可能是隐式的,因为隐式调用Dll的名字必须要在进程的导入表中出现,修改程序的导入表将非常麻烦(有空偶再研究一下)。最直接的方式就是显式的调用LoadLibrary函数来调用我们的Dll。好主意!但是我们怎么样才能让目标进程去执行该动作呢,原创 2014-06-02 22:54:26 · 1192 阅读 · 0 评论 -
《Windows核心编程》学习——线程基础
线程的组成:1.一个线程内核对象,操作系统用它来管理线程。内核对象中还存储了线程的各种统计信息,包括挂起计数、退出代码等,以便于系统对线程的管理。内核对象中有一个CONTEXT结构,这个结构中存储了线程上一次执行的时候CPU寄存器的状态。2.一个线程栈,用于维护线程执行时所需的所有函数参量和局部变量。 线程的运行:在解释线程的运行机制之前,首先回顾转载 2014-05-25 10:20:05 · 840 阅读 · 0 评论 -
《Windows核心编程》学习——_beginThread,CreateThread辨析
本篇解释了为什么创建新线程的时候使用_beginThread比使用CreateThread更为安全这一问题。C/C++库的历史问题:标准的C运行库(C Runtime Class, CRT),是在1970年发明的,那个时候操作系统上还没有线程的概念,理所当然地,最初的C运行时库是线程不安全的。下面给出一个例子:标准C运行库有一个全局变量errno。有一些函数会在出错的时候设转载 2014-05-25 11:09:24 · 2683 阅读 · 0 评论 -
一个简单但详细的解释Windows文件映射读取数据文件的例子
#include #include #include #include using namespace std;int main(int argc, char *argv[]){ // 步骤1 打开文件FILE_FLAG_WRITE_THROUGH HANDLE hFile = CreateFile( "demo.txt", GEN转载 2014-05-25 20:34:24 · 2887 阅读 · 0 评论 -
白话windows内核对象共享之继承
引子:原创 2014-05-29 19:01:54 · 1061 阅读 · 0 评论 -
白话windows内核对象共享之复制对象句柄
话说原创 2014-05-30 15:10:22 · 2034 阅读 · 1 评论 -
类似QQ电脑空闲5分钟后自动更改状态的实现
今天复习了windows线程的调度,优先级等相关内容。以为将一个进程和它的线程都设为优先级最低,那么该进程将在电脑空闲的时候才会运行。我突然联系到有的程序比方说腾讯QQ或者屏保程序是不是将要调用的线程设为优先级最低,等到电脑空闲或空闲一段时间(具体时间程序当然可以调)才开始调用呢?原创 2014-05-31 13:26:46 · 1904 阅读 · 0 评论 -
白话windows内核对象共享之命名对象
引子:话说三国时期猛将张飞汉中之战时又于宕渠击败张郃原创 2014-05-29 12:45:46 · 1393 阅读 · 0 评论 -
windows核心编程之进程间共享数据
有时候我们会遇到window进程间共享数据的需求,比方说我想知道系统当前有多少某个进程的实例。我们可以在程序中定义一个全局变量,初始化为0,每当程序启动后就加1,当然我们我们可以借助第三方介质来储存这个变量,然后解析。这样做必须做到先写入后解析,不能实时更新数据。如果不考虑其他储存介质,只是进程中的通信,应该怎么做呢?windows提供了一些可行的方法,下面介绍常用的两种。一、共享数据段#原创 2014-06-01 23:16:22 · 2522 阅读 · 0 评论