program lx;
  uses
    dos;

  var
    f:file;
    ch:char;
    i,len,exelen:longint;

  procedure getexelen(name: pathstr; var exelen: longint);
    var
      h: array[1..3] of word;
      f: file;
    begin
      exelen:=0;
      assign(f,name);
      reset(f, 1);
      blockread(f, h, sizeof(h));
      exelen:=longint(h[3]-1)*512+h[2];
      close(f);
    end;

  begin
    getexelen(paramstr(0), exelen);
    assign(f, paramstr(0));
    reset(f, 1);
    len:=filesize(f);
    for i:=exelen+1 to len-1 do begin
      blockread(f, ch, 1);
      write(ch);
    end;
    close(f);
  end.

将这个程序保存为a.pas, 编译得到a.exe.

现在运行这个程序, 什么也不会显示.

开一个DOS窗口, 进入tp所在文件夹, 输入一行:
copy /b a.exe+a.pas a.exe /y
也可以把a.pas换成其他文本文件. 注意每次执行这个命令前都要重新编译一下a.exe.

再运行一下a.exe, 有什么效果大家自己试试就知道了.

以上