
系统编程
Ackarlix
专注、沉着、稳重、信心、行动
展开
-
STARTUPINFO
STARTUPINFOAckarlixThe STARTUPINFO structure is used with the CreateProcess function to specify main window properties if a new window is created for the new process. For graphical user interface转载 2007-08-29 02:35:00 · 1779 阅读 · 0 评论 -
Bootable CD-ROM Format
Bootable CD-ROM Format Ackarlix SpecificationVersion 1.0January 25, 1995 ¨°¨°Curtis E. Stevens Stan Merkin (Formerly of IBM, Currently with DELL) Phoenix Technologi翻译 2007-09-01 06:07:00 · 3011 阅读 · 0 评论 -
缓冲区溢出攻防
缓冲区溢出攻防整理:Ackarlix 下载源代码 很久以来,在人们心目中,“黑客”和病毒作者的身上总是笼罩着一层神秘的光环,他们被各种媒体描述成技术高手甚至技术天才,以至于有些人为了证明自己的“天才”身份而走上歧途,甚至违法犯罪。记得不久前就看到过这样一个案例:一位计算机专业研究生入侵了一家商业网站并删除了所有数据。当他在狱中接受记者的采访时,他非常自豪地说这样做只是为了证明自己和获转载 2007-08-31 05:51:00 · 1124 阅读 · 0 评论 -
NT环境下进程隐藏的实现
NT环境下进程隐藏的实现整理:Ackarlix下载源代码 在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的方法有很多种,比如说使用注册表插入DLL,使用Windows挂钩等等。其中比较有代表性的是Jeffrey Richer在《Windows核心编程》中介绍的LoadLibrary方法和罗云彬在《windows环境下32位汇编语言程序设计》中介绍的方法。两种方法的共同特点转载 2007-08-30 06:28:00 · 1491 阅读 · 2 评论 -
用多路复用I/O模型实现支持多个客户端的通信服务
用多路复用I/O模型实现支持多个客户端的通信服务整理:Ackarlix 引言 多路复用I/O模型是UNIX/LINUX用得的最多的一种I/O模型。这种I/O模型在技术上的实现是包括select()以及FD_XXX的几个宏及常量。在单个进程中支持的客户端数量由FD_SETSIZE决定。Solaris 10和Linux 9.0默认为1024个,Windows 2000是64个。本文用代码给出转载 2007-08-31 05:52:00 · 1194 阅读 · 0 评论 -
使用 CInternetSession 封装多线程 http 文件下载
使用 CInternetSession 封装多线程 http 文件下载整理:Ackarlix 源代码下载 如何下载一个http文件?我们当然可以用socket自己实现http协议去做,但费时费力还易出bug,对于一个客户端程序稳定易维护是第一位的,所幸MS给我们提供了功能强大的internet API函数族,MFC的CInternetSession对它们进行了一些简单转载 2007-08-31 05:50:00 · 1455 阅读 · 0 评论 -
如何在NT下获取进程的路径
如何在NT下获取进程的路径整理:Ackarlix下载示例源代码一:获取NT下进程路径的方法 在Win9X系统中,利用ToolHelp API中的相关函数可以很方便得得到进程的名称及其路径。但这种方法在NT系统中就不能奏效了,szExeFile仅仅得到的是进程的名称,并没有包含进程的路径。 如何在NT下获取进程的路径呢?(由于WIN9X系统不在我们讨论的范围之内,所以我们选转载 2007-08-30 06:29:00 · 1330 阅读 · 0 评论 -
如何“干净地”终止 Win32 中的应用程序
如何“干净地”终止 Win32 中的应用程序整理:Ackarlix· 摘要 · 32 位进程(和 Windows 95 下的 16 位进程) · 16 位问题(在 Windows NT 下) · 示例代码 摘要 在理想环境中,某一进程可能会通过某种形式的进程间通信要求另一进程关闭。不过,如果你对希望其关闭的应用程序没有源代码级控制权,可能就没有办法做这样的选择。尽管转载 2007-08-30 06:25:00 · 1291 阅读 · 0 评论 -
如何获取其它程序的命令行参数
如何获取其它程序的命令行参数整理:Ackarlix下载源代码开发环境: VC6 Windows XP测试环境: WindowsXP我们都知道,在程序里获取命令行参数很简单,WinMain函数会以参数的形式传递给我们,或者可以调用API GetCommandLine 获取。但是GetCommandLine函数不接受参数,获取的只是自己程序的命令行参数。那么如果我们想获取别的应用原创 2007-08-30 06:22:00 · 2379 阅读 · 2 评论 -
如何在NT下获取进程的路径(增补)
如何在NT下获取进程的路径——获取NT中系统进程的路径整理:Ackarlix下载源代码一、程序说明 最近整理文档,发现以前写的《如何在NT下获取进程的路径》一文中还有个问题没有解决:原文中的程序无法获取系统进程的路径,如:csrss.exe。记得VCKBASE上有位网友说过一个方法:“给枚举的进程增加SE_DEBUG_NAME权限即可”,于是在网上找了些资料,解决了原文中的问题。这转载 2007-08-30 06:26:00 · 1343 阅读 · 0 评论 -
通过异步程序调用(APC)实现的定时功能
通过异步程序调用(APC)实现的定时功能 整理:Ackarlix 定时器是一个在特定时间或者规则间隔被激发的内核对象。结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行。本文的例子代码显示了如何实现。 使用本定时器时,你需要把常量_WIN32_WINNT定义为0x0400,并且此常量应该在包之前定义,以确保声明合适的定时器原型函数。 通过调用Creat转载 2007-08-30 06:24:00 · 991 阅读 · 1 评论 -
VC++ 网络SOCKET编程
VC++ 网络SOCKET编程 作者:Ackarlix 为了方便网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种转载 2007-08-29 06:14:00 · 4741 阅读 · 0 评论 -
进程与多线程
进程与多线程 作者:Ackarlix 一、进程的创建 一般将创建进程的称为父进程,被创建的进程称为子进程。系统在创建新的进程时会为新进程指定一个STARTUPINFO类型的变量,这个结构包含了父进程传递给子进程的一些显示信息。对界面应用程序来说,这些信息将影响进程中主线程的窗口显示;对控制台应用程序来说,将影响这个控制台程序的窗口。 STARTUPINFO原创 2007-08-29 03:51:00 · 1997 阅读 · 1 评论 -
回调函数详解
回调函数详解 作者:Ackarlix 一、回调函数我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递原创 2007-08-29 06:19:00 · 1659 阅读 · 0 评论 -
进程列表
进程列表作者:Ackarlix 代码:#include "stdafx.h"#include #include #include int main(int argc, char* argv[]){ ofstream outfile("ProcessList.txt"); PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32);原创 2007-08-29 05:51:00 · 1065 阅读 · 0 评论 -
论软件接口中几种底层通讯的实现
论软件接口中几种底层通讯的实现整理:Ackarlix 一、 概述 软件接口是实现一个系统跟另外系统进行信息交互的桥梁,在不同的系统之间,根据系统的关联程度的不同存在紧耦合和松耦合两种:紧耦合要求接口响应反应快,消息不能阻塞;松耦合对响应反应要求比较低。本人主要讨论紧耦合接口通讯实现,在目前应用中,Socket、中间件、SOAP等都用相应的应用,但是应用中发现各通讯方式有自己固有的特转载 2007-08-31 05:54:00 · 1367 阅读 · 0 评论