进程相关的一些代码
本库说明:
本库主要包含进程相关的内容,如:
1.进程及环境变量,Job,PEB
2.线程,TEB,APC,TLS,模拟/代理
3.模块,
4.服务,
5.计划任务,
6.关机
7.内存,堆,栈,文件映射
8.句柄,对象
9.Token,用户,回话等。
特别注释:文件映射不属于文件,属于内存管理(对象或句柄)的概念范畴。
本库的设计的几个规则:
1.尽量不调用日志函数。
刚开始的时候还考虑是否使用日志,以及何种日志。
2.因为上一条,所以代码失败要返回详细的信息,也就是失败的原因。
3.因为上两条的原因,所以使用者要检查返回值,并记录日志。
4.代码不会主动抛异常。代码尽量屏蔽异常。但是不代表代码中没有异常。
代码尽量捕捉异常并返回信息。
5.导出(对外公开的)的函数都是NTAPI调用格式。
6.代码尽量使用SAL(source-code annotation language:源代码批注语言)。
7.代码格式类似go和python.
8.代码尽量不使用硬编码。
9.代码开启静态的语法检查(启用Microsoft Code Analysis, 关闭Clang-Tidy)。
10.警告的等级是4级,且将警告视为错误。
11.代码的运行要过:驱动程序校验器/应用程序校验器/gflags.exe.
12.禁止使用断言(估计现在代码中还有不少断言)。
13.接口的参数只有基本类型和指针(没有类,模板和引用)。
14.只依赖操作系统的库,不再依赖第三方的库,包括CRT。
15.所有接口皆为C接口,即EXTERN_C。
16.C语言标准选择:ISO C17 (2018)标准 (/std:c17)。
17.C++语言标准选择:ISO C++17 标准 (/std:c++17) 或者:预览 - 最新 C++ 工作草案中的功能 (/std:c++latest)。
特别说明:
本库只提供c/c++调用接口文档,
其他的,如:ASM,C#,GO,PYTHON,JAVA,PHP等自行定义。
注意:
接口或者回调的调用方式。__stdcall or __cdecl or __fastcall。