这段代码如何在Windows上生成一个文件名包含冒号的文件?

时间:2018-01-30 17:07:30

标签: windows security pascal internal computer-forensics

我在另一个论坛上看到下面的pascal代码。这段代码怎么可能?

不允许用户使用冒号创建文件名吗?

但是,此代码仅在您在驱动器的根目录中创建名称包含冒号的文件时使用(例如:D:,C:,E:等)。创建文件时,它完全不可见。

uses crt, sysutils;
var
  f, f1: file of char;
  c:char;
begin
  clrscr;
  assign(f, 'D:\src\payload.exe');
  reset(f);
  assign(f1, 'D:\:malware.exe');
  rewrite(f1);
  while not eof(f) do
  begin
    read(f, c);
    write(f1, c);
  end;
  close(f1);
  close(f);
  executeprocess('D:\:malware.exe', ''); //here
  readln;
  erase(f1);
end.

您可以使用free pascal

编译上面的代码
fpc [filename].pas

谢谢。

编辑:

更多细节:

您可以从CreateProcess(WinAPI)

执行D:\:malware.exe

您无法从命令行,路径等执行D:\:malware.exe

我使用进程资源管理器查找D:\:malware.exe路径/包含文件夹。但是,当我按下探索按钮时,我需要%UserProfile%

它仅适用于D:\:malware.exeD:\\malware.exeD:\/malware.exe

1 个答案:

答案 0 :(得分:-1)

它有效,因为它可能*。无论正确的命名约定如何,您都可以将文件命名为各种可怕的东西。

*是的,我知道MSDN将冒号列为“reserved”。这与被禁止或不可能不同。 与“不要做”相同。