内容简介:上学的时候学的是计算机网络安全专业,看着师兄很熟练敲着DOS命令,
上学的时候学的是计算机网络安全专业,看着师兄很熟练敲着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访问标志,从而避免重定位的影响,直接访问指定的注册表路径。
安全小贴士
直接枚举上述开机自启动注册表键中的键值,可以获取开机启动项的信息。
《Windows黑客编程技术详解》
扫码查看详情
作者介绍
甘迪文,北京邮电大学网络空间安全学院在读研究生,2019 年秋季即将步入清华大学攻读软件工程专业的博士学位,Write-Bug 技术共享平台(www.write-bug.com)创始人。对信息安全领域兴趣颇深,常利用课余时间自学和钻研安全开发技术。擅长 Windows 系统安全程序开发,熟悉 Windows 内核编程,闲来无事之时喜欢开发功能各异的小软件。
曾荣获异步社区“2018年异步社区优秀作者奖”,异步社区是依托于人民邮电出版社20余年IT专业优质出版资源和编辑策划团队的国内领先IT专业图书社区。
内容介绍
近年来,全球大规模爆发勒索病毒和挖矿病毒,让沉寂许久的黑客技术,又重新回到了人们的视野中。Windows操作系统市场占有率高达90%以上,所以面对勒索病毒、挖矿病毒,Windows用户首当其冲。为了揭开病毒木马的神秘面纱,更好地服务于信息安全,《Windows黑客编程技术详解》总结并剖析了常见的Windows黑客编程技术,用通俗易懂的语言介绍了用户层下的Windows编程和内核层下的Rootkit编程。
扫码或者点击阅读原文购买
现在购买不仅可以享受8折优惠
还可以使用优惠券哦~
优惠券领取二维码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- B 站源码泄露?这是—什么—操作(黑人问号)?
- 深度 | 十大常见黑客技术与十大最火爆黑客技术!
- 学习手册:窥探Web前端黑客技术
- 2017年十大Web黑客技术榜单
- 黑客溯源分析技术
- 黑客技术第一步,微信自动抢红包,原来是这样实现的
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。