标签归档:C/C++

动态链表CRFD操作

这几天了解了链表这个概念,说真心话,以前当真没用过,没想到C语言对数据的处理和内存的利用是这么的多样化。总结一下链表的创建、遍历、查找、删除操作,因为还没用到更多实际程序中,只是作为记录,代码只为表达对链表的操作方法,可能会有部分不太严谨,比如没有释放堆中内存等。 继续阅读

不同位置的变量在内存中的排布

在C语言中,有很多声明和定义变量、指针的方法,但以前真的没有了解过,每种不同的定义会改变变量在内存中排布的位置。比如全局变量在data区、局部变量在栈中、而malloc分配的内存则在堆中,并且使用了static和不使用结果又不一样,为了避免以后对这些概念再出现混淆,特意做了笔记配图。方便记忆! 继续阅读

C/C++ 控制桌面图标排列

以前写过使用Au3排列桌面图标的代码,感觉蛮有意思的。今天逛论坛的时候一不小心看到了一个C/C++操作桌面图标的代码,原理逻辑都是一样的,获得桌面SysListView32的句柄,利用该句柄对控件上的图标进行坐标的调整。排列后的效果及代码如下:

继续阅读

使用AppInit_DLLs加载DLL进行API Hook

例子是由CodeProject下载,利用API Hook技术,拦截替换了系统NtQuerySystemInformation函数,在替换的函数中将Windows系统计算器进程calc.exe过滤,当我们打开任务管理器或者一些使用NtQuerySystemInformation来获取系统进程信息的工具时,无法看到calc.exe进程。该例中还包含了一个强大的mHook工具类。 继续阅读

清理幽灵设备关键代码

以前做过Ghost封装的同学肯定知道,从一台电脑做完封装,Ghost到另外一台电脑后,设备管理器里面会看到很多在封装系统那台电脑上的设备信息,这些设备虽然不会造成什么严重问题,但是系统每次启动都会尝试加载该设备,这些设备被称之为幽灵设备。我们可以通过以下批处理,显示未连接的设备列表: 继续阅读

根据设备接口类GUID禁用设备关键代码

在网吧无盘系统环境下,我们有很多不需要的设备是无需启用的,禁用这些设备可以大大加快无盘客户机的开机速度,比如“IDE ATA/ATAPI 控制器”等等。

以往我们禁用这些设备的手段是通过微软提供给我们的DevCon工具,记录需要禁用的设备硬件ID来禁用 继续阅读