![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 71
狐帝
山不在高,有仙则名;窝不怕破,有狐则灵。
展开
-
利用msys2安装clang和llvm编译器
很多文章介绍了如何从clang官网安装clang和llvm,不过最后都会说缺少include和lib,需要用别的方法。其实用msys2就可以下载基于MinGW-w64项目的clang和llvm。步骤如下:原创 2021-06-01 19:51:53 · 9813 阅读 · 2 评论 -
利用Win32 API获取当前登录用户名的几种方法比较
方法一:使用GetUserName函数。GetUserName可以获得创建当前进程的用户名,其函数原型是:BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD pcbBuffer);其中,lpBuffer指向存放用户名的字符数组,pcbBuffer在调用之前需要赋予lpBuffer指向的缓冲区的长度,调用完成后会返回用户名的长度。代码示例如下:string getLoginUsernameByApi(){ char username[1024];原创 2021-05-02 15:36:27 · 3770 阅读 · 0 评论 -
Linux下列表所有进程、根据进程名得到pid和根据pid得到进程名
Linux下的当前正在运行的进程信息均存放在/proc目录下,有一系列以数字为名的子目录,每一个子目录对应一个进程,子目录名就是进程的pid。子目录下的status文件内容就是进程的基本信息,包括进程名、pid、ppid等。因此,若要扫描系统当前正在运行的所有进程,只需要遍历/proc目录下所有以数字为名的子目录下的status即可。据此,可得到获取当前系统所有进程快照、根据pid获得进程名和根据...原创 2020-02-05 19:46:05 · 1532 阅读 · 0 评论 -
在Eclipse CDT中添加非标准库
默认情况下,在CDT中开发C/C++程序时,如果只是用C/C++标准库,无需任何额外设置。不过,如果要开发的程序使用了非标准库,例如WinSock库,那就得在project中单独设置。鼠标右击project名,在弹出菜单中选择Properties,弹出project属性设置对话框,在左侧视图找到其中的C/C++ Build ——> Settings,先在右侧视图的上方Configuratio...原创 2020-02-01 15:50:28 · 292 阅读 · 0 评论 -
类型无关的C语言通用冒泡排序函数
最近教小家伙C语言,很快就要教到排序了,所以写了个通用的冒泡排序程序。这个函数可以对任意类型数组中的数据排序。需要用到的数据类型和函数声明如下(sort.h):#ifndef __SORT_H#define __SORT_H#include <stdlib.h>#ifndef __cplusplustypedef enum{ false, true,...原创 2019-12-14 12:08:32 · 831 阅读 · 4 评论 -
在Eclipse CDT中利用Build Configuration构建有多个main函数的程序
进来在为家里宝宝编写C/C++教程讲义,想用Eclipse做个project,里面每个文件是一个演示程序或者练习的答案。由于每个源代码文件都是完整的,都会有main函数,因此就会导致链接时出错,提示main函数重复定义。看到Eclipse有多build target的功能,就考虑使用这个功能来为每个源代码文件构建一个target来解决main函数重复定义的问题。查了很多资料,都说要用分别创建不同的...原创 2019-12-08 09:35:46 · 1404 阅读 · 0 评论 -
基于USBDeview的自制USB设备监管系统实现(4)——Guard Process
Guard Process是一个守护进程,目的是为了防止用户有意或无意间终止常驻的usbdeview进程。本文中,这个守护进程命名为USB Monitor Service(以下简称“ums”),做为Windows系统服务运行。ums会定时扫描系统进程,检查usbdeivew进程是否处于运行中。若发现当前进程列表中没有usbdeview,则会自主运行usbdeview.exe。以下是ums的完整...原创 2019-05-09 20:21:38 · 697 阅读 · 0 评论 -
基于USBDeview的自制USB设备监管系统实现(3)——USB S/N Checker
在本系列文章的第一章已经说明了USBS/N Checker程序的作用,本章将详细说明这个程序的编制思路,并附完整的源代码。由于历史原因,USBS/N Checker在实现时被命名为usbdevicelogger(以下简称UDL)。UDL用C/C++语言写成,其main函数如下:int main(int argc, char* argv[]){ loadConfig(__c...原创 2019-05-04 18:19:14 · 648 阅读 · 0 评论 -
基于USBDeview的自制USB设备监管系统实现(2)——USBDeview工具
上一章提到,本系统中采用了usbdeview程序作为USB Device Monitor程序。usbdeview是NirSoft出品的一款USB设备控制的小程序,可以列出当前系统曾经插入的所有USB设备的详细信息。这是个绿色软件,可以随用随装,使用非常方便。程序只有一百多KB大小,运行时占用3MB多点内存,资源消耗很少。下图是usbdeview运行时的界面:可以发现,usbdevi...原创 2019-05-04 14:41:27 · 2000 阅读 · 0 评论 -
基于USBDeview的自制USB设备监管系统实现(1)——系统架构
现在各企业对于信息系统中的信息安全都开始重视,对于USB接口的移动设备的监管也越发严格。市面上有很多平台化的USB设备监管工具,多数是包含在主计审计系统中的一项功能。不过这些商业化的工具平台价钱都很贵,在企业里完整部署的话少则数十万元,多则上百万元,对中小企业来说是一笔不小的开销。另外,主机审计工具出于自我防护的需要,一般都要接管/注入操作系统内核,弄得不好就会影响到终端的稳定性。而某些靠行政力量...原创 2019-09-21 19:53:25 · 689 阅读 · 2 评论