羊哥怎么关闭嵌入系统进程并且正在使用的DLL的句柄?

xindeyitian888 2011-01-13 08:59:03
Process Explorer
查找-搜索这个DLL,但右键无关闭句柄项目
查看句柄-看不懂是哪个


...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
keeley20 2011-01-14
  • 打赏
  • 举报
回复
我是来看羊哥的专业粉丝的 (*^__^*)

顺便说下,其实很多安全辅助工具如Wsyscheck,冰刃等,都可强行卸载正在被使用的DLL。
keeley20 2011-01-14
  • 打赏
  • 举报
回复
据我的认识,DLL型的木马或者说是病毒,一般都是些写系统服务或者被加载Rundll32加载,
不论上面那种方式,基本都会生成新的进程,Svchost.exe或者Rundll32.exe,既然是新生成
的独立进程,卸载其中的DLL,或者直接结束进程,根本不会影响系统当前的现状,更别说重启
或者崩溃的了,就算是CreateRemoteThread到其他进程,这个DLL也是可以直接卸载的。

典型的DLl型木马 PCshare,Gh0st,IRat,前两个是VC写的,后面的是Delphi的,都是注册Svchost服务,
羊哥有兴趣可以在虚拟机里面测试看看。

O(∩_∩)O 打字好累,此贴不回了。
Forever_Young 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 keeley20 的回复:]
引用 3 楼 forever_young 的回复:
极少数DLL可以强行卸载,绝大多数你强行卸载跟死机没两样,所以这种强行卸载的功能毫无实用价值,而且在我试着写这种代码的时候还发现一个问题,某些型号的声卡会因为设备句柄被占用,造成突然没声音了。


所谓“安全辅助工具如Wsyscheck,冰刃”基本就是检查病毒木马之类的,而病毒木马正好属于羊哥说的“极少数DLL”。
[/Quote]

我个人的看法是不赞成使用这种暴力删除的办法,而且说是暴力实际上很多情况下也是无能为力的,如果这个DLL处于某个svchost或者winlogon之下,那就是玉石俱焚,实际解决不了问题,转个弯我们想想实际上挪动这个文件然后扼制它的启动更实在些,归根结底是不让它启动为上上策,特别是现在的木马病毒也不是傻子,决不会单枪匹马的出来混,如果删除其中一个造成系统重启,重启后很快会发现它又重生了。我还算是手动处理过不少木马病毒的,各种欺骗手段那是万紫千红令郎满目,确实受用不少,但我从未使用过什么暴力删除,因为多数时都是远程协助人家,一旦系统奔溃白忙活一场保不准还惹人骂。按部就班的处理还是更靠谱些。
keeley20 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 forever_young 的回复:]
极少数DLL可以强行卸载,绝大多数你强行卸载跟死机没两样,所以这种强行卸载的功能毫无实用价值,而且在我试着写这种代码的时候还发现一个问题,某些型号的声卡会因为设备句柄被占用,造成突然没声音了。
[/Quote]

所谓“安全辅助工具如Wsyscheck,冰刃”基本就是检查病毒木马之类的,而病毒木马正好属于羊哥说的“极少数DLL”。
Forever_Young 2011-01-14
  • 打赏
  • 举报
回复
我比较崇拜process explorer的原因就是它强而不悍,我想没人会怀疑作者有写出注入然后close代码的能力,但是确实没什么大用,当一款软件某一功能在处理一个错误时带来新的问题,那这种功能不写出来更好,就像现在一些杀毒软件的IE首页锁定的功能一样好笑,医生不忙于治病,却把病人蜡黄的脸色用脂粉来装扮一番。
Forever_Young 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 keeley20 的回复:]
我是来看羊哥的专业粉丝的 (*^__^*)

顺便说下,其实很多安全辅助工具如Wsyscheck,冰刃等,都可强行卸载正在被使用的DLL。
[/Quote]

极少数DLL可以强行卸载,绝大多数你强行卸载跟死机没两样,所以这种强行卸载的功能毫无实用价值,而且在我试着写这种代码的时候还发现一个问题,某些型号的声卡会因为设备句柄被占用,造成突然没声音了。
Forever_Young 2011-01-13
  • 打赏
  • 举报
