最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Windows黑客编程技术_学黑客技术是为了黑人网站?

XAMPP相关 admin 2041浏览 0评论

y82

上学的时候学的是计算机网络安全专业,看着师兄很熟练敲着DOS命令,分分钟进入到别人系统网站,感觉超帅!不过后来老师跟我们说教你们这些知识不是为了让你们去黑人家而是要学会反入侵!那会我才知道网络安全的重要性。

最近华为被美国阻挠的事件频频上热搜,先是谷歌表示谷歌向华为闭源,再接着各大芯片供应商说不再向华为提供芯片支持,每当看到这种新闻的时候,总是愤愤不平的自问“美国你凭什么?你算老几?看到中国的发展速度就眼红想通过提高关税或者其他方式来阻挠中国的发展?”。总有一个冲动,把美国的网络黑掉!今天就为大家介绍一本《Windows黑客编程技术详解》,不过不是真的为了让你去黑人家网站而去学习的哦,而是为了让网络安全。

信息安全行业是一个朝阳行业,国家、企业以及高校都予以高度重视。其中,Windows系统的市场占有率高达90%以上,因此Windows系统上的安全需求更多,安全攻防更激烈。

《Windows黑客编程技术详解》

扫码查看详情

以下内容来自作者甘迪文所写。

对于一个病毒木马来说,重要的不仅是如何进行破坏,还有如何执行。正如一件事,重要的不仅是如何做好,还有如何开头。病毒木马只有加载到内存中开始运行,才能够真正体现出它的破坏力。否则,它只是一个普通的磁盘文件,对于计算机用户的数据、隐私构不成任何威胁。

即使成功植入模块并启动攻击模块,依然不能解决永久驻留的问题。解决永久驻留的第一步便是如何实现伴随系统启动而启动的问题,即开机自启动。这样,即使用户关机重启,病毒木马也能随着系统的启动,而由系统加载到内存中运行,从而窃取用户数据和隐私。因此,开机自启动技术是病毒木马至关重要的技术,也是杀软重点监测的技术。对于杀软来说,只要把守住自启动的入口,就可以把病毒木马扼杀在摇篮之中。

利用注册表实现开机自启动

为方便用户使用,无论是恶意程序还是正常的应用软件,都不用人为地去运行程序,程序都会提供开机自启动功能,这样就可以伴随系统启动而自己运行起来。由于开机自启动功能的特殊性,它一直都是杀软和病毒木马重点博弈的地方。

实现开机自启动的途径和方式有很多种,其中修改注册表方式应用最为广泛。注册表相当是操作系统的数据库,记录着系统中方方面面的数据,其中也不乏直接或间接导致开机自启动的数据。本节介绍向Run注册表中添加程序路径的方式,以实现开机自启动。
函数介绍
1.RegOpenKeyEx函数:打开一个指定的注册表键。
2.RegSetValueEx函数:在注册表项下设置指定值的数据和类型。
实现原理

理解修改注册表实现开机自启动功能的一个重要前提就是,Windows提供了专门的开机自启动注册表。在每次开机完成后,它都会在这个注册表键下遍历键值,以获取键值中的程序路径,并创建进程启动程序。所以,要想修改注册表实现开机自启动,只需要在这个注册表键下添加想要设置自启动程序的程序路径就可以了。

本节介绍两种修改注册表的方式,它们的主要区别在于注册表键路径。本节介绍其中常见的两个路径,分别是:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

以及

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

这两个路径之间的区别仅是主键不同,一个是HKEY_CURRENT_USER,另一个是HKEY_LOCAL_MACHINE。但是,二者功能是相似的,它们都可以实现开机自启动。

了解上述知识点后,你应该知道,程序实现的原理就是对上面两个注册表键设置一个新的键值,写入自启动程序的路径。

其中,需要注意的是,修改注册表的权限问题。在编程实现上,要修改HKEY_LOCAL_ MACHINE主键的注册表,这要求程序要有管理员权限。而修改HKEY_CURRENT_USER主键的注册表,只需要用户默认权限就可以实现。

如果程序运行在64位Windows系统上,则需要注意注册表重定位的问题。在64位Windows系统中,为了兼容32位程序的正常执行,64位的Windows系统采用重定向机制。系统为关键的文件夹和关键注册表创建了两个副本,使得32位程序在 64位系统上不仅能操作关键文件夹和关键注册表,还可以避免与64位程序冲突。
编码实现

BOOLReg_CurrentUser(char *lpszFileName, char *lpszValueName){    //默认权限    HKEYhKey;    //打开注册表键    if(ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_CURRENT_USER, “Software\\Microsoft\\Windows\\ CurrentVersion\\Run”, 0, KEY_WRITE, &hKey))    {        ShowError(“RegOpenKeyEx”);        returnFALSE;    }    //修改注册表值,实现开机自启动    if(ERROR_SUCCESS != ::RegSetValueEx(hKey, lpszValueName, 0, REG_SZ, (BYTE*)lpszFileName, (1 + ::lstrlen(lpszFileName))))    {        ::RegCloseKey(hKey);        ShowError(“RegSetValueEx”);        returnFALSE;    }    //关闭注册表键    ::RegCloseKey(hKey);     returnTRUE;}

测试

在64位系统上运行程序,分别向注册表

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

以及

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

中添加“520”键值,并输入数据。程序执行完毕后,直接打开系统注册表编辑工具Regedit.exe查看对应注册表路径下的键值信息。

查看HKEY_CURRENT_USER可知对应注册表路径中存在“520”键值,如图5-1所示,说明向HKEY_CURRENT_USER中添加成功。

图5-1  HKEY_CURRENT_USER中的“520”键值

而观察HKEY_LOCAL_MACHINE可知,在对应注册表路径下并不存在“520”键值。难道程序出错了吗?其实,程序并没有问题,而是在64位系统中关键的注册表被重定位了。重定位后的路径是:

HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

到重定位后的路径查看可知存在键值“520”,如图5-2所示,说明程序添加成功。

图5-2  注册表重定位后的“520”键值

关机重启计算机,对应路径的程序成功实现开机自启动。
小结

对于上面的程序,需要注意以下两点:

一是权限问题:在编程实现上,要想修改HKEY_LOCAL_MACHINE主键的注册表,要求程序拥有管理员权限。而修改HKEY_CURRENT_USER主键的注册表,只需要用户默认权限就可以实现。

二是注册表重定位问题:在 64 位系统上,系统注册表会有注册表重定位的问题。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

会重定位到

HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

在程序中,可以打开RegOpenKeyEx函数设置KEY_WOW64_64KEY访问标志,从而避免重定位的影响,直接访问指定的注册表路径。
安全小贴士

直接枚举上述开机自启动注册表键中的键值,可以获取开机启动项的信息。

转载请注明:XAMPP中文组官网 » Windows黑客编程技术_学黑客技术是为了黑人网站?

您必须 登录 才能发表评论!