毕业论文 - VC++环境下的动态链接库的开发与应用 下载本文

VC++环境下动态链接库的开发及应用

LoadLibrary函数来加载木马DLL,从而实现木马对系统的侵害。

这里涉及到一个非常重要的Windows API――CreateRemoteThread。与之相比,我们所习惯使用的CreateThread API函数只能在进程自身内部产生一个新的线程,而且被创建的新线程与主线程共享地址空间和其他资源。而CreateRemoteThread则不同,它可以在另外的进程中产生线程CreateRemoteThread有如下特点:

(1)CreateRemoteThread较CreateThread多一个参数hProcess,该参数用于指定要创建线程的远程进程,其函数原型为:

HANDLE CreateRemoteThread( HANDLE hProcess, //远程进程句柄 LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );

(2)线程函数的代码不能位于我们用来注入DLL木马的进程所在的地址空间中。也就是说,我们不能想当然地自己写一个函数,并把这个函数作为远程线程的入口函数; (3)不能把本进程的指针作为CreateRemoteThread的参数,因为本进程的内存空间与远程进程的不一样。

通过以上描述,可知木马DLL的危害性和特点,也同时启发我们程序员应当正确地使用DLL的同时,不能忽视软件的安全性。

至此,本文讲述完了动态链接库的背景知识、三种VC++支持的DLL的创建方法与调用方式,以及动态链接库的典型应用。

37

VC++环境下动态链接库的开发及应用

六、参考文献

[1] 周金萍,徐丙立. Windows系统编程 [M]. 北京:人民邮电出版社,2002

[2] 侯俊杰.深入浅出MFC(第二版)[M].武汉:华中科技大学出版社,2001

[3] 刘瑞,吴跃进,王宗越. Visual C++项目开发实用案例. 科学出版社,2006

[4] 朱晴婷,黄海鹰,陈莲君. Visual C++程序设计. 清华大学出版社,2004

七、致谢

本文在指导教师的耐心指导下终于完稿,感激之情,溢于言表。在论文写作过程中,得到了老师和同学的指导和帮助,老师严谨的治学态度、渊博的专业知识、崇高的职业品德、无私的奉献精神令我很感动,我从老师身上学到了做学问的态度、方法与知识,但更重要的是学到了做人的道理与做任何事情都应有的认真、严谨的态度。这将使我受用终身!在这里我要对指导教师表达衷心的敬意与谢意。

38