回复
不是每个DLL都会出现句柄占用的情况,可以说正常的没有,少数根据打开方式的不同才会占用,木马为了防止被删除所以就把句柄复制到系统进程下,你删除文件时就会删不掉,process explorer里面搜出的结果标识为handle,你可以尝试剪切粘贴的方法来挪动位置以达到删除的目的
易语言辅助模块 .子程序 _等待, , 公开 .参数 毫秒, 整数型, , 单位/毫秒 1000毫秒=1秒 .子程序 _高级处理事件, , 公开, 优化处理事件的效率,先判断是否存在事件 .子程序 _高精度等待, , 公开 .参数 微秒, 整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高精度延时, , 公开 .参数 微秒, 长整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高速扫描ARP, 整数型, 公开, 扫描局域网中的所有IP地址和MAC地址。成功返回(扫描到的计算机数量) .参数 欲扫描的IP段, 文本型, , 如:192.168.0.1 将扫描192.168.0.1 - 192.168.0.255 .参数 IP缓冲区, 文本型, 参考 数组 .参数 MAC缓冲区, 文本型, 参考 数组 .子程序 _禁止重复运行, 逻辑型, 公开, 如果程序已运行(直接结束),否则返回(假)。 .参数 标识, 文本型, 可空, 如果有多个程序用到禁止重复运行功能,建意给每个程序定个不同的标识.任意文本 .参数 窗口句柄, 整数型, 可空, 如果参数被省略,不还原最小化的窗口 .子程序 _卸载热键, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 热键的ID, 整数型, , 由“_注册热键”命令获得 .子程序 _卸载所有热键, , 公开, 撤销所有热键 .子程序 _注册热键, 整数型, 公开, 注册成功返回热键ID,失败返回0,支持多热键 .参数 窗口句柄, 整数型 .参数 功能键状态, 整数型, , 1、Alt;2、Ctrl;4、Shitf;8、Win。若要两个或以上的状态键按则把它们的值相加. .参数 键代码, 整数型 .参数 子程序指针, 子程序指针 .数据类型 RGB, 公开 .成员 R, 整数型 .成员 G, 整数型 .成员 B, 整数型 .数据类型 进程数据, 公开, 进程信息数据 .成员 结构大小, 整数型, , , 1024 .成员 进程的引用计数, 整数型 .成员 进程ID, 整数型 .成员 进程默认堆ID, 整数型 .成员 进程模块ID, 整数型 .成员 线程数, 整数型 .成员 父进程ID, 整数型 .成员 线程优先权, 整数型 .成员 保留, 整数型 .成员 进程名称, 字节型, , "256" .数据类型 矩形, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形宽度, 整数型 .成员 矩形高度, 整数型 .数据类型 矩形区域, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形右边, 整数型 .成员 矩形底边, 整数型 .数据类型 模块数据, 公开, 模块信息数据 .成员 结构大小, 整数型, , , 1024 .成员 mid, 整数型 .成员 pid, 整数型 .成员 gusage, 整数型 .成员 pusage, 整数型 .成员 起始地址, 整数型 .成员 内存长度, 整数型 .成员 模块句柄, 整数型 .成员 模块文件名, 字节型, , "256" .成员 模块完整路径, 字节型, , "256" .数据类型 内存参数, 公开 .成员 数据结构长度, 整数型 .成员 物理内存使用百分比, 整数型 .成员 物理内存总字节数, 整数型, , , 除1024=单位/K .成员 物理内存可用字节数, 整数型, , , 除1024=单位/K .成员 分页文件总字节数, 整数型, , , 除1024=单位/K .成员 分页文件可用字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存总字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存可用字节数, 整数型, , , 除1024=单位/K .数据类型 内存数据, 公开 .成员 cb, 整数型 .成员 页面错误, 整数型 .成员 内存使用峰值, 整数型, , , 除1024=单位/K .成员 内存使用, 整数型, , , 除1024=单位/K .成员 页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 页面缓冲池, 整数型, , , 除1024=单位/K .成员 非页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 非页面缓冲池, 整数型, , , 除1024=单位/K .成员 虚拟内存大小, 整数型, , , 除1024=单位/K .成员 虚拟内存大小峰值, 整数型, , , 除1024=单位/K .数据类型 文件时间, 公开 .成员 创建时间, 日期时间型 .成员 修改时间, 日期时间型 .成员 访问时间, 日期时间型 .数据类型 坐标, 公开 .成员 X, 整数型, , , 横坐标 .成员 Y, 整数型, , , 纵坐标 .程序集 窗口操作, , 公开 .子程序 窗口抖动, 逻辑型, 公开, 仿QQ窗口抖动效果,窗口抖动完毕返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲抖动的窗口句柄。 .参数 抖动幅度, 整数型, 可空, 欲抖动的幅度。如果参数被省略,默认为1 .参数 抖动次数, 整数型, 可空, 欲抖动的次数。如果参数被省略,默认为5 .参数 抖动速度, 整数型, 可空, 欲抖动的速度。如果参数被省略,默认为10 .子程序 窗口嵌入, 逻辑型, 公开, 将指定窗口嵌入到另一个顶级窗口中,成功返回(真),失败返回(假) .参数 子窗口句柄, 整数型 .参数 父窗口句柄, 整数型, , 如:桌面→桌面标题=“Program Manager” .子程序 窗口嵌入桌面, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲嵌入到桌面的窗口 .子程序 窗口是否存在, 逻辑型, 公开, 如果窗口存在返回(真),否则返回(假) .参数 窗口句柄, 整数型 .子程序 窗口置顶, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 窗口最小化, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 禁止窗口组建, 逻辑型, 公开, 在指定的窗口或窗口组建里允许或禁止所有鼠标及键盘输入,成功返回(真),失败返回(假) .参数 句柄, 整数型, , 窗口句柄或组建句柄 .参数 类型, 整数型, , 0=禁止,1=允许 .子程序 枚举窗口, 整数型, 公开, 成功返回(所有窗口数量) .参数 窗口句柄, 整数型, 参考 数组, 装载窗口句柄的数组变量,请用循环取出 .子程序 清除窗口, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 取窗口标题, 文本型, 公开, 成功返回(窗口标题),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口矩形, 矩形区域, 公开 .参数 窗口句柄, 整数型 .子程序 取窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .参数 窗口类名, 文本型, 可空, 指定的窗口类名 .参数 窗口标题, 文本型, 可空, 指定的窗口标题 .子程序 取窗口类名, 文本型, 公开, 成功返回(窗口类名),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口位置, 坐标, 公开 .参数 窗口句柄, 整数型 .子程序 取父窗口句柄, 整数型, 公开, 成功返回(父窗口句柄),无父窗口或遇到错误返回(0) .参数 窗口句柄, 整数型, , 窗口句柄 .子程序 取进程窗口句柄, 整数型, 公开, 取指定进程的窗口句柄,成功返回(指定进程的父窗口句柄),失败返回(0) .参数 进程ID, 整数型, , 指定进程的ID .子程序 取前台窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .子程序 置窗口标题, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 新标题, 文本型 .子程序 置窗口鼠标穿透, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .参数 是否穿透, 逻辑型, , 如果参数为真马上穿透,如果参数为假取消穿透 .子程序 置窗口透明度, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .子程序 置窗口位置, 逻辑型, 公开, 移动窗口到指定位置 .参数 窗口句柄, 整数型 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .参数 窗口宽度, 整数型, 可空, 如果为空(不改变当前窗口宽度) .参数 窗口高度, 整数型, 可空, 如果为空(不改变当前窗口高度) .子程序 置窗口状态, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 指定需要控制的窗口句柄 .参数 状态, 整数型, , 0 隐藏取消激活 1 还原激活 2 最小化激活 3 最大化激活 4 还原 6 最小化取消激活 7 最小化 9 还原激活 .程序集 磁盘操作, , 公开 .子程序 创建目录, 逻辑型, 公开, 成功返回(真) .参数 目录全路径, 文本型, , 如:C:\新目录\新子目录...... .子程序 打开文件, 整数型, 公开, 成功返回(文件号),失败返回(0),使用完毕记得关闭文件 .参数 文件全路径, 文本型, , 如果文件不存在,新建一个文件 .参数 打开方式, 整数型, 可空, 1=读入,2=写出,3=读写,4=重写,5=改写,如果参数被省略默认为3 .参数 共享方式, 整数型, 可空, 0=不共享,1=允许读,2=允许写,3=无限制,如果参数被省略默认为3 .子程序 读配置项, 文本型, 公开, 读取指定配置文件中指定项目的文本内容。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 小节名, 文本型, , 包含欲读入配置项所处节的名称。 .参数 项目名, 文本型, , 参数值指定欲读入配置项在其节中的名称。 .参数 默认值, 文本型, 可空, 如果指定配置项不存在,将返回此默认文本。如果指定配置项不存在且本参数被省略,将返回空文本。 .子程序 复制文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 源文件全路径, 文本型, , 被复制的文件名 .参数 目标全路径, 文本型, , 目标文件名 .参数 是否覆盖, 整数型, , 非0不覆盖,0覆盖 .子程序 关闭文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件号, 整数型, , 由“打开文件”命令获得 .子程序 快速寻找文件, 文本型, 公开, 成功返回(文件全路径),失败返回(空文本) .参数 欲寻找的文件路径, 文本型, , 如:C:\WINDOWS\system32 或 C:\ .参数 欲寻找的文件名, 文本型, , 如:1.exe , 2.dll.....等,暂时不支持*.*操作 .子程序 枚举磁盘, 整数型, 公开, 成功返回(磁盘分区数量) .参数 盘符, 文本型, 参考 数组, 装载磁盘盘符的数组变量,请用循环取出 .子程序 枚举文件, 整数型, 公开, 成功返回(文件数量),错误或无文件返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 文件扩展名, 文本型, 可空, 如:*.jpg , *.exe , *.dll......等,如果本参数被省略,默认为搜寻所有文件扩展名 .参数 文件属性, 整数型, 可空, 1、#只读文件; 2、#隐藏文件; 4、#系统文件; 32、#存档文件 通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数,默认为搜寻所有文件属性 .参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型, 公开, 成功返回(子目录数量),错误或无子目录返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 子目录数组, 文本型, 参考 数组, 装载目录名的数组变量,请用循环取出 .子程序 目录是否存在, 逻辑型, 公开, 如果目录存在返回(真),否则返回(假) .参数 目录全路径, 文本型, , 如:C:\WINDOWS .子程序 取磁盘剩余空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘已用空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘总空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取路径文件名, 文本型, 公开, 成功返回(文件名) .参数 文件路径, 文本型, , 如:c:\windows\system32\user32.dll .子程序 取文件扩展名, 文本型, 公开, 无扩展名返回空 .参数 文件名或文件全路径, 文本型, , 如:c:\windows\system32\user32.dll或user32.dll .子程序 取文件时间, 文件时间, 公开, 成功返回(“文件时间”数据类型) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .子程序 取系统特定目录, 文本型, 公开, 成功返回("路径"),失败返回("") .参数 参数, 整数型, 可空, 如果为空=调试模式,将输出调试文本(所有路径),大家自己寻找自己需要的路径 .子程序 删除文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 欲删除的文件全路径, 文本型 .子程序 写配置项, 逻辑型, 公开, 将指定文本内容写入指定配置项中或者删除指定的配置项或节,如果指定配置文件不存在,将会自动创建。成功返回真,失败返回假。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 节名称, 文本型, , 包含欲写入配置项所处节的名称。 .参数 配置项名称, 文本型, , 参数值指定欲写入配置项在其节中的名称。 .参数 欲写入值, 文本型, , 参数值指定欲写入到指定配置项中的文本。 .子程序 置文件时间, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .参数 创建时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 修改时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 访问时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .程序集 多线程类, , 公开 .子程序 恢复线程, , 公开 .参数 线程ID, 整数型 .子程序 启动线程, 整数型, 公开, 成功返回(线程ID) .参数 子程序, 子程序指针, , 提供欲执行的子程序的指针 .参数 参数, 整数型, 可空, 可提供欲执行的子程序的参数,仅支持整数型 .参数 立即执行, 逻辑型, 可空, 默认为真。若此值为假,则建立的线程将被暂停等待恢复线程,反之则立即执行 .子程序 销毁线程, , 公开 .参数 线程ID, 整数型 .子程序 暂停线程, , 公开 .参数 线程ID, 整数型 .程序集 键盘操作, , 公开 .子程序 发送按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 另类模拟按键, , 公开 .参数 按键名, 文本型, , 键盘上的按键名称。如:F1 F2 Q W E R......等 .子程序 模拟按键, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 模拟按键动作, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 投递按键消息, , 公开, 向指定窗口句柄的窗口中投递按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .程序集 进程操作, , 公开 .子程序 程序是否存在, 逻辑型, 公开, 如果程序存在返回(真),否则返回(假) .参数 进程名称, 文本型, , 欲判断的进程名称,请区分大小写 .子程序 打开进程, 整数型, 公开, 成功返回(进程句柄),失败返回(0),使用完毕记得关闭进程 .参数 进程ID, 整数型, , 欲打开的进程ID .子程序 关闭进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程句柄, 整数型, , 由“打开进程”命令获得 .子程序 进程ID取进程名, 文本型, 公开, 根据指定的进程ID,获取该进程ID对应的进程名称。成功返回(进程名),失败返回(空文本) .参数 进程ID, 整数型, , 欲取进程名称的进程ID .子程序 进程名取进程ID, 整数型, 公开, 根据指定的进程名称,获取该进程名称对应的进程ID。成功返回(进程ID),失败返回(-1) .参数 进程名称, 文本型, , 欲取进程ID的进程名称,请区分大小写 .子程序 进程是否存在, 逻辑型, 公开, 如果进程存在返回(真),否则返回(假) .参数 进程ID, 整数型, , 欲判断的进程ID .子程序 枚举进程, 整数型, 公开, 成功返回(进程数量),失败返回(0) .参数 进程数据, 进程数据, 参考 数组, 请提供进程数据数组变量 .子程序 枚举进程模块, 整数型, 公开, 成功返回(模块数量),失败返回(0) .参数 进程ID, 整数型 .参数 模块数据, 模块数据, 参考 数组, 请提供模块数据数组变量 .子程序 取窗口进程ID, 整数型, 公开, 成功返回(该窗口的进程ID),失败返回(0) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取进程路径, 文本型, 公开, 成功返回(进程的完整路径),错误或权限不够返回(空文本),请先提升进程权限 .参数 进程ID, 整数型, , 欲取路径的进程ID .子程序 取进程内存数据, 内存数据, 公开, 如需要获得更多进程内存使用信息,请先提高进程权限 .参数 进程ID, 整数型 .子程序 取进程优先级, 整数型, 公开, 失败返回(0) 成功返回(实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .子程序 取自进程ID, 整数型, 公开, 成功返回(进程ID) .子程序 取自进程句柄, 整数型, 公开, 成功返回(进程句柄),失败返回(0) .子程序 提升进程权限, 逻辑型, 公开, 提升进程到指定权限 .参数 进程ID, 整数型, 可空, 如果参数被省略,表示自身进程 .参数 权限级别, 文本型, 可空, #备份 #启动 #关机 #调试 如果为空:#调试 .子程序 隐藏进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .子程序 置进程优先级, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .参数 优先级, 整数型, , 实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64 .子程序 终止进程, 逻辑型, 公开, 如果成功返回(真),否则返回(假) .参数 进程ID, 整数型, , 指定的进程ID .程序集 控件类, , 公开 .子程序 创建时钟, 整数型, 公开, 成功返回(时钟句柄),可以在无窗口的程序中使用,如:DLL .参数 时钟周期, 整数型, , 单位:毫秒 .参数 周期事件, 子程序指针, , &调用的子程序 .子程序 水晶进度条, , 公开, 使用比较暗的颜色,效果会更好 .参数 画板, 画板 .参数 最大位置, 整数型 .参数 当前位置, 整数型 .参数 颜色值, 整数型, 可空, 默认为#紫红 .参数 方向, 整数型, 可空, 1=从左到右 2=从右到左 3=从上到下 4=从下到上 默认为1 .参数 水晶效果, 逻辑型, 可空, 真=水晶效果 假=无效果 默认为真 .参数 显示背景, 逻辑型, 可空, 真=显示背景 假=无背景 默认为真 .参数 显示百分比, 逻辑型, 可空, 真=显示百分比 假=不显示 默认为假 文本颜色=画板.文本颜色 .子程序 销毁时钟, 整数型, 公开, 成功返回(1) .参数 时钟句柄, 整数型 .子程序 卸载OCX控件, , 公开 .参数 全路径, 文本型 .子程序 颜色选择框, 长整数型, 公开, 如果颜色被选择返回(10进制新颜色值),否则返回(初始颜色值) .参数 窗口句柄, 整数型, , 欲创建颜色 .参数 初始颜色值, 整数型, 可空, 如果参数被省略,默认为 #黑色 .子程序 注册OCX控件, , 公开 .参数 全路径, 文本型 .程序集 内存操作, , 公开 .子程序 读文本型内存, 文本型, 公开, 读取文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 读整数型内存, 整数型, 公开, 读取整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .子程序 读字节集内存, 字节集, 公开, 读取字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 取系统内存状态, 内存参数, 公开, 获取系统当前内存使用状态,成功返回(内存参数类型数据) .子程序 任意进制转换, 文本型, 公开, 成功返回(转换后的文本)。支持2 8 10 16 32进制互转。例:任意进制转换(“16进制”,16,10) .参数 欲转换文本, 文本型, , 欲转换的文本数据 .参数 欲转换进制, 整数型, , 欲转换的文本数据的进制 .参数 转换的进制, 整数型, , 准备转换成什么进制?支持:2 8 10 16 32进制 .子程序 十六转十, 长整数型, 公开 .参数 十六进制数据, 文本型 .子程序 十转十六, 文本型, 公开 .参数 十进制数据, 长整数型 .子程序 写文本型内存, 逻辑型, 公开, 写入文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 文本型数据, 文本型, , 写入数据 .子程序 写整数型内存, 逻辑型, 公开, 写入整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 整数型数据, 整数型, , 写入数据 .子程序 写字节集内存, 逻辑型, 公开, 写入字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 字节集数据, 字节集, , 写入数据 .程序集 鼠标操作, , 公开 .子程序 捕获鼠标, , 公开, 将鼠标捕获在指定窗口范围中 .参数 窗口句柄, 整数型 .子程序 发送鼠标消息, , 公开, 向指定窗口句柄的窗口中发送鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 模拟鼠标动作, , 公开 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .子程序 模拟鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 取鼠标横坐标, 整数型, 公开 .子程序 取鼠标纵坐标, 整数型, 公开 .子程序 取鼠标坐标, 坐标, 公开 .子程序 取坐标距离, 整数型, 公开, 返回两坐标点之间的距离 .参数 坐标1, 坐标 .参数 坐标2, 坐标 .子程序 释放鼠标, , 公开 .子程序 释放鼠标活动范围, 逻辑型, 公开 .子程序 鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 鼠标左右键互换, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 参数, 整数型, , 0=恢复 1=互换 .子程序 投递鼠标消息, , 公开, 向指定窗口句柄的窗口中投递鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 显示鼠标, , 公开 .子程序 限制鼠标活动范围, 逻辑型, 公开 .参数 矩形区域, 矩形区域 .子程序 隐藏鼠标, , 公开 .程序集 图形图象, , 公开 .子程序 快照后台窗口, 字节集, 公开, 捕获指定后台或前台窗口,返回相应图片数据,成功返回(快照字节集),失败返回(空字节集) .参数 窗口句柄, 整数型, , 欲截图的窗口句柄 .子程序 屏幕写字, 逻辑型, 公开, 向指定窗口中写入文本内容,成功返回(真) .参数 窗口句柄, 整数型, 可空, 欲写入文字的窗口的句柄,参数为空则为(屏幕) .参数 横坐标, 整数型, 可空, 写入文字内容的起始位置x横坐标,参数为空则默认为(0) .参数 纵坐标, 整数型, 可空, 写入文字内容的起始位置y纵坐标,参数为空则默认为(0) .参数 欲写入的内容, 文本型, , 欲写入的文本内容 .参数 字体颜色, 整数型, 可空, 参数为空则默认为(#红色) .参数 字体大小, 整数型, 可空, 参数为空则默认为(15) 单位/像素 .参数 字体类型, 文本型, 可空, 参数为空则默认为(宋体) 更多字体请查看相关资料! .参数 加粗, 逻辑型, 可空, 参数为空则(不加粗) 真=加粗 假=不加粗 .参数 倾斜, 逻辑型, 可空, 参数为空则(不倾斜) 真=倾斜 假=不倾斜 .参数 下划线, 逻辑型, 可空, 参数为空则(无下划线) 真=下划线 假=无下划线 .子程序 取RGB, RGB, 公开, 取指定颜色的RGB值。成功返回(RGB类型数据) .参数 颜色值, 整数型, , 欲取RGB值的十进制颜色 .子程序 取亮度, 整数型, 公开, 取指定颜色的亮度。成功返回(亮度值) .参数 颜色值, 整数型, , 欲取亮度的十进制颜色 .子程序 取指定坐标颜色, 整数型, 公开, 取屏幕中指定坐标的颜色(返回10进制颜色值) .参数 横坐标, 整数型, , 指定屏幕横坐标 .参数 纵坐标, 整数型, , 指定屏幕纵坐标 .子程序 转换图像格式, 字节集, 公开, 直接在内存中转换图象格式,支持*.bmp *.jpg *.gif *.tiff *.png互转。成功返回(转换后的新图象字节集),失败返回(空字节集) .参数 图像数据, 字节集, , 欲转换的图像数据 .参数 转换格式, 整数型, , 欲转换的新图片数据格式。1=bmp 2=jpg 3=gif 4=tiff 5=png .程序集 网络操作, , 公开 .子程序 检测网络地址, 逻辑型, 公开, 成功连接返回(真),否则返回(假) .参数 网络地址, 文本型, , 如:http://www.dywt.com.cn 必须以http://开头 .子程序 取IE地址, 文本型, 公开, 获取IE地址栏文本内容,成功返回(地址栏内容),失败返回(空文本) .参数 窗口句柄, 整数型, , 欲取地址栏内容的IE浏览器的窗口句柄 .子程序 取计算机名, 文本型, 公开, 成功返回本地计算机名称,失败返回空字符串。 .子程序 取用户名, 文本型, 公开, 成功返回本地当前用户名称,失败返回空字符串。 .子程序 取远程网卡物理地址, 文本型, 公开, 取局域网计算机网卡MAC地址。成功返回(欲测试IP的MAC地址),失败返回(空文本) .参数 IP地址, 文本型, , 欲测试的局域网计算机的IP地址。如:192.168.0.1 , 192.168.1.5......等等 .程序集 文本操作, , 公开 .子程序 取空格前文本, 文本型, 公开 .参数 文本数据, 文本型 .子程序 取文本长度, 整数型, 公开, 返回(文本型数据的长度) .参数 文本数据, 文本型, , 参数值指定欲检查其长度的文本数据 .子程序 删首尾空格, 文本型, 公开, 返回一个文本,其中包含被删除了首部及尾部全角或半角空格的指定文本 .参数 欲删除空格的文本, 文本型, , 通过“删首尾空”命令将一段文本中文字前和文字后的空格全部删除 .程序集 系统服务, , 公开 .子程序 枚举系统服务, 逻辑型, 公开 .参数 服务名称, 文本型, 数组, 数组变量,用于返回文本数组数据 .参数 显示名称, 文本型, 可空 数组, 数组变量,用于返回文本数组数据 .子程序 启动, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取登入为, 文本型, 公开, 成功返回(LocalSystem=本地系统;NT AUTHORITY\LocalService=本地服务;NT Authority\NetworkService=网络服务) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取服务数量, 整数型, 公开, 成功返回(系统服务的总数量) .子程序 取服务状态, 整数型, 公开, 成功返回(1=已停止:2=准备开始;3=准备停止;4=正在运行;5=准备继续;6=准备暂停;7=已暂停) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取可执行文件的路径, 文本型, 公开, 成功返回(可执行文件的路径) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取描述, 文本型, 公开, 成功反回(服务的描述) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取启动类型, 整数型, 公开, 成功返回(2=自动;3=手动;4=已禁用) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取显示名称, 文本型, 公开, 成功返回(服务的显示名称) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 停止, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 置登入为, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 服务类型, 文本型, , #本地系统;#本地服务;#网络服务 .子程序 置可执行文件的路径, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 路径, 文本型, , 自定义的路径 .子程序 置描述, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 描述, 文本型, , 自定义的描述 .子程序 置启动类型, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 启动类型, 整数型, , 2=自动;3=手动;4=已禁用 .子程序 置显示名称, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 显示名称, 文本型, , 自定义的显示名称 .程序集 注册表类, , 公开 .子程序 枚举子键, 整数型, 公开, 成功返回(子键数量),失败或没有子键返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子键名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .参数 子键类型, 整数型, 参考 数组, 1=REG_SZ , 2=REG_EXPAND_SZ , 3=REG_BINARY , 4=REG_DWORD , 7=REG_MULTI_SZ .参数 子键值, 字节集, 参考 数组, 在此处存放自定义子键值储存数组文本型变量,请用循环取出 .子程序 枚举子项, 整数型, 公开, 成功返回(子项数量),失败或没有子项返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子项名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .子程序 取数值注册项, 长整数型, 公开, 读取注册表整数键值,(REG_DWORD)类型键值。成功返回(10进制键值),失败返回(-1) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取文本注册项, 文本型, 公开, 读取注册表文本键值,(REG_SZ , REG_MULTI_SZ , REG_EXPAND_SZ)类型键值。成功返回(文本键值),失败或无键值返回(空文本) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取字节集注册项, 字节集, 公开, 成功返回(指定的字节集类型注册表项值),失败或无键值返回(空字节集) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .DLL命令 _取窗口标题长度, 整数型, "user32.dll", "GetWindowTextLengthA", 公开 .参数 窗口句柄, 整数型 .常量 HKEY_CLASSES_ROOT, "2147483648", 公开, 注册表根目录&H80000000; .常量 HKEY_CURRENT_CONFIG, "2147483653", 公开, 注册表根目录&H80000005; .常量 HKEY_CURRENT_USER, "2147483649", 公开, 注册表根目录&H80000001; .常量 HKEY_DYN_DATA, "2147483654", 公开, 注册表根目录&H80000006; .常量 HKEY_LOCAL_MACHINE, "2147483650", 公开, 注册表根目录&H80000002; .常量 HKEY_USERS, "2147483651", 公开, 注册表根目录&H80000003; .常量 备份, "“SeBackupPrivilege”", 公开, 提升进程权限 .常量 本地服务, "“NT AUTHORITY\LocalService”", 公开, NT服务 .常量 本地系统, "“LocalSystem”", 公开, NT服务 .常量 调试, "“SeDebugPrivilege”", 公开, 提升进程权限 .常量 关机, "“SeShutdownPrivilege”", 公开, 提升进程权限 .常量 启动, "“SeRestorePrivilege”", 公开, 提升进程权限 .常量 网络服务, "“NT Authority\NetworkService”", 公开, NT服务
模块名称:茶凉专用模块 作者:茶凉 版本:2.0 本模块可以编程更简单,仅仅用核心支持库编写。 @备注: 官方论坛:http://bbs.clrje.cn/ 官方QQ群:92716369 ------------------------ -------------------------- ------------------------------ .版本 2 .子程序 按键, , 公开, 执行模拟按键(无返回值) .参数 键代码, 整数型, , 键代码 .参数 状态, 整数型, 可空, 可空:按键(按下+放开) 1 #按键_ 3 #按下_ 4 #放开_ 如果状态大于等于5则为按下与放开之间的延时,可解决某些屏蔽 .参数 功能键方式, 逻辑型, 可空, 默认为普通键, 真:功能键方式模拟,如ctrl键win键home键光标键等 .子程序 按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 状态, 整数型, 可空, 可空:按键(3+4) 1 #按键 2 功能键方式(按下+放开) 3 #按下 4 #放开 .参数 继承, 逻辑型, 可空, 默认为假:不继到子窗口 真:继承到所有子级窗口 .子程序 按键消息处理, 逻辑型, 公开 .参数 hwnd, 整数型 .子程序 按下控件, , 公开, 向指定按钮(控件)发送按钮鼠标单击的消息(无返回值) .参数 临时按钮句柄, 整数型, , 按钮控件的句柄 .参数 临时状态, 整数型, 可空, 可空:单击 3 #按下 4 #放开 .子程序 按组合键, , 公开, 执行模拟组合按键(无返回值) .参数 键码, 整数型, , 键代码 .参数 功能键码1, 整数型, , 功能键代码 .参数 功能键码2, 整数型, 可空, 功能键代码(可选) .参数 功能键码3, 整数型, 可空, 功能键代码(可选) .子程序 按组合键消息, , 公开, 向指定窗口句柄的窗口中发送组合按键的消息,游戏中有效!(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 功能键码1, 整数型, , 功能键的键代码 .参数 功能键码2, 整数型, 可空, 功能键的键代码(可选) .参数 功能键码3, 整数型, 可空, 功能键的键代码(可选) .参数 继承, 逻辑型, 可空, 默认为假:不继到子窗口 真:继承到所有子级窗口 .子程序 八到十, 整数型, 公开, 将八进制转换成十进制(返回十进制整数) .参数 八进制文本, 文本型, , 欲转换的八进制文本 .子程序 彩色字体, , 公开, 彩色动态字体 感谢[梦飞鸟] .参数 内容, 文本型 .参数 窗口句柄, 整数型 .参数 随机渐变, 逻辑型, 可空, 不选不随机颜色 .参数 字体抖动, 逻辑型, 可空 .子程序 查看字节集1, 文本型, 公开, 以易语言文本方式查看字节集,返回文本内容 如:{ 102, 204, 14, 5 } .参数 字节集, 字节集, , 欲查看的字节集 .参数 起始位置, 整数型, 可空, 查看字节集的起始查看位置 .参数 查看长度, 整数型, 可空, 查看的长度,默认为查看全部 .子程序 查看字节集2, 文本型, 公开, 以十六进制文本方式查看字节集,返回文本内容 如:45 3F 58 1D 0A .参数 字节集, 字节集, , 欲查看的字节集 .参数 起始位置, 整数型, 可空, 查看字节集的起始查看位置 .参数 查看长度, 整数型, 可空, 查看的长度,默认为查看全部 .子程序 超级截图, 字节集, 公开, 截取窗口或屏幕中指定区域图片(返回图片字节集,失败返回空字节集) .参数 窗口句柄, 整数型, 可空, 默认为屏幕中.指定窗口句柄,则以窗口客户区内坐标点 .参数 左上顶点_X, 整数型, 可空, 截取图片范围的左上角横坐标,留空为0 .参数 左上顶点_Y, 整数型, 可空, 截取图片范围的左上角纵坐标,留空为0 .参数 右下顶点_X, 整数型, 可空, 截取图片范围的右下角横坐标,小于左上顶点_X则为最大值-1 默认为最大值 .参数 右下顶点_Y, 整数型, 可空, 截取图片范围的右下角纵坐标,小于左上顶点_Y则为最大值-1 默认为最大值 .参数 是否后台, 逻辑型, 可空, 默认为假:可见到的颜色点 真:后台窗口内颜色点 .参数 色深, 整数型, 可空, 所截取的图片位深度,默认为16位(8,16,24,32) .子程序 超级延迟, , 公开, 无资源占用的延时(无返回值) .参数 等待时间, 整数型 .子程序 超级延时, , 公开, 高精度延时,cpu占用低,窗口不卡死,一次最大可延时几年 (无返回值) .参数 延时间隔, 整数型, , 1000微秒 = 1毫秒 ; 1000毫秒 = 1秒 .参数 延时单位, 整数型, 可空, 可空:毫秒 0 毫秒 1 微秒 2 秒 3 分 4 小时 5 天 .子程序 窗口激活, 逻辑型, 公开, 激活指定窗口,将窗口设置到前台 .参数 句柄, 整数型, , 欲带到前台的窗口 .子程序 窗口禁止, 逻辑型, 公开, 在窗口中允许或禁止所有鼠标及键盘输入(成功返回真,失败返回假) .参数 窗口句柄, 整数型, , 欲禁止鼠标键盘输入的窗口或控件的句柄 .参数 是否禁止, 逻辑型, 可空, 默认为真:禁止 假:取消禁止 .子程序 窗口禁止关闭, 逻辑型, 公开, 控制窗口关闭按钮,(允许/禁止)关闭窗口 (成功返回真,失败返回假) .参数 窗口句柄, 整数型, , 欲禁止或解除禁止的窗口句柄 .参数 禁止关闭, 逻辑型, 可空, 可空为禁止关闭, 假:允许关闭, 真:禁止关闭 .子程序 窗口是否当前, 逻辑型, 公开, 判断指定窗口是否为当前窗口(为当前接收按键消息的窗口返回真,否则返回假) .参数 进程名, 文本型, 可空, 欲判断窗口的程序进程名(注意区分大小写) .参数 窗口类名, 文本型, 可空, 欲判断窗口的类名(注意区分大小写) .参数 窗口标题, 文本型, 可空, 欲判断窗口的标题关键字 .子程序 窗口透明化, 逻辑型, 公开, 设置窗口透明状态(成功返回真,失败返回假) .参数 临时句柄, 整数型, , 设置透明化窗口的句柄 .参数 临时透明度, 字节型, 可空, 设置整个窗口的透明度 取值范围是[0,255] 可空为不设定此参数 .参数 临时透明色, 整数型, 可空, (#颜色)指定某颜色为完全透明(完全透明处不属于该窗口) 可空为不指定 .参数 鼠标穿透, 逻辑型, 可空, 可空为假 真:窗口被鼠标穿透 .子程序 窗口图标隐藏, , 公开, 将窗口的图标清除 .参数 窗口句柄, 整数型 .子程序 窗口销毁, , 公开, 将指定窗口销毁(无返回值) .参数 临时句柄, 整数型, , 欲销毁窗口的句柄 .子程序 窗口移动, , 公开, 移动指定窗口(无返回值) .参数 临时句柄, 整数型, , 欲移动窗口的句柄 .参数 窗口新左边, 整数型, 可空, 可空:原左边不变 .参数 窗口新顶边, 整数型, 可空, 可空:原顶边不变 .参数 窗口新宽度, 整数型, 可空, 可空:原宽度不变 .参数 窗口新高度, 整数型, 可空, 可空:原高度不变 .子程序 窗口隐藏显示, 逻辑型, 公开, 显示隐藏指定句柄的窗口(如果显示则隐藏:返回假,如果隐藏则显示:返回真) .参数 窗口句柄, 整数型, 可空, 要显示/隐藏的窗口句柄(可空:则显示/隐藏上次的窗口,如果为初次使用则为当前窗口) .子程序 窗口置父, 整数型, 公开, 指定一个窗口的新父(返回前一个父窗口的句柄) .参数 窗口句柄, 整数型, , 子窗口句柄 .参数 新父, 整数型, 可空, 新的父窗口句柄 默认为0:置顶级窗口 -1:嵌入桌面 .子程序 窗口置焦点, 逻辑型, 公开, 将输入焦点设到指定的窗口。如有必要,会激活窗口.不能对最小化窗口设置(成功返回真,失败返回假) .参数 句柄, 整数型, , 欲置焦点的窗口句柄 .子程序 窗口状态控制, 逻辑型, 公开, 控制窗口状态(成功返回真,失败返回假) .参数 临时句柄, 整数型, , 窗口句柄 .参数 状态, 整数型, , 0 隐藏取消激活 1 还原激活 2 最小化激活 3 最大化激活 4 还原 6 最小化取消激活 7 最小化 9 还原激活 .子程序 窗口最大化, , 公开, 将指定窗口最大化(无返回值) .参数 临时句柄, 整数型, , 欲最大化窗口的句柄 .子程序 窗口最前, , 公开, 将指定窗口设为总在最前.(注意参数2,真:总在最前) .参数 句柄, 整数型, , 欲设置的窗口句柄 .参数 是否总在最前, 逻辑型, 可空, 默认为假:取消总在最前 真:总在最前 .子程序 窗口最小化, , 公开, 将指定窗口最小化(无返回值) .参数 临时句柄, 整数型, , 欲最小化窗口的句柄 .子程序 创建程序快捷方式, 逻辑型, 公开, 创建程序快捷方式 (成功返回真,失败返回假) .参数 lnk名称, 文本型, , 快捷方式保存全路径文件名 .参数 目标, 文本型, , 指向的文件全路径文件名 .参数 参数文本, 文本型, 可空, 执行文件的参数 .参数 图标文件, 文本型, 可空, 图标文件的路径 可空:为空时用目标的第一个图标 .参数 运行方式, 整数型, 可空, 1,常规方式,3,最大化,7,最小化 .参数 备注, 文本型, 可空, 快方式的备注信息 .参数 快捷键, 文本型, 可空, 启动快捷方式的快捷键 如“Ctrl+Alt+Y” .子程序 创建定时器, 整数型, 公开, 返回成功创建定时器的标志 .参数 窗口句柄, 整数型, 可空, 为空则为系统级定时器(通常为空) .参数 时钟周期, 整数型, , 毫秒级单位 1秒=1000毫秒 .参数 定时器事件处理, 子程序指针, , 定时器触发事件 .子程序 创建多级目录, 逻辑型, 公开, 成功返回真,失败返回假 .参数 目录路径, 文本型 .子程序 创建进程, 整数型, 公开, 创建一个程序进程(成功返回进程ID,失败返回0) .参数 程序路径, 文本型, , 欲创建进程的执行路径 .参数 命令行, 文本型, 可空, 附加上程序路径后的命令行参数 .参数 运行目录, 文本型, 可空, 通常留空,特殊情况下使用 .参数 进程结构, 进程结构, 参考 可空, 接收进程结构信息的变量 .子程序 创建网页快捷方式, 逻辑型, 公开, 创建网页快捷方式 (成功返回真,失败返回假) .参数 保存路径, 文本型, , 全路径文件名 .参数 网页地址, 文本型, , URL .参数 ico图标, 文本型, 可空, 图标路径 可空:默认为网页快捷方式图标 .参数 快捷键, 整数型, 可空, CTRL+ALT+? (A=1601 B=1602 C=1603 ...) .子程序 创建线程, 整数型, 公开, 创建一个线程来启动子程序(返回线程句柄) .参数 线程子程序, 子程序指针, , 欲启动的线程子程序指针 .参数 传递参数, 整数型, 可空 .子程序 打开网页, 逻辑型, 公开, 打开指定网址(成功返回真,失败返回假) .参数 网址, 文本型, , 欲打开的网页地址 .子程序 弹出光驱, 逻辑型, 公开, 弹出光驱门。 mciSendString .子程序 到短路径, 文本型, 公开, 取指定路径的短路径名(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:C:\PROGRA~1\ .参数 文件名, 文本型, , 原路径 .子程序 到任意进制, 文本型, 公开, 可以将从二进制到三十六进制的数值随意进行转换(返回转换后的文本) .参数 被转换文本, 文本型, , 欲被转换的文本(不可以转换负数以及小数) .参数 被转换进制, 整数型, , 被转换文本的进制(2-36之间) .参数 转换的进制, 整数型, , 要转换到的进制(2-36之间) .子程序 到十进制, 整数型, 公开, 将2,8,16进制文件转换到10进制数值(返回十进制数) .参数 文本, 文本型, , 2,8,16进制文件 .参数 进制, 整数型, 可空, 默认为十六进制 2为二进制,8为八进制,16为16进制 .子程序 读磁盘扇区, 逻辑型, 公开 .参数 扇区号, 整数型 .参数 扇区内容, 字节集 .子程序 读内存长整数型, 长整数型, 公开, 从内存中读取长整数型数据,失败返回失败内容 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 失败内容, 长整数型, 可空, 读内存失败后返回值的内容 默认为-1 .子程序 读内存短整数型, 短整数型, 公开, 从内存中读取短整数型数据,失败返回失败内容 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 失败内容, 短整数型, 可空, 读内存失败后返回值的内容 默认为-1 .子程序 读内存日期时间型, 日期时间型, 公开, 从内存中读取日期时间型数据,失败将返回100年1月1日 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .子程序 读内存双精度小数型, 双精度小数型, 公开, 从内存中读取双精度小数型数据,失败返回失败内容 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 失败内容, 双精度小数型, 可空, 读内存失败后返回值的内容 默认为-1 .子程序 读内存文本型, 文本型, 公开, 从内存中读取文本型数据(返回文本,失败返回0字节长度空内容) .参数 进程ID, 整数型 .参数 内存地址, 整数型 .子程序 读内存小数型, 小数型, 公开, 从内存中读取小数型数据,失败返回失败内容 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 失败内容, 小数型, 可空, 读内存失败后返回值的内容 默认为-1 .子程序 读内存整数型, 整数型, 公开, 从内存中读取整数型数据,失败返回失败内容 .参数 进程ID, 整数型 .参数 内存地址, 整数型 .参数 失败内容, 整数型, 可空, 读内存失败后返回值的内容 默认为-1 .子程序 读内存子程序指针, 子程序指针, 公开, 从内存中读取子程序指针,失败返回空指针 .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .子程序 读内存字节集, 字节集, 公开, 从内存中读取字节集数据(返回字节集,失败返回0字节长度的空字节集) .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 长度, 整数型, 可空, 欲读取内存数据的长度 (留空则智能读取) .子程序 读内存字节型, 字节型, 公开, 从内存中读取一个字节,失败返回失败内容(0-255) .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 失败内容, 字节型, 可空, 读内存失败后返回的内容 默认为0 .子程序 读物理内存, 字节集, 公开, 失败返回{},成功返回相应数据 (进程隐藏) .参数 地址, 长整数型 .参数 长度, 整数型, , <=4096 .子程序 读游戏内存文本, 文本型, 公开, 读取内存地址数据 .参数 进程ID, 整数型, , 游戏进程标识符 .参数 基址, 文本型, , 欲读取的内存基址(十六进制) .参数 偏移1, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移2, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移3, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移4, 文本型, 可空, 没有请留空 (十六进制) .子程序 读游戏内存整数, 整数型, 公开, 读取内存地址数据 .参数 进程ID, 整数型, , 游戏进程标识符 .参数 基址, 文本型, , 欲读取的内存基址(十六进制) .参数 偏移1, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移2, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移3, 文本型, 可空, 没有请留空 (十六进制) .参数 偏移4, 文本型, 可空, 没有请留空 (十六进制) .子程序 对话框_打开保存, 文本型, 公开, 返回打开文件名,取消则返回空文本。 .参数 父窗口, 整数型 .参数 过滤器, 文本型, , 例:"文本文件(*.txt),*.txt|excel与word,*.xls;*.doc" .参数 类型, 整数型 .子程序 对话框_颜色选择, 整数型, 公开 .参数 父窗口, 整数型 .子程序 对话框_字体选择, 整数型, 公开 .参数 父窗口, 整数型 .参数 返回结果, 模块_字体信息, 参考 .子程序 二到十, 整数型, 公开, 将二进制转换成十进制(返回十进制整数) .参数 二进制文本, 文本型, , 欲转换的二进制 .子程序 发送字符串, , 公开, sendkeys 将一个或多个按键消息发送到指定窗口,就如同用键盘进行输入一样 (无返回值) .参数 窗口标题, 文本型, 可空, 向指定窗口发送.窗口标题关键字 .参数 文本, 文本型, , 字符串表达式,指定要发送的按键消息(详情见百度sendkeys词条) .参数 等待, 逻辑型, 可空, 指定等待方式的值 默认为假:按键发送出去立刻返回 真:按键消息在返回到过程之前加以处理 .子程序 发送字符串1, , 公开, sendkeys 将一个或多个按键消息发送到活动窗口,就如同用键盘进行输入一样 (无返回值) .参数 文本, 文本型, , 字符串表达式,指定要发送的按键消息(详情见百度sendkeys词条) .参数 等待, 逻辑型, 可空, 指定等待方式的值 默认为假:按键发送出去立刻返回 真:按键消息在返回到过程之前加以处理 .子程序 复制文件夹, 逻辑型, 公开, 成功返回真,失败返回假 .参数 被复制的文件夹, 文本型 .参数 复制到的文件夹, 文本型 .参数 是否处理事件, 逻辑型, 可空 .子程序 更改标题, 逻辑型, 公开, 更改指定窗口句柄的窗口标题(成功返回真,失败返回假) .参数 窗口句柄, 整数型, 可空, 可空:则更改当前窗口的标题 .参数 新标题, 文本型, , 新的窗口标题 .子程序 更改类名, 文本型, 公开, 更改一次指定类名(必须在欲更改的类名的程序运行前-执行)(如果成功则返回更改后的类名) .参数 新类名, 文本型, 可空, 更改后的新类名 可空为随机类名5-20位随机字母数字的组合 .参数 旧类名, 文本型, 可空, 欲更改的类名 可空则默认为易语言程序窗口类名“Afx:10000000:b:10011:1900015:0” .子程序 关闭光驱, 逻辑型, 公开, 关闭光驱门。 mciSendString .子程序 关闭系统, , 公开, 提供关闭或重新启动计算机 .参数 关闭方式, 整数型, 可空, 默认为1 关机 2 重启 3 注销 .参数 是否强制执行, 逻辑型, 可空, 是否不等待其它程序退出,直接执行,默认为假 .子程序 还原字节集1, 字节集, 公开, 还原易语言形式字节集的文本到字节集 .参数 文本, 文本型, , 如: { 102, 204, 14, 5 } .子程序 还原字节集2, 字节集, 公开, 还原十六进制字符串形式字节集的文本到字节集 .参数 文本, 文本型, , 如: 45 3F 58 1D 0A .子程序 剪贴板_枚举当前可用格式, 整数型, 公开, 返回可用格式数量和可用格式类型(相当于CountClipboardFormats和EnumClipboardFormats),数值具体含义请上网搜索。 .参数 结果数组, 整数型, 参考 可空 数组, 留空则只返回可用格式数量。 .子程序 剪贴板_清空, 逻辑型, 公开, 清空剪贴板内所有数据。 .子程序 剪贴板_取HTML, 文本型, 公开, 取剪贴板中的HTML数据。 .子程序 剪贴板_取图片, 字节集, 公开, 取已复制到剪贴板的图片数据(包括从网页上复制下来的图片),返回的图片格式为位图。 .子程序 剪贴板_取文本, 文本型, 公开, 取已复制到剪贴板中的文本。 .子程序 剪贴板_取文件, 整数型, 公开, 取已经复制到剪贴板的文件名,返回文件个数。 .参数 文件列表, 文本型, 参考 可空 数组, 留空则只返回文件数量。 .参数 状态, 逻辑型, 参考 可空, 用来接收文件列表中这些文件的状态:返回真代表这些文件待移动(即用户对文件执行了剪切操作);返回假代表这些文件待粘贴(即用户对文件执行了复制操作)。 .子程序 剪贴板_置图片, 逻辑型, 公开, 将指定图片复制到剪贴板。 .参数 图片, 字节集 .子程序 剪贴板_置文本, 逻辑型, 公开, 将指定文本复制到剪贴板。 .参数 文本, 文本型 .子程序 剪贴板_置文件, 逻辑型, 公开, 将指定文件复制到剪贴板,成功返回真,失败返回假。 .参数 文件列表, 文本型, 数组, 欲复制到剪贴板的文件列表 .参数 状态, 逻辑型, 可空, 设置当前的文件状态,默认为假。真表示文件待移动(相当于对文件列表里的文件执行剪切操作);假表示文件待粘贴(相当于对文件列表里的文件执行复制操作)) .子程序 进程结束, 逻辑型, 公开, 终止一个进程(成功返回真,失败返回假) .参数 进程ID, 整数型, , 欲结束的进程ID .子程序 进程枚举, 整数型, 公开, 失败返回0,成功返回进程数量(该命令为高级成员命令) .参数 进程信息, 进程信息型, 可空 数组, 返回的进程信息 数组 .子程序 进程取ID, 整数型, 公开, 取指定进程进程ID(返回第一个进程ID,失败返回-1) .参数 进程名, 文本型, , 程序进程名 .参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写 .子程序 进程取ID数组, 整数型, 公开, 取指定进程名称的所有进程进程ID(返回进程ID数目,没有返回0) .参数 进程ID数组, 整数型, 可空 数组, 存放进程ID数组变量 .参数 进程名, 文本型, , 程序进程名 .参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写 .子程序 进程是否存在, 逻辑型, 公开, 判断指定进程是否存在(此判断与进程其它信息无关联)(存在返回真,不存在或失败返回假) .参数 进程名, 文本型, , 欲检测的进程名 .子程序 进程是否有效, 逻辑型, 公开, 判断进程ID是否有效(有效返回真,无效或失败返回假) .参数 进程ID, 整数型, , 欲检测的进程标识 .子程序 进程隐藏, 整数型, 公开, 通过断链方式隐藏进程(返回链表值,用于恢复该进程,失败返回-1) .参数 进程ID, 整数型, 可空, 目的进程ID (默认自进程ID) .参数 链表值, 整数型, 可空, 欲还原的进程链表地址值 如果隐藏进程请留空 .子程序 进程暂停, 逻辑型, 公开, 将指定进程暂停(成功返回真,失败返回假) .参数 进程ID, 整数型, , 欲被暂停进程进程ID .参数 状态, 逻辑型, 可空, 可空为真:暂停进程 假:恢复进程 .子程序 禁止关闭系统, , 公开, 可以禁止计算机关机、重启、注销 ;注意在调试状态无效 .参数 窗口句柄, 整数型 .子程序 句柄是否有效, 逻辑型, 公开, 判断窗口句柄是否有效(返回真,无效返回假) .参数 窗口句柄, 整数型 .子程序 控件消息, , 公开, 向指定控件中投递消息,更多常量可参考windows消息大全 .参数 窗口句柄, 整数型 .参数 消息类型, 整数型, , #消息_复制 #消息_粘贴 #消息_全选 #消息_清空 #消息_删除 #消息_剪切 #消息_撤销 #消息_获得焦点 #消息_失去焦点 #消息_单击 #消息_右击 #消息_销毁 #消息_退出 #消息_结束 .子程序 路径收缩, 文本型, 公开, 将指定路径收缩(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:c:\progra~1\ .参数 路径, 文本型, , 欲收缩的路径 .子程序 枚举窗口, 整数型, 公开, 枚举所有窗口,返回窗口句柄数目,失败返回0 .参数 句柄数组, 整数型, 可空 数组, 返回的所有窗口句柄数组 .子程序 枚举窗口线程, 整数型, 公开, 枚举所有窗口线程标识符,返回窗口线程标识符数目,失败返回0 .参数 线程数组, 整数型, 可空 数组, 返回的所有窗口线程ID数组 .子程序 枚举窗口信息, 整数型, 公开, 枚举所有可见窗口的句柄的窗口信息(返回数组数目,失败返回0) .参数 临时窗口信息, 窗口信息型, 数组, 枚举出来的窗口信息数组 .子程序 枚举任务窗口, 整数型, 公开, 枚举指定窗口线程相关联的窗体句柄,返回窗口句柄数目,失败返回0 .参数 窗口句柄, 整数型 .参数 句柄数组, 整数型, 可空 数组, 返回的所有窗口句柄数组 .子程序 枚举子窗口, 整数型, 公开, 枚举指定窗口的所有子级窗口或控件句柄,支持不可见子窗口或子控件,返回句柄数目,失败返回0 .参数 父窗口句柄, 整数型, 可空, 指定父窗口句柄.如果父窗口为0,则取出所有顶级窗口(含不可见窗口) .参数 句柄数组, 整数型, 可空 数组, 返回的所有窗口句柄数组 .子程序 模块_关闭所有媒体, 整数型, 公开, 关闭所有已经打开的媒体。注意:该操作对所有使用MCI进行播放的媒体都有效!返回0表示命令成功完成,返回非零表示命令失败。 .子程序 模块_毫秒到时间, 文本型, 公开, 将毫秒值转换为诸如:"3:03:12"之类的文本格式 .参数 参_毫秒值, 整数型 .子程序 模块_取错误信息文本, 文本型, 公开, 根据各种命令执行后返回的数值查询相应的文本说明。 .参数 参_错误代码, 整数型, , 支持类中对多媒体操作的各种方法的整型返回值 .子程序 模块_取字节集位图句柄, 整数型, 公开, 仅支持24位色位图 .参数 参数_字节集位图, 字节集 .子程序 模块_设置父窗口, , 公开, 把易控件放入到自建控件内。注意:易中的标准控件可能变得不响应事件:如按扭、列表框、树形框 .参数 参数_易控件句柄, 整数型 .参数 参数_父窗口, 整数型, , 自建控件句柄 .子程序 模块_设置字体, , 公开, 给指定的窗口设置字体 .参数 参窗口句柄, 整数型 .参数 参字体名, 文本型 .参数 参字号大小, 整数型, 可空 .参数 加粗, 逻辑型, 可空 .参数 斜体, 逻辑型, 可空 .参数 下划线, 逻辑型, 可空 .参数 删除线, 逻辑型, 可空 .子程序 魔法字体, , 公开, 彩色动态字体[我自己的] .参数 内容, 文本型, , 欲加入的内容 .参数 对象句柄, 整数型, , 要加入控件句柄 .参数 随机渐变, 逻辑型, 可空, 真为随机渐变 ,假 不进行随机渐变 .参数 字体抖动, 逻辑型, 可空, 真为字体抖动 ,假 不进行字体抖动 .子程序 目录是否存在, 逻辑型, 公开, 判断指定目录是否存在(存在返回真,不存在返回假) .参数 目录名, 文本型, , 欲判断的目录 .子程序 内存搜索, 整数型, 公开, 进行首次内存搜索(返回结果数目,失败或没有返回0) .参数 进程ID, 整数型, , 进程ID .参数 搜索内容, 字节集, , 欲搜索的内容 其他类型-需自行转换为字节集类型 .参数 结果地址, 整数型, 数组, 用来保存搜索的结果 .子程序 内存搜索整数, 整数型, 公开, 针对上次的搜索进行对内存数值的变化进行再一次搜索(返回结果数目,失败或没有返回0) .参数 结果地址, 整数型, 数组, 用来保存搜索的结果 .参数 搜索的整数, 整数型, , 从上一次搜索结果地址中再次搜索的整数,也可以是模糊搜索 #内存_不变的数值 #内存_变大的数值 #内存_变小的数值 #内存_改变的数值 .子程序 内存优化, , 公开, 内存优化,其实就是将实际内存转移至虚拟内存,以减少内存占用,周期中使用 .子程序 内存再次搜索, 整数型, 公开, 针对上次的搜索进行再一次搜索(返回结果数目,失败或没有返回0) .参数 结果地址, 整数型, 数组, 用来保存搜索的结果 .参数 搜索的数据, 字节集, , 从上一次搜索结果地址中再次搜索的数据内容 .子程序 内存中运行EXE, 逻辑型, 公开, 可以直接运行资源中的程序,不必释放。成功返回真,失败返回假。 .参数 欲执行的程序, 字节集, , 欲执行的程序,不支持某些加了壳的程序,请自行测试。 .参数 命令行, 文本型, 可空, 为程序提供的命令行参数,不需要请留空。 .参数 外壳程序路径, 文本型, 可空, 外壳程序的路径(如果用系统程序做外壳,如cmd.exe、svchost.exe,可以实现穿防火墙,呵呵),不支持某些程序,请自行测试;不在当前目录下要提供绝对路径;留空默认为cmd.exe,如果无法运行,请换用不同的程序尝试。 .参数 等待程序运行完毕, 逻辑型, 可空, 默认为假,即不等待。 .参数 窗口显示方式, 整数型, 可空, 1#隐藏窗口; 2#普通激活; 3#最小化激活; 4#最大化激活; 5#普通不激活; 6#最小化不激活。如果省略本参数,默认为“普通激活”方式。 .参数 运行信息, 运行信息, 参考 可空, 用来接收在内存中执行的exe的运行信息(进程、主线程的句柄和ID)。不需要可留空。 .子程序 强力打开进程, 整数型, 公开 .参数 读取方式, 整数型 .参数 继承, 逻辑型 .参数 PID, 整数型, , 进程进程标识符 .子程序 强力结束进程, 逻辑型, 公开 .参数 进程句柄, 整数型 .参数 退出状态, 整数型, , 退出0 .子程序 强力枚举窗口, 整数型, 公开, 强力穷举窗口句柄,不得以而为之.(成功返回有效窗口句柄的数目,失败返回0) .参数 窗口句柄, 整数型, 可空 数组, 用于存放窗口句柄的数组变量 .子程序 强力取句柄, 整数型, 公开, 强力穷举窗口句柄,不得以而为之.(成功返回窗口句柄,失败返回-1) .参数 窗口标题, 文本型, 可空, 可以是窗口标题的关键字.如果重复上次获取下一个窗口请留空. .子程序 取API错误信息, 文本型, 公开, 针对之前调用的api函数,用这个函数取得扩展错误信息 .子程序 取CPU序列号, 文本型, 公开, 获取CPU序列号 .子程序 取DOS返回, 文本型, 公开, 取出一个dos命令的返回信息 .参数 dos命令, 文本型, , 欲执行的dos命令 .参数 即时回显, 子程序指针, 可空, DOS即时回显信息回调函数 回调DOS函数(回显信息) 返回逻辑值,真:停止,假:继续 .子程序 取MAC地址, 文本型, 公开, 获取网卡MAC地址(如:00:53:45:00:00:00) .子程序 取System32目录, 文本型, 公开 .子程序 取本机IP, 整数型, 公开, 返回IP数 .参数 欲装载的数组, 文本型, 可空 数组, 取出来的IP .子程序 取标题, 文本型, 公开, 取指定窗口句柄的窗口标题(返回窗口标题,失败返回空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取操作系统, 文本型, 公开, 获取操作系统信息 .参数 版本号, 文本型, 可空, 获取的操作系统的版本号 .参数 内部版本号, 文本型, 可空, 获取的操作系统的内部版本号 .子程序 取程序路径, 文本型, 公开, 取指定进程名的程序启动路径(成功返回路径,失败或进程不存在返回空) .参数 进程名, 文本型, , 程序进程名 .参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写 .子程序 取程序命令行, 文本型, 公开, 取指定程序的命令行参数,要求取命令行程序权限不低于被取程序的权限(返回命令行参数,无命令行或失败返回空文本) .参数 进程名, 文本型, , 欲取命令行参数的进程名 .参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写 .子程序 取窗口进程, 文本型, 公开, 取指定窗口句柄的窗口程序进程名(返回进程名,失败返回空文本) .参数 窗口句柄, 整数型 .子程序 取窗口进程ID, 整数型, 公开, 取指定窗口句柄的窗口进程ID(返回进程ID,失败返回-1) .参数 窗口句柄, 整数型 .子程序 取窗口内大小, , 公开, 取指定窗口句柄的窗口客户区的大小 .参数 窗口句柄, 整数型, 可空, 可空:则取当前窗口大小 .参数 临时宽度, 整数型, 参考, 返回的窗口宽度 .参数 临时高度, 整数型, 参考, 指定的窗口高度 .子程序 取窗口内顶点, 坐标型, 公开, 取指定窗口句柄的窗口客户区(左上角)顶点位置 .参数 窗口句柄, 整数型, 可空, 可空:则取当前窗口句柄的位置 .子程序 取窗口线程ID, 整数型, 公开, 取指定窗口句柄的窗口线程ID(返回进程ID,失败返回0) .参数 窗口句柄, 整数型 .子程序 取磁盘序列号, 整数型, 公开, 取得指定磁盘的序列号(成功返回磁盘的序列号,失败返回0,如果是读卡器或光驱或软驱等没有插入卡或光盘或软盘将会失败) .参数 盘符, 文本型, , 欲取序列号的磁盘盘符 (如: F:) .参数 卷标, 文本型, 参考 可空, 用于存放卷名(卷标)的变量 .参数 系统名称, 文本型, 参考 可空, 用于存放文件系统名称的变量 (如FAT,NTFS以及其他) .子程序 取当前窗口, 整数型, 公开, 取得当前位于前台窗口句柄(返回句柄,失败返回0) .子程序 取当前父窗口, 整数型, 公开, 取得当前位于前台的父级窗口句柄(返回句柄,失败返回0) .子程序 取点标题, 文本型, 公开, 取出指定点的组件上的文字内容或标题(返回文字内容) .参数 水平位置, 整数型, 可空, (可空为鼠标当前坐标x) 文字所在的x坐标“X轴光标” .参数 垂直位置, 整数型, 可空, (可空为鼠标当前坐标y) 文字所以的y坐标“Y轴光标” .子程序 取点颜色, 整数型, 公开, 取屏幕中或窗口区域某点颜色值或颜色属性 .参数 窗口句柄, 整数型, 可空, 默认为屏幕 .参数 X, 整数型 .参数 Y, 整数型 .参数 类型, 整数型, 可空, 默认为0颜色值 1 #R色 2 #G色 3 #B色 6 #色彩度 .子程序 取分辨率, , 公开, 获取屏幕分辨率(无返回值) .参数 色深, 短整数型, 参考 可空 .参数 屏幕宽度, 短整数型, 参考 可空 .参数 屏幕高度, 短整数型, 参考 可空 .参数 屏幕刷新率, 短整数型, 参考 可空 .子程序 取父进程ID, 整数型, 公开, 取得父级进程ID,失败返回-1 .参数 进程ID, 整数型 .子程序 取汉字笔画, 整数型, 公开, 返回指定单个汉字的笔画数,支持6725个常用汉字。 .参数 汉字, 文本型 .子程序 取计算机名, 文本型, 公开, 获取计算机名 .子程序 取焦点句柄, 整数型, 公开, 取光标焦点处窗口句柄(返回句柄,失败返回0) .子程序 取进程ID, 整数型, 公开, 取指定进程进程ID(返回第一个进程ID,失败返回0) .参数 进程名, 文本型, , 区分大小写 .子程序 取进程窗口, 整数型, 公开, 通过进程ID取出指定进程的所有顶级窗口句柄(返回该进程中所有顶级窗口句柄的数目,失败返回0) .参数 进程ID, 整数型, , 窗口所在进程ID .参数 所有窗口, 整数型, 可空 数组, 返回该进程中所有顶级窗口句柄 .子程序 取进程窗口信息, 整数型, 公开, 获取指定进程的窗口信息(返回进程的主窗口句柄,失败返回0) .参数 进程ID, 整数型 .参数 焦点窗口, 整数型, 参考 可空, 在窗口非激活状态没有获得焦点,将得到0值 .参数 焦点横坐标, 整数型, 参考 可空, 在窗口非激活状态没有获得焦点,将得到0值 .参数 焦点纵坐标, 整数型, 参考 可空, 在窗口非激活状态没有获得焦点,将得到0值 .子程序 取进程路径, 文本型, 公开, 取指定进程的程序启动路径(成功返回路径,失败或进程不存在返回空) .参数 进程ID, 整数型 .子程序 取进程路径及命令行1, 文本型, 公开, 获取目标进程的映像路径及命令行参数。(失败返回空文本) .参数 进程ID, 整数型 .子程序 取进程路径及命令行2, 逻辑型, 公开, 获取目标进程的映像路径及命令行参数。成功返回真,失败返回假。 [斩月] .参数 lpstrImagePathAndCommandLine, 文本型, 参考, 用于保存目标进程的映像路径及命令行参数的文本型变量 .子程序 取进程名, 文本型, 公开, 通进进程ID取得该进程文件名 .参数 进程ID, 整数型 .子程序 取进程命令行, 文本型, 公开, 取指定进程的命令行参数,要求取命令行程序权限不低于被取程序的权限(返回命令行参数,无命令行或失败返回空文本) .参数 进程ID, 整数型 .子程序 取进程模块, 整数型, 公开, 失败为0,成功返回模块数量(该命令为高级成员命令) .参数 进程ID, 整数型, 可空, 为空 则取当前进程模块 .参数 模块信息数组, 模块信息型, 可空 数组, 返回的模块信息 数组 .子程序 取进程用户名, 文本型, 公开, 通进进程ID取得该进程权限的用户名 .参数 进程ID, 整数型 .子程序 取句柄1, 整数型, 公开, 通过进程,类名或标题关键字来取窗口句柄(返回第一个符合条件的句柄,失败返回-1) .参数 进程名, 文本型, 可空, 欲取窗口句柄的窗口程序进程名(注意大小写) .参数 类名, 文本型, 可空, 欲取窗口句柄的窗口类名 .参数 标题, 文本型, 可空, 欲取窗口句柄的窗口标题关键字,模糊匹配 .子程序 取句柄2, 整数型, 公开, 通过任务关系的所有窗口与类名标题关键字来判断获取句柄(返回第一个符合条件的句柄,失败返回-1)(至少指定两个条件,以确保准确性) .参数 进程名, 文本型, 可空, 欲取窗口句柄的窗口程序进程名(注意大小写) .参数 类名, 文本型, 可空, 欲取窗口句柄的窗口类名 .参数 标题, 文本型, 可空, 欲取窗口句柄的窗口标题关键字,模糊匹配 .子程序 取句柄数组1, 整数型, 公开, 通过进程,类名或标题关键字来取窗口句柄(返回符合条件的句柄数目,失败返回0) .参数 句柄数组, 整数型, 数组, 返回的窗口句柄数组 .参数 进程名, 文本型, 可空, 欲取窗口句柄的窗口程序进程名(注意大小写) .参数 类名, 文本型, 可空, 欲取窗口句柄的窗口类名 .参数 标题, 文本型, 可空, 欲取窗口句柄的窗口标题关键字 .子程序 取句柄数组2, 整数型, 公开, 通过任务关系的所有窗口与类名标题关键字来判断获取句柄(返回符合条件的句柄数目,失败返回0)(勿必指定多个条件,以确保准确性) .参数 句柄数组, 整数型, 数组, 返回的窗口句柄数组 .参数 进程名, 文本型, 可空, 欲取窗口句柄的窗口程序进程名(注意大小写) .参数 类名, 文本型, 可空, 欲取窗口句柄的窗口类名 .参数 标题, 文本型, 可空, 欲取窗口句柄的窗口标题关键字 .子程序 取快捷方式指向, 文本型, 公开, 获取指定快捷方式指向的文件路径 .参数 lnk名称, 文本型, , 快捷方式文件名全路径文件名 .子程序 取类名, 文本型, 公开, 取指定窗口句柄的窗口类名(返回窗口类名,失败返回空) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取浏览器版本, 文本型, 公开, 获得IE的版本(返回IE版本) .参数 内部版本号, 文本型, 可空, 获以的内部版本号 .子程序 取路径文件名, 文本型, 公开, 取指定路径中的文件名(返回文件名) .参数 路径, 文本型, , 完整路径 .子程序 取模块路径, 文本型, 公开, 取出当前进程模块所在目录路径,失败返回空 .参数 模块名, 文本型, 可空, 默认为执行文件名 模块名如:krnln.fne,kernel32.dll,User32.dll .子程序 取配置项名称, 整数型, 公开, 取配置文件指定节名中所有配置项名称(成功返回配置项名称数目,失败返回-1) .参数 配置文件名, 文本型, , 指定配置文件的名称,通常以.ini作为文件名后缀(可为任意后缀) .参数 节名称, 文本型, , 包含欲读入配置项所处节的名称。 .参数 配置项名称, 文本型, 参考 数组, 返回节名中所有配置项名称的文本数组 .子程序 取驱动器列表, 整数型, 公开, 返回驱动器数量 .参数 保存驱动器列表, 文本型, 可空 数组 .参数 类型, 整数型, 可空, 默认为0所有驱动器 1 硬盘驱动器 2 光盘驱动器 3 可移动驱动器 4 网络驱动器。 .子程序 取鼠标坐标, 坐标型, 公开, 取当前鼠标所在坐标(返回坐标) .参数 句柄, 整数型, 可空, 鼠标坐标所在的窗口句柄,取出鼠标所在窗口中的坐标 可空为:在屏幕中的坐标 .子程序 取特殊目录, 文本型, 公开, 取特定的目录(返回所要取的指定目录名 无效返回空) .参数 欲获取目录类型, 整数型, 可空, 0我的桌面 1临时目录 5我的文档 6我的收藏夹 7我的启动 11我的开始菜单 20系统字体 36Windows安装目录 37系统目录 [99更多] .子程序 取文件创建时间, 日期时间型, 公开 .参数 文件名, 文本型 .子程序 取文件访问时间, 日期时间型, 公开 .参数 文件名, 文本型 .子程序 取文件夹尺寸, 双精度小数型, 公开, (成功返回文件夹尺寸,失败返回-1) .参数 文件夹路径, 文本型 .参数 子文件夹数量, 整数型, 参考 可空, 保存子文件夹数量 .参数 子文件数量, 整数型, 参考 可空, 保存子文件数量 .参数 是否处理事件, 逻辑型, 可空 .子程序 取文件修改时间, 日期时间型, 公开 .参数 文件名, 文本型 .子程序 取系统进程, 整数型, 公开, NT方式取得系统中所有进程,返回进程数 .参数 进程名数组, 文本型, 参考 数组, 存放进程名的数组变量 .子程序 取系统目录, 文本型, 公开 .子程序 取系统用户名, 文本型, 公开, 获取当前系统的用户名 .子程序 取线程窗口, 整数型, 公开, 通过窗口的线程标识符获取窗口句柄(成功返回窗口句柄,失败返回0) .参数 线程ID, 整数型, 可空, 如果线程ID为空,则取当前线程 .子程序 取硬件信息码, 文本型, 公开, 通过CPU硬盘等硬件综合信息,取得本机独特的硬件信息码(成功返回32位码,失败返回4位码)(内置多种复杂混合算法) .参数 密码, 文本型, , 输入相应的密码 .子程序 取运行目录_, 文本型, 公开, 取当前被执行的程序文件所处的目录,调试时为执行文件所释放到的目录而不是易语言源代码目录! .子程序 取子窗口, 整数型, 公开, 查找指定窗口的子级窗口(返回子窗口句柄) .参数 父句柄, 整数型, 可空, 指定父窗口句柄 可空:为桌面.找顶级窗口 .参数 子类名, 文本型, 可空, 欲查找的子窗口类名 .参数 子标题, 文本型, 可空 .参数 起始句柄, 整数型, 可空, 从该句柄后开始查找, 可空:找第一个符合条件的 .子程序 取坐标句柄, 整数型, 公开, 取指定坐标位置所在窗口组件的句柄(返回句柄) .参数 水平位置, 整数型, , 句柄组件的x坐标“X轴光标” .参数 垂直位置, 整数型, , 句柄组件的y坐标“Y轴光标” .子程序 取坐标距离, 整数型, 公开, 返回两坐标点之间的距离 .参数 坐标1, 坐标型 .参数 坐标2, 坐标型 .子程序 十到八, 文本型, 公开, 将十进制转换成八进制(返回八进制文本) .参数 十进制数, 长整数型, , 欲转换的十进制数 .子程序 十到二, 文本型, 公开, 将十进制转换成二进制(返回二进制文本) .参数 十进制数, 整数型, , 欲转换的十进制 .子程序 十到十六, 文本型, 公开, 将十进制转换成十六进制(返回十六进制文本) .参数 十进制数, 长整数型, , 待转换的十进制数 .参数 是否不去零, 逻辑型, 可空, 默认为假:去0 真:不去0 .子程序 十六到十1, 整数型, 公开, 将十六进制转换成十进制(返回十进制文本) .参数 十六进制文本, 文本型, , 待转换的十六进制文本 .参数 返回结果, 文本型, 参考 可空, 返回文本结果(如十进制数超出整数范围,可通过返回结果获得十进制文本) .子程序 十六到十2, 整数型, 公开, 将十六进制转换成十进制(返回十进制文本) .参数 十六进制转换数据, 文本型 .子程序 十六文本至长整数, 长整数型, 公开, (进程隐藏) .参数 x, 文本型, , 要转换的十六进制文本 .子程序 鼠标捕获, 整数型, 公开, 将鼠标捕获设置到指定的窗口.在鼠标按钮按下的时候,这个窗口会为当前应用程序或整个系统接收所有鼠标输入(返回之前拥有鼠标捕获的窗口的句柄) .参数 窗口句柄, 整数型, 可空, 要接收所有鼠标输入的窗口的句柄,如果留空则释放鼠标捕获 .子程序 鼠标归位, , 公开, 恢复当前鼠标坐标到"鼠标记录"的坐标点或移动鼠标到指定点 .参数 坐标, 坐标型, 可空, 可空:恢复到上次记录的坐标点 .子程序 鼠标记位, 坐标型, 公开, 记录当前鼠标坐标(返回所记录的当前鼠标 坐标_) .子程序 鼠标键, , 公开, 模拟鼠标按键 .参数 键, 整数型, 可空, 可空:为左键 1 #左键 2 #右键 3 #中键 .参数 控制, 整数型, 可空, 可空:为单击 1 #单击 2 #双击 3 #按下 4 #放开 .子程序 鼠标限制, , 公开, 限制鼠标的活动范围 .参数 临时左边, 整数型, 可空, 可空为0 .参数 临时顶边, 整数型, 可空, 可空为0 .参数 临时右边, 整数型, 可空, 可空为屏幕宽度 .参数 临时底边, 整数型, 可空, 可空为屏幕高度 .子程序 鼠标消息, , 公开, 向指定窗口发送鼠标动作消息 .参数 窗口句柄, 整数型, 可空, 可空:为桌面超级列表框句柄 接收鼠标消息窗口句柄 .参数 水平坐标, 整数型, 可空, 可空:为原水平坐标不变 移动目标鼠标水平坐标 (注:坐标为参数一窗口句柄中的坐标) .参数 垂直坐标, 整数型, 可空, 可空:为原垂直坐标不变 移动目标鼠标垂直坐标 .参数 键, 整数型, 可空, 可空:为左键_ 1 #左键_ 2 #右键_ 3 #中键_ 4 #中键上滚动_ 5 #中键下滚动_(滚动前后请按下放开中键) .参数 控制, 整数型, 可空, 可空:为单击_ 1 #单击_ 2 #双击_ 3 #按下_ 4 #放开_ .子程序 鼠标移动1, , 公开, 模拟鼠标移动(无返回值) .参数 窗口句柄, 整数型, 可空, 可空:相对桌面移动鼠标 句柄有效则相对窗口中坐标移动 .参数 水平坐标, 整数型, , 水平坐标 .参数 垂直坐标, 整数型, , 垂直坐标 .子程序 鼠标移动2, , 公开, SendInput模拟鼠标移动 目标坐标与实际坐标有一像素点误差属正常现象! .参数 窗口句柄, 整数型, 可空, 可空:相对桌面移动鼠标 句柄有效则相对窗口中坐标移动 .参数 水平坐标, 整数型 .参数 垂直坐标, 整数型 .子程序 提升进程权限, 逻辑型, 公开, 提升进程到指定权限( #备份 #启动 #关机 #调试) .参数 目标进程, 整数型, 可空, 为空表示当前线程 .参数 权限类别, 文本型, 可空, 为空:#调试 .子程序 提升进程权限D1, 逻辑型, 公开, 成功返回真,把一个进程的权限提升到调试级权限 .参数 进程ID, 整数型, 可空, 可空为提升当前进程 .子程序 提升进程权限D2, 逻辑型, 公开, 成功返回真,把一个进程的权限提升到调试级权限 .子程序 网页_禁止右键, , 公开 .参数 句柄, 整数型 .子程序 文本发送, , 公开, 向指定编辑框后台发送文本内容(无返回值) .参数 临时句柄, 整数型, , 接收消息的编辑框的句柄 .参数 临时内容, 文本型, , 发送的文本内容 .子程序 文本复制, 文本型, 公开, 复制指定文本 必要时会自动激活窗口 .参数 句柄, 整数型, 可空, 文本所在处的窗口句柄 可空为当前窗口焦点处 .子程序 文本全选, , 公开, 选定指定文本 必要时会自动激活窗口(无返回值) .参数 句柄, 整数型, 可空, 文本所在处的窗口句柄 可空为当前窗口焦点处 .参数 是否全选, 逻辑型, 可空, 可空为假:取消全选 真:全选 .子程序 文本输入, , 公开, 向指定窗口句柄中窗口中后台输入文本内容,并等待输入完毕后返回,对特殊屏蔽的游戏有效!(无返回值) .参数 句柄, 整数型, , 接收消息的窗口句柄 .参数 文本, 文本型, , 发送的文本内容 .参数 速, 字节型, 可空, 默认为3 如出现乱码现象,请将该值设大一点 .子程序 文本投递, , 公开, 向指定窗口句柄的窗口中后台发送文本内容,对游戏有效!(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 文本内容, 文本型, , 发送的文本内容 .子程序 文本粘贴, , 公开, 粘贴指定文本 必要时会自动激活窗口(无返回值) .参数 句柄, 整数型, 可空, 欲粘贴文本处的窗口句柄 可空为当前窗口焦点处 .参数 文本内容, 文本型, 可空, 欲粘贴的文本内容 可空:清除内容 .子程序 文件夹进度同步, , 公开, 将一个目录与另一个目录同步(自动复制本地缺少的文件,替换掉大小不同的文件) .参数 服务器目录, 文本型, , 参考目录 .参数 本地目录, 文本型, , 欲被同步的目录 .参数 显示标签, 标签, , 显示当前同步文件的标签 .参数 进度条, 进度条, , 显示同步进度的进度条 .子程序 文件夹浏览, 文本型, 公开, 浏览文件夹内支持创建文件夹 支持显示文件 编辑框 (返回被选择文件或文件夹路径) .参数 标题, 文本型, 可空, 设置标题 .参数 显示文件, 逻辑型, 可空, 默认为假。 .参数 初始目录, 文本型, 可空, 设置一个初始目录,默认为我的电脑 .参数 地址栏, 逻辑型, 可空, 是否包含编辑框,可编辑,默认为假 .参数 新样式, 逻辑型, 可空, 有新建按钮及右键菜单,默认为真 .子程序 文件夹双进度同步, , 公开, 将一个目录与另一个目录同步(自动复制本地缺少的文件,替换掉大小不同的文件) .参数 服务器目录, 文本型, , 参考目录 .参数 本地目录, 文本型, , 欲被同步的目录 .参数 总进度, 进度条, , 显示同步进度的进度条 .参数 单进度, 进度条 .参数 显示总进度, 标签 .参数 显示单进度, 标签 .参数 显示当前目录, 标签 .参数 显示当前文件, 标签 .参数 更新数, 标签, 可空 .子程序 文件夹停止同步, , 公开, 停止一些同步命令: "文件搜索","文件夹同步","文件夹进度同步","文件夹双进度同步","文件夹同步清理" .子程序 文件夹同步, , 公开, 将一个目录与另一个目录同步(自动将文件大小不同,多余的文件或目录删除,缺少的文件复制.) .参数 服务器目录, 文本型, , 参考目录 .参数 本地目录, 文本型, , 欲被同步的目录 .子程序 文件夹同步清理, , 公开, 将本地目录中多余的或不同的文件删除 .参数 服务器目录, 文本型, , 参考目录 .参数 本地目录, 文本型, , 欲清理的目录 .子程序 文件进度复制, 逻辑型, 公开 .参数 被复制的文件名, 文本型 .参数 复制到的文件名, 文本型 .参数 回调进度函数, 子程序指针, 可空, 回调函数(总尺寸,已复制,进度%) 回调函数的返回值可以为空,如果回调函数的返回值为真或不等0则停止复制 .子程序 文件搜索, 文本型, 公开, 在指定目录下搜索文件,返回第一个符合条件的文件路径 .参数 临时目录, 文本型, , 欲寻找的目录 .参数 文件名, 文本型, , 欲寻找文件名 .参数 显示标签, 标签, , 用来显示搜索路径的标签 .子程序 系统变速, , 公开, NT,2000,XP系统原速 =11941; ME,98系统原速=5954; XP.SP2=1200 .参数 新速值, 整数型, , 值小加速,值大减速 .子程序 下载, 字节集, 公开, 读网络文件,并下载文件到本地(成功返回网络文件字节集数据,失败返回空字节集) .参数 网址, 文本型, , 欲访问的网络地址 .参数 保存路径, 文本型, 可空, 可空:仅返回字节集数据,将下载的内容保存到本地文件 .子程序 销毁定时器, 整数型, 公开, 销毁已经创建的定时器(定时器不使用了一定要销毁!) .参数 窗口句柄, 整数型, 可空, 创建定时器时指定的句柄 .参数 标志, 整数型, , 创建定时器时所返回的标志 .子程序 销毁线程, 逻辑型, 公开, 强制结束指定线程,不推荐使用(无返回值) .参数 线程句柄, 整数型, , 欲结束的线程号 .子程序 写磁盘扇区, 逻辑型, 公开 .参数 扇区号, 整数型 .参数 扇区内容, 字节集 .子程序 写内存文本型, 逻辑型, 公开, 往内存中写入文本数据(成功返回真,失败返回假) .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 内容, 文本型, , 写入数据 .子程序 写内存整数型, 逻辑型, 公开, 往内存中写入四字节数据(成功返回真,失败返回假) .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 变量, 整数型, , 写入数据 .子程序 写内存字节集, 逻辑型, 公开, 往内存中写入字节集数据(成功返回真,失败返回假) .参数 进程ID, 整数型, , 进程ID .参数 地址, 整数型, , 内存地址 .参数 数据, 字节集, , 写入数据 如果为其它数据类型,可以用 到字节集() 将数据转换为字节集 .参数 写入长度, 整数型, 可空, 默认为全部数据,(参考: 1字节型 2短整数型 4长整数型,小数型,指针 8长整数型,双精度小数型,日期时间型) .子程序 写启动项, 逻辑型, 公开, 写入系统启动项(成功返回真,失败返回假) .参数 启动文件, 文本型, 可空, 需要加入启动项的文件名 如果为空则删除启动项 .参数 启动方式, 整数型, 可空, 0 Run项启动 1 Load项启动 2 Shell项启动 .子程序 写物理内存, 整数型, 公开, 失败返回-1,成功返回0 (进程隐藏) .参数 地址, 长整数型 .参数 数据, 字节集, , <=4096 .子程序 信息框_, 整数型, 公开, 同"信息框"用法相同 .参数 提示信息, 文本型, 可空 .参数 按钮值, 整数型, 可空 .参数 窗口标题, 文本型, 可空 .参数 窗口句柄, 整数型, 可空, 信息框父窗口,默认为系统级 .参数 时长, 整数型, 可空, 默认为0 不关闭 指定信息框在毫秒级时间过后自动关闭 .子程序 以SYSTEM权限运行, 逻辑型, 公开, 在Administrator系统权限下以SYSTEM权限运行指定程序(成功返回真,失败返回假) .参数 文件名, 文本型, , 欲创建进程全路径文件名 .子程序 运行程序, , 公开, 通过对象来运行一个指定的应用程序 .参数 执行程序, 文本型, , 一个欲被执行的程序全路径名或执行程序名 .参数 启动参数, 文本型, 可空, 可以传递程序的启动参数,但要注意参数间隔符不能少 .参数 窗口显示, 整数型, 可空, 默认为激活窗口 0 隐藏窗口 1 激活窗口 7 最小化 3 最大化 .参数 等待返回, 逻辑型, 可空, 是否需要等持被运行的程序运行结束后 .子程序 执行文件, 逻辑型, 公开, 执行文件夹或文件或命令(成功返回真,失败返回假) .参数 欲操作文件名, 文本型, , 欲操作(文件)或(文件夹的名称)或(网址) .参数 命令行, 文本型, 可空, 执行文件的命令行,没有则设为空 .参数 窗口方式, 整数型, 可空, 可空为0:普通激活方式 1 隐藏窗口 2 最小化窗口 .子程序 置分辨率, , 公开, 设置屏幕分辨率(无返回值) .参数 色深, 短整数型, 可空, 新的色深 可空:不改变原先设定 .参数 屏幕宽度, 短整数型, 可空, 新的屏幕宽度 可空:不改变原先设定 .参数 屏幕高度, 短整数型, 可空, 新的屏幕高度 可空:不改变原先设定 .参数 屏幕刷新率, 短整数型, 可空, 新的屏幕刷新率 可空:不改变原先设定 .子程序 置计算机名, 逻辑型, 公开, 设置计算机名,一般要重新启动才生效(成功返回真,失败返回假) .参数 计算机名, 文本型, 参考, 新的计算机名称 .子程序 重启后删除文件, , 公开 .参数 文件名, 文本型, , 欲删除的文件名 .子程序 转换Ansi转Unicode1, 字节集, 公开, 将Ansi码转换为Unicode码 (返回转换后的字节集) .参数 Ansi, 文本型, , 欲转换的Ansi文本 .子程序 转换Ansi转Unicode2, 字节集, 公开, 将Ansi码转换为Unicode码 (返回转换后的字节集) .参数 欲转换的文本, 文本型 .子程序 转换ASCII转Unicode, 字节集, 公开, 将ASCII码转换为Unicode码 (返回转换后的字节集) [斩月] .参数 ASCII文本, 文本型, , 欲转换的ASCII文本 .子程序 转换Unicode转Ansi, 文本型, 公开, 将Unicode码转换为Ansi码 (返回转换后的文本) .参数 Unicode, 字节集, , 欲转换的Unicode字节集 .子程序 转换URL编码, 文本型, 公开, 将URL文本进行编码(返回编码后的文本) .参数 URL, 文本型, , 欲编码的文本 .子程序 转换URL解码, 文本型, 公开, 将URL文本进行解码(返回解码后的文本) .参数 URL, 文本型, , 欲解码的文本 .子程序 转换繁体到简体, 文本型, 公开, 将繁体中文转换成简体中文(返回转换后的简体内容) [斩月] .参数 繁体文本, 文本型, , 欲转换的文本内容 .子程序 转换简体到繁体, 文本型, 公开, 将简体中文转换成繁体中文(返回转换后的繁体内容) [斩月] .参数 简体文本, 文本型, , 欲转换的文本内容 .子程序 转换取按键码, 整数型, 公开, 取按键名的按键码(返回按键码) .参数 按键名, 文本型, , 按键名 .子程序 转换取按键名, 文本型, 公开, 取按键码的按键名(返回按键名) .参数 键代码, 整数型, , 按键码 .子程序 转换取机内码, 文本型, 公开, 例:取机内码 (“吕”) .参数 汉字, 文本型 .子程序 转换取键码, 整数型, 公开, 取指定键码的按键名(返回键名,无效返回空文本) .参数 键名, 文本型, , 欲取键码的键名(键名为按键后显示的内容 比如:A=65,a=97,$=36) .子程序 转换取键名, 文本型, 公开, 取指定按键名的键码(返回键码,无效返回零) .参数 键码, 整数型, , 欲取键名的键码(键名为按键后显示的内容 比如:A=65,a=97,$=36) .子程序 转换取区位码, 文本型, 公开, 例:取区位码 (“吕”) .参数 汉字, 文本型 .子程序 转换图像格式, 字节集, 公开, (返回转换后图像数据,失败返回空字节集) .参数 图像数据, 字节集, , 支持bmp、jpg、gif、tiff .参数 转换格式, 整数型, 可空, 转换后的图片格式。0、bmp;1、jpg;2、gif;3、tiff;4、png .全局变量 扩展菜单_主菜单, 菜单_主菜单, 公开 .全局变量 扩展菜单_子菜单, 菜单_子菜单, 公开 .全局变量 扩展操作_DLL, 操作_DLL, 公开 .全局变量 扩展操作_FTP, 操作_FTP, 公开 .全局变量 扩展操作_MIDI演奏, 操作_MIDI演奏, 公开 .全局变量 扩展操作_多媒体播放, 操作_多媒体播放, 公开 .全局变量 扩展操作_脚本控制, 操作_脚本控制, 公开 .全局变量 扩展操作_进程通信, 操作_进程通信, 公开 .全局变量 扩展操作_内存_驱动读写, 操作_内存_驱动读写, 公开 .全局变量 扩展操作_内存操作, 操作_内存操作, 公开 .全局变量 扩展操作_驱动操作, 操作_驱动操作, 公开 .全局变量 扩展操作_驱动模拟, 操作_驱动模拟, 公开 .全局变量 扩展操作_热键, 操作_热键, 公开 .全局变量 扩展操作_数据库, 操作_数据库, 公开 .全局变量 扩展操作_数据库记录集, 操作_数据库记录集, 公开 .全局变量 扩展操作_数据库连接, 操作_数据库连接, 公开 .全局变量 扩展操作_数据压缩, 操作_数据压缩, 公开 .全局变量 扩展操作_网络_服务端, 操作_网络_服务端, 公开 .全局变量 扩展操作_网络_客户端, 操作_网络_客户端, 公开 .全局变量 扩展操作_网络_数据报, 操作_网络_数据报, 公开 .全局变量 扩展操作_网络_网络通讯, 操作_网络_网络通讯, 公开 .全局变量 扩展操作_网页单选框, 操作_网页单选框, 公开 .全局变量 扩展操作_网页复选框, 操作_网页复选框, 公开 .全局变量 扩展操作_网页模拟, 操作_网页模拟, 公开 .全局变量 扩展操作_网页文档, 操作_网页文档, 公开 .全局变量 扩展操作_网页组合框, 操作_网页组合框, 公开 .全局变量 扩展操作_位图操作, 操作_位图操作, 公开 .全局变量 扩展操作_系统服务, 操作_系统服务, 公开 .全局变量 扩展操作_线程操作, 操作_线程操作, 公开 .全局变量 扩展操作_线程钩子, 操作_线程钩子, 公开 .全局变量 扩展操作_新位图操作, 操作_新位图操作, 公开 .全局变量 扩展操作_注册表, 操作_注册表, 公开 .全局变量 扩展方法_APIHOOK, 方法_APIHOOK, 公开 .全局变量 扩展方法_BASE64, 方法_BASE64, 公开 .全局变量 扩展方法_DES, 方法_DES, 公开 .全局变量 扩展方法_HOOK, 方法_HOOK, 公开 .全局变量 扩展方法_HTTP, 方法_HTTP, 公开 .全局变量 扩展方法_MD5, 方法_MD5, 公开 .全局变量 扩展方法_NTIO, 方法_NTIO, 公开 .全局变量 扩展方法_RC4, 方法_RC4, 公开 .全局变量 扩展方法_RSA, 方法_RSA, 公开 .全局变量 扩展方法_WinIo, 方法_WinIo, 公开 .全局变量 扩展方法_XML, 方法_XML, 公开 .全局变量 扩展方法_编码转换, 方法_编码转换, 公开 .全局变量 扩展方法_表达式运算, 方法_表达式运算, 公开 .全局变量 扩展方法_封包拦截, 方法_封包拦截, 公开 .全局变量 扩展方法_加密解密, 方法_加密解密, 公开 .全局变量 扩展方法_加密配置, 方法_加密配置, 公开 =================== =====================
第1章 内核上机指导 2 1.1 下载和使用WDK 2 1.1.1 下载并安装WDK 2 1.1.2 编写第一个C文件 4 1.1.3 编译一个工程 5 1.2 安装与运行 6 1.2.1 下载一个安装工具 6 1.2.2 运行与查看输出信息 7 1.2.3 在虚拟机中运行 8 1.3 调试内核模块 9 1.3.1 下载和安装WinDbg 9 1.3.2 设置Windows XP调试执行 9 1.3.3 设置Vista调试执行 10 1.3.4 设置VMware的管道虚拟串口 11 1.3.5 设置Windows内核符号表 12 1.3.6 实战调试first 13 第2章 内核编程环境及其特殊性 16 2.1 内核编程的环境 16 2.1.1 隔离的应用程序 16 2.1.2 共享的内核空间 17 2.1.3 无处不在的内核模块 18 2.2 数据类型 19 2.2.1 基本数据类型 19 2.2.2 返回状态 19 2.2.3 字符串 20 2.3 重要的数据结构 21 2.3.1 驱动对象 21 2.3.2 设备对象 22 2.3.3 请求 24 2.4 函数调用 25 2.4.1 查阅帮助 25 2.4.2 帮助中有的几类函数 26 2.4.3 帮助中没有的函数 28 2.5 Windows的驱动开发模型 29 2.6 WDK编程中的特殊点 30 2.6.1 内核编程的主要调用源 30 2.6.2 函数的多线程安全性 30 2.6.3 代码的中断级 32 2.6.4 WDK中出现的特殊代码 32 第3章 字符串与链表 35 3.1 字符串操作 35 3.1.1 使用字符串结构 35 3.1.2 字符串的初始化 36 3.1.3 字符串的拷贝 37 3.1.4 字符串的连接 38 3.1.5 字符串的打印 38 3.2 内存与链表 40 3.2.1 内存的分配与释放 40 3.2.2 使用LIST_ENTRY 41 3.2.3 使用长长整型数据 43 3.3 自旋锁 44 3.3.1 使用自旋锁 44 3.3.2 在双向链表中使用自旋锁 45 3.3.3 使用队列自旋锁提高性能 46 第4章 文件、注册表、线程 47 4.1 文件操作 47 4.1.1 使用OBJECT_ATTRIBUTES 47 4.1.2 打开和关闭文件 48 4.1.3 文件读/写操作 51 4.2 注册表操作 53 4.2.1 注册表键的打开 53 4.2.2 注册表键值的读 55 4.2.3 注册表键值的写 57 4.3 时间与定时器 58 4.3.1 获得当前“滴答”数 58 4.3.2 获得当前系统时间 58 4.3.3 使用定时器 59 4.4 线程与事件 62 4.4.1 使用系统线程 62 4.4.2 在线程中睡眠 63 4.4.3 使用同步事件 64 第5章 应用与内核通信 67 5.1 内核方面的编程 68 5.1.1 生成控制设备 68 5.1.2 控制设备的名字和符号链接 70 5.1.3 控制设备的删除 71 5.1.4 分发函数 72 5.1.5 请求的处理 73 5.2 应用方面的编程 74 5.2.1 基本的功能需求 74 5.2.2 在应用程序中打开与关闭设备 75 5.2.3 设备控制请求 75 5.2.4 内核中的对应处理 77 5.2.5 结合测试的效果 79 5.3 阻塞、等待与安全设计 80 5.3.1 驱动主动通知应用 80 5.3.2 通信接口的测试 81 5.3.3 内核中的缓冲区链表结构 83 5.3.4 输入:内核中的请求处理中的安全检查 84 5.3.5 输出处理与卸载清理 85 第6章 64位和32位内核开发差异 88 6.1 64位系统新增机制 88 6.1.1 WOW64子系统 88 6.1.2 PatchGuard技术 91 6.1.3 64位驱动的编译、安装与运行 91 6.2 编程差异 92 6.2.1 汇编嵌入变化 92 6.2.2 预处理与条件编译 93 6.2.3 数据结构调整 93 开 发 篇 第7章 串口的过滤 96 7.1 过滤的概念 96 7.1.1 设备绑定的内核API之一 97 7.1.2 设备绑定的内核API之二 98 7.1.3 生成过滤设备并绑定 98 7.1.4 从名字获得设备对象 100 7.1.5 绑定所有串口 101 7.2 获得实际数据 102 7.2.1 请求的区分 102 7.2.2 请求的结局 103 7.2.3 写请求的数据 104 7.3 完整的代码 105 7.3.1 完整的分发函数 105 7.3.2 如何动态卸载 106 7.3.3 代码的编译与运行 107 第8章 键盘的过滤 109 8.1 技术原理 110 8.1.1 预备知识 110 8.1.2 Windows中从击键到内核 110 8.1.3 键盘硬件原理 112 8.2 键盘过滤的框架 112 8.2.1 找到所有的键盘设备 112 8.2.2 应用设备扩展 115 8.2.3 键盘过滤模块的DriverEntry 117 8.2.4 键盘过滤模块的动态卸载 117 8.3 键盘过滤的请求处理 119 8.3.1 通常的处理 119 8.3.2 PNP的处理 120 8.3.3 读的处理 121 8.3.4 读完成的处理 122 8.4 从请求中打印出按键信息 123 8.4.1 从缓冲区中获得KEYBOARD_INPUT_DATA 123 8.4.2 从KEYBOARD_INPUT_DATA中得到键 124 8.4.3 从MakeCode到实际字符 124 8.5 Hook分发函数 126 8.5.1 获得类驱动对象 126 8.5.2 修改类驱动的分发函数指针 127 8.5.3 类驱动之下的端口驱动 128 8.5.4 端口驱动和类驱动之间的协作机制 129 8.5.5 找到关键的回调函数的条件 129 8.5.6 定义常数和数据结构 130 8.5.7 打开两种键盘端口驱动寻找设备 131 8.5.8 搜索在KbdClass类驱动中的地址 133 8.6 Hook键盘中断反过滤 135 8.6.1 中断:IRQ和INT 136 8.6.2 如何修改IDT 136 8.6.3 替换IDT中的跳转地址 137 8.6.4 QQ的PS/2反过滤措施 139 8.7 直接用端口操作键盘 139 8.7.1 读取键盘数据和命令端口 139 8.7.2 p2cUserFilter的最终实现 140 第9章 磁盘的虚拟 143 9.1 虚拟的磁盘 143 9.2 一个具体的例子 143 9.3 入口函数 144 9.3.1 入口函数的定义 144 9.3.2 Ramdisk驱动的入口函数 145 9.4 EvtDriverDeviceAdd函数 146 9.4.1 EvtDriverDeviceAdd的定义 146 9.4.2 局部变量的声明 146 9.4.3 磁盘设备的创建 147 9.4.4 如何处理发往设备的请求 148 9.4.5 用户配置的初始化 149 9.4.6 链接给应用程序 151 9.4.7 小结 152 9.5 FAT12/16磁盘卷初始化 152 9.5.1 磁盘卷结构简介 152 9.5.2 Ramdisk对磁盘的初始化 154 9.6 驱动中的请求处理 160 9.6.1 请求的处理 160 9.6.2 读/写请求 160 9.6.3 DeviceIoControl请求 162 9.7 Ramdisk的编译和安装 164 9.7.1 编译 164 9.7.2 安装 164 9.7.3 对安装的深入探究 165 第10章 磁盘的过滤 167 10.1 磁盘过滤驱动的概念 167 10.1.1 设备过滤和类过滤 167 10.1.2 磁盘设备和磁盘卷设备过滤驱动 167 10.1.3 注册表和磁盘卷设备过滤驱动 168 10.2 具有还原功能的磁盘卷过滤驱动 168 10.2.1 简介 168 10.2.2 基本思想 169 10.3 驱动分析 169 10.3.1 DriverEntry函数 169 10.3.2 AddDevice函数 170 10.3.3 PnP请求的处理 174 10.3.4 Power请求的处理 178 10.3.5 DeviceIoControl请求的处理 178 10.3.6 bitmap的作用和分析 182 10.3.7 boot驱动完成回调函数和稀疏文件 187 10.3.8 读/写请求的处理 190 第11章 文件系统的过滤与监控 199 11.1 文件系统的设备对象 200 11.1.1 控制设备与卷设备 200 11.1.2 生成自己的一个控制设备 201 11.2 文件系统的分发函数 202 11.2.1 普通的分发函数 202 11.2.2 文件过滤的快速IO分发函数 203 11.2.3 快速IO分发函数的一个实现 205 11.2.4 快速IO分发函数逐个简介 206 11.3 设备的绑定前期工作 207 11.3.1 动态地选择绑定函数 207 11.3.2 注册文件系统变动回调 208 11.3.3 文件系统变动回调的一个实现 209 11.3.4 文件系统识别器 211 11.4 文件系统控制设备的绑定 212 11.4.1 生成文件系统控制设备的过滤设备 212 11.4.2 绑定文件系统控制设备 213 11.4.3 利用文件系统控制请求 215 11.5 文件系统卷设备的绑定 217 11.5.1 从IRP中获得VPB指针 217 11.5.2 设置完成函数并等待IRP完成 218 11.5.3 卷挂载IRP完成后的工作 221 11.5.4 完成函数的相应实现 223 11.5.5 绑定卷的实现 224 11.6 读/写操作的过滤 226 11.6.1 设置一个读处理函数 226 11.6.2 设备对象的区分处理 227 11.6.3 解析读请求中的文件信息 228 11.6.4 读请求的完成 230 11.7 其他操作的过滤 234 11.7.1 文件对象的生存周期 234 11.7.2 文件的打开与关闭 235 11.7.3 文件的删除 237 11.8 路径过滤的实现 238 11.8.1 取得文件路径的三种情况 238 11.8.2 打开成功后获取路径 238 11.8.3 在其他时刻获得文件路径 240 11.8.4 在打开请求完成之前获得路径名 240 11.8.5 把短名转换为长名 242 11.9 把sfilter编译成静态库 243 11.9.1 如何方便地使用sfilter 243 11.9.2 初始化回调、卸载回调和绑定回调 244 11.9.3 绑定与回调 245 11.9.4 插入请求回调 246 11.9.5 如何利用sfilter.lib 249 第12章 文件系统透明加密 252 12.1 文件透明加密的应用 252 12.1.1 防止企业信息泄密 252 12.1.2 文件透明加密防止企业信息泄密 253 12.1.3 文件透明加密软件的例子 253 12.2 区分进程 254 12.2.1 机密进程与普通进程 254 12.2.2 找到进程名字的位置 255 12.2.3 得到当前进程的名字 256 12.3 内存映射与文件缓冲 257 12.3.1 记事本的内存映射文件 257 12.3.2 Windows的文件缓冲 258 12.3.3 文件缓冲:明文还是密文的选择 259 12.3.4 清除文件缓冲 260 12.4 加密标识 263 12.4.1 保存在文件外、文件头还是文件尾 263 12.4.2 隐藏文件头的大小 264 12.4.3 隐藏文件头的设置偏移 266 12.4.4 隐藏文件头的读/写偏移 267 12.5 文件加密表 267 12.5.1 何时进行加密操作 267 12.5.2 文件控制块与文件对象 268 12.5.3 文件加密表的数据结构与初始化 269 12.5.4 文件加密表的操作:查询 270 12.5.5 文件加密表的操作:添加 271 12.5.6 文件加密表的操作:删除 272 12.6 文件打开处理 273 12.6.1 直接发送IRP进行查询与设置操作 274 12.6.2 直接发送IRP进行读/写操作 276 12.6.3 文件的非重入打开 277 12.6.4 文件的打开预处理 280 12.7 读/写加密和解密 285 12.7.1 在读取时进行解密 285 12.7.2 分配与释放MDL 286 12.7.3 写请求加密 287 12.8 crypt_file的组装 289 12.8.1 crypt_file的初始化 289 12.8.2 crypt_file的IRP预处理 290 12.8.3 crypt_file的IRP后处理 293 第13章 文件系统微过滤驱动 297 13.1 文件系统微过滤驱动简介 297 13.1.1 文件系统微过滤驱动的由来 297 13.1.2 Minifilter的优点与不足 298 13.2 Minifilter的编程框架 298 13.2.1 微文件系统过滤的注册 299 13.2.2 微过滤器的数据结构 300 13.2.3 卸载回调函数 303 13.2.4 预操作回调函数 303 13.2.5 后操作回调函数 306 13.2.6 其他回调函数 307 13.3 Minifilter如何与应用程序通信 309 13.3.1 建立通信端口的方法 310 13.3.2 在用户态通过DLL使用通信端口的范例 311 13.4 Minifilter的安装与加载 314 13.4.1 安装Minifilter的INF文件 314 13.4.2 启动安装完成的Minifilter 316 第14章 网络传输层过滤 317 14.1 TDI概要 317 14.1.1 为何选择TDI 317 14.1.2 从socket到Windows内核 318 14.1.3 TDI过滤的代码例子 319 14.2 TDI的过滤框架 319 14.2.1 绑定TDI的设备 319 14.2.2 唯一的分发函数 320 14.2.3 过滤框架的实现 322 14.2.4 主要过滤的请求类型 323 14.3 生成请求:获取地址 324 14.3.1 过滤生成请求 324 14.3.2 准备解析IP地址与端口 326 14.3.3 获取生成的IP地址和端口 327 14.3.4 连接终端的生成与相关信息的保存 329 14.4 控制请求 330 14.4.1 TDI_ASSOCIATE_ADDRESS的过滤 330 14.4.2 TDI_CONNECT的过滤 332 14.4.3 其他的次功能号 333 14.4.4 设置事件的过滤 334 14.4.5 TDI_EVENT_CONNECT类型的设置事件的过滤 336 14.4.6 直接获取发送函数的过滤 337 14.4.7 清理请求的过滤 339 14.5 本书例子tdifw.lib的应用 341 14.5.1 tdifw库的回调接口 341 14.5.2 tdifw库的使用例子 342 第15章 Windows过滤平台 345 15.1 WFP简介 345 15.2 WFP框架 345 15.3 基本对象模型 347 15.3.1 过滤引擎 347 15.3.2 垫片 347 15.3.3 呼出接口 347 15.3.4 分层 348 15.3.5 子层 349 15.3.6 过滤器 350 15.3.7 呼出接口回调函数 354 15.4 WFP操作 359 15.4.1 呼出接口的注册与卸载 360 15.4.2 呼出接口的添加与移除 360 15.4.3 子层的添加与移除 361 15.4.4 过滤器的添加 362 15.5 WFP过滤例子 362 第16章 NDIS协议驱动 370 16.1 以太网包和网络驱动架构 370 16.1.1 以太网包和协议驱动 370 16.1.2 NDIS网络驱动 371 16.2 协议驱动的DriverEntry 372 16.2.1 生成控制设备 372 16.2.2 注册协议 374 16.3 协议与网卡的绑定 375 16.3.1 协议与网卡的绑定概念 375 16.3.2 绑定回调处理的实现 376 16.3.3 协议绑定网卡的API 378 16.3.4 解决绑定竞争问题 379 16.3.5 分配接收和发送的包池与缓冲池 380 16.3.6 OID请求的发送和请求完成回调 381 16.3.7 ndisprotCreateBinding的最终实现 385 16.4 绑定的解除 390 16.4.1 解除绑定使用的API 390 16.4.2 ndisprotShutdownBinding的实现 392 16.5 在用户态操作协议驱动 395 16.5.1 协议的收包与发包 395 16.5.2 在用户态编程打开设备 396 16.5.3 用DeviceIoControl发送控制请求 397 16.5.4 用WriteFile发送数据包 399 16.5.5 用ReadFile发送数据包 400 16.6 在内核态完成功能的实现 402 16.6.1 请求的分发与实现 402 16.6.2 等待设备绑定完成与指定设备名 402 16.6.3 指派设备的完成 403 16.6.4 处理读请求 406 16.6.5 处理写请求 408 16.7 协议驱动的接收回调 412 16.7.1 和接收包有关的回调函数 412 16.7.2 ReceiveHandler的实现 413 16.7.3 TransferDataCompleteHandler的实现 417 16.7.4 ReceivePacketHandler的实现 418 16.7.5 接收数据包的入队 420 16.7.6 接收数据包的出队和读请求的完成 422 第17章 NDIS小端口驱动 427 17.1 小端口驱动的应用与概述 427 17.1.1 小端口驱动的应用 427 17.1.2 小端口驱动示例 428 17.1.3 小端口驱动的运作与编程概述 429 17.2 小端口驱动的初始化 429 17.2.1 小端口驱动的DriverEntry 429 17.2.2 小端口驱动的适配器结构 431 17.2.3 配置信息的读取 433 17.2.4 设置小端口适配器上下文 433 17.2.5 MPInitialize的实现 434 17.2.6 MPHalt的实现 437 17.3 打开ndisprot设备 438 17.3.1 IO目标 438 17.3.2 给IO目标发送DeviceIoControl请求 439 17.3.3 打开ndisprot接口并完成配置设备 441 17.4 使用ndisprot发送包 443 17.4.1 小端口驱动的发包接口 443 17.4.2 发送控制块(TCB) 444 17.4.3 遍历包组并填写TCB 446 17.4.4 写请求的构建与发送 449 17.5 使用ndisprot接收包 451 17.5.1 提交数据包的内核API 451 17.5.2 从接收控制块(RCB)提交包 452 17.5.3 对ndisprot读请求的完成函数 454 17.5.4 读请求的发送 456 17.5.5 用于读包的WDF工作任务 457 17.5.6 ndisedge读工作任务的生成与入列 459 17.6 其他的特征回调函数的实现 461 17.6.1 包的归还 461 17.6.2 OID查询处理的直接完成 462 17.6.3 OID设置处理 465 第18章 NDIS中间层驱动 467 18.1 NDIS中间层驱动概述 467 18.1.1 Windows网络架构总结 467 18.1.2 NDIS中间层驱动简介 468 18.1.3 NDIS中间层驱动的应用 469 18.1.4 NDIS包描述符结构深究 470 18.2 中间层驱动的入口与绑定 473 18.2.1 中间层驱动的入口函数 473 18.2.2 动态绑定NIC设备 474 18.2.3 小端口初始化(MpInitialize) 475 18.3 中间层驱动发送数据包 477 18.3.1 发送数据包原理 477 18.3.2 包描述符“重利用” 478 18.3.3 包描述符“重申请” 481 18.3.4 发送数据包的异步完成 482 18.4 中间层驱动接收数据包 484 18.4.1 接收数据包概述 484 18.4.2 用PtReceive接收数据包 485 18.4.3 用PtReceivePacket接收 490 18.4.4 对包进行过滤 491 18.5 中间层驱动程序查询和设置 494 18.5.1 查询请求的处理 494 18.5.2 设置请求的处理 496 18.6 NDIS句柄 498 18.6.1 不可见的结构指针 498 18.6.2 常见的NDIS句柄 499 18.6.3 NDIS句柄误用问题 500 18.6.4 一种解决方案 502 18.7 生成普通控制设备 503 18.7.1 在中间层驱动中添加普通设备 503 18.7.2 使用传统方法来生成控制设备 505 第19章 IA-32汇编基础 511 19.1 x86内存、寄存器与堆栈 511 19.1.1 _asm关键字 511 19.1.2 x86中的mov指令 512 19.1.3 x86中的寄存器与内存 512 19.1.4 赋值语句的实现 513 19.2 x86中函数的实现 514 19.2.1 一个函数的例子 514 19.2.2 堆栈的介绍 515 19.2.3 寄存器的备份和恢复 516 19.2.4 内部变量与返回值 518 19.3 x86中函数的调用与返回 521 19.3.1 函数的调用指令call 521 19.3.2 通过堆栈传递参数 521 19.3.3 从函数返回 523 19.3.4 三种常见的调用协议 524 19.4 从32位汇编到64位汇编 526 19.4.1 Intel 64与IA-32体系架构简介 526 19.4.2 64位指令与32位指令 526 19.4.3 通用寄存器 527 19.5 64位下的函数实现 528 19.5.1 函数概览 528 19.5.2 32位参数的传递 529 19.5.3 64位参数与返回值 530 19.5.4 栈空间的开辟与恢复 531 第20章 IA-32体系中的内存地址 534 20.1 内存的虚拟地址 534 20.1.1 C语言中的内存地址 534 20.1.2 虚拟地址的构成 535 20.1.3 段的选择 536 20.2 全局描述符表和段描述符 538 20.2.1 全局描述符表 538 20.2.2 段类型 539 20.2.3 段寄存器与段选择子 540 20.2.4 64位模式下的段 541 20.3 分段编程实践 542 20.3.1 系统表寄存器的结构 542 20.3.2 在汇编语言中获取全局描述表的位置 543 20.3.3 调试范例:sgdt指令的错误使用 545 20.3.4 在64位下获得全局描述符表 547 20.4 线性地址基础 549 20.4.1 分页控制机制 550 20.4.2 线性地址的转换 551 20.4.3 混合页面大小 552 20.4.4 32位物理地址的页目录和页表项 552 20.5 各种特殊分页方式 555 20.5.1 PAE分页方式 555 20.5.2 PSE-36分页机制 558 20.5.3 IA-32e模式下的线性地址 559 20.6 分页编程实践 562 20.6.1 页目录和页目录指针表的获取 562 20.6.2 页表的获取 564 20.6.3 线性地址的结构 567 第21章 处理器权限级别切换 571 21.1 Ring0和Ring3权限级别 571 21.2 保护模式下的分页内存保护 572 21.3 分页内存不可执行保护 574 21.3.1 不可执行保护原理 574 21.3.2 不可执行保护的漏洞 575 21.3.3 上机实践 577 21.4 权限级别的切换 579 21.4.1 调用门及其漏洞 579 21.4.2 sysenter和sysexit指令 581 21.4.3 上机实践 583 第22章 IA-32体系结构中的中断 585 22.1 中断基础知识 585 22.1.1 中断描述符表 585 22.1.2 中断处理过程 587 22.1.3 64位模式下的中断处理机制 589 22.1.4 多核下的中断 589 22.2 Windows中断机制 593 22.3 中断编程实践 596 22.3.1 IDT Hook 596 22.3.2 巧用IDT Hook实现安全防护 598 第23章 Windows内核挂钩 601 23.1 系统服务描述符表挂钩 602 23.1.1 系统服务描述符表(SSDT) 602 23.1.2 系统服务描述符表挂钩的意图 603 23.1.3 寻找要挂钩的函数的地址 604 23.1.4 函数被挂钩的过程 605 23.1.5 具体实现的代码 606 23.2 函数导出表挂钩 608 23.2.1 内核函数的种类 608 23.2.2 挂钩IoCallDriver 610 23.2.3 对跳转地址进行修改 611 23.3 Windows 7系统下IofCallDriver的跟踪 612 23.4 Windows 7系统下内联挂钩 615 23.4.1 写入跳转指令并拷贝代码 615 23.4.2 实现中继函数 617 高 级 篇 第24章 Windows通知与回调 620 24.1 Windows的事件通知与回调 620 24.2 常用的事件通知 620 24.2.1 创建进程通知 621 24.2.2 创建线程通知 625 24.2.3 加载模块通知 626 24.2.4 注册表操作通知 629 24.3 Windows回调机制 636 24.3.1 回调对象 636 24.3.2 回调对象的创建 637 24.3.3 回调对象的注册 637 24.3.4 回调的通告 638 24.4 安全的死角,回调的应用 639 第25章 保护进程 640 25.1 内核对象简介 640 25.2 内核对象的结构 641 25.3 保护内核对象 642 25.3.1 处理对象的打开 643 25.3.2 处理句柄的复制 644 25.3.3 处理句柄的继承 646 25.4 进程的保护 652 25.4.1 保护原理 652 25.4.2 Vista以后的进程对象保护 654 25.4.3 进程的其他保护 655 附录A 如何使用本书的源码光盘 656 附录B 练习题 659

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