网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > windows > 系统安全 > 系统安全 > 系统安全基础之常用Win32 API函数简介  

系统安全基础之常用Win32 API函数简介

2007-02-15  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  现在很多讲Windows程序设计的书都是讲基于MFC库和OWL库的Windows设计,对Windows实现的细节都鲜有讨论,而调试程序都是和系统底层打交道,所以有必要掌握一些Win32 API函数的知识,这样我们可快捷地找出程序调用错在哪?是哪个参数出了问题。 中国网管联盟bitsCN.com

  Windows程序模块包括KERNEL、USER和GDI,其中KERNEL完成内存管理、程序的装人与执行和任务调度等功能,它需要调用原MS―DOS中的文件管理、磁盘输入输出和程序执行等功能;USER是一个程序库,它用来对声音、时钟、鼠标器及键盘输入等操作进行管理;GDI是一功能十分丰富的子程序库,它提供了图形与文字输出、图象操作和窗口管理等各种与显示和打印有关的功能。上述KERNEL、USER和GDI模块中的库函数可被应用程序调用,也可被其他程序模块调用。把包含库函数的模块称为输出者(export)。你应明白为什么跟踪软件时经常在KERNEL32!。text和USER32.text等系统领空转的问题吧。

网管下载dl.bitscn.com

  这里列出几个经常碰到的Win 32 API函数,它们都是存在Windows系统核心文件KERNEL32.DLL中和视窗管理文件USER32.DLL中。 网管网www_bitscn_com

  Windows函数是区分字符集的:A表示ANSI,W表示Wide,即Unicode (Wide character-set),前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows的所有与字符有关的函数都提供两种方式的版本。尽管你编程时使用GetWindowText,但实际上编译程序会根据设置自动调用GetWindowTextA或GetWindowTextW.函数的最后一个字母告诉我们函数是使用单字节还是双字节字符串。

中国网管论坛bbs.bitsCN.com

  1、Hmemcpy函数 网管联盟bitsCN_com

  void hmemcpy(hpvDest, hpvSource, cbCopy)

网管u家u.bitscn@com

  void _huge* hpvDest; // 目的数据地址

网管下载dl.bitscn.com

  const void _huge* hpvSource; // 源数据地址

网管下载dl.bitscn.com

  long cbCopy; // 数据大小 (Bytes) 网管网www.bitscn.com

  这个函数在KERNEL32.DLL中,它很常用,俗称万能断点,但一般的编程书籍上很少提到,原因它是底层的东西,没有特殊需要,一般不直接调用。但的确它是很有用的!有意思的是它执行的操作很简单,只是将内存中的一块数据拷贝到另一个地方。

网管联盟bitsCN@com

  注意:此函数只在Windows 9x系统上有效,在Win NT/2K系统上相关的函数是memcpy,但在Win NT/2K上不同于Windows 9x上,很少再调用memcpy来处理数据了,用此函数设断基本上什么也拦不住。

网管下载dl.bitscn.com

  2、GetWindowText函数 网管u家u.bitsCN.com

  此函数在USER32.DLL用户模块中,它的作用是复制指定窗口中的字符到缓冲区。函数原型: 网管u家u.bitsCN.com

 int GetWindowText(
HWND hWnd//欲获取文字的那个窗口的句柄
LPTSTR lpString //预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
int nMaxCount//lpString缓冲区的长度
);
16位:GetWindowText
32位:GetWindowTextA,GetWindowTextW
<strong>3、GetDlgItemText</strong>
网管u家u.bitsCN.com

  3、GetDlgItemText

网管网www.bitscn.com

  此函数在USER32.DLL用户模块中,它的作用是返回对话框中某一个窗口的标题或文字。函数原型: 网管下载dl.bitscn.com

 UINT GetDlgItemText(
HWND hDlg, // 对话框句柄
int nIDDlgItem, //控制标识符
LPTSTR lpString, / 预定义的一个字符缓冲区
int nMaxCount// 字符缓冲区的长度
);
16位:GetDlgItemText
32位:GetDlgItemTextA,GetDlgItemTextW

网管bitscn_com

4、MessageBox函数

此函数是在USER32.DLL用户模块中,它的作用创建、显示和操作信息框。函数原型: 网管论坛bbs_bitsCN_com

 int MessageBox(
HWND hWnd, //窗口句柄
LPCTSTR lpText, // 信息框中文字的地址
LPCTSTR lpCaption, // 信息框标题地址
UINT uType // 信息框类型
);
16位:MessageBox
32位:MessageBoxA,MessageBoxW

网管bitscn_com

中国网管联盟bitsCN.com

网管u家u.bitsCN.com


TAGs   函数   简介   常用   安全   基础   系统   //   程序   Windows   字符      
 上一篇:有消息称 Vista 还有更多致命缺陷   下一篇:保护系统 拒绝WinRAR密码破解!
系统安全基础之常用Win32 API函数简介 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: