加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

直接修改exe文件本身的源代码。注意调试时显示的次数

(2009-12-23 15:33:43)
标签:

it

分类: IT(编程)
直接修改exe文件本身的源代码。注意调试时显示的次数始终是0,因为调试时每次都要重写可执行文件。  
  请执行生成的exe文件查看运行结果。  
   
  本程序仅能运行50次。  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs;  
   
  type  
      TForm1   =   class(TForm)  
          procedure   FormCreate(Sender:   TObject);  
          procedure   FormDestroy(Sender:   TObject);  
      private  
          {   Private   declarations   }  
          usedTimes:byte;  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      fs:TFileStream;  
  begin  
      fs:=TFileStream.Create(application.ExeName,fmopenread   or   fmsharedenynone);  
      fs.Seek(-1,soFromEnd);  
      fs.Read(usedTimes,1);  
      fs.Free;  
      showMessage('你已使用了'+intToStr(usedTimes)+'次!只能使用50次。');  
      if   usedTimes>50   then   application.Terminate;     //限制使用50次  
  end;  
   
  procedure   TForm1.FormDestroy(Sender:   TObject);  
  var  
      f:Textfile;  
      fs:TFileStream;  
      i:byte;  
  begin  
      i:=usedTimes+1;  
      copyfile('project1.exe','a.exe',false);  
      fs:=TFilestream.Create('a.exe',fmopenwrite   or   fmshareExclusive);  
      fs.Seek(-1,soFromEnd);  
      fs.Write(i,1);  
      fs.Free;  
      assignfile(f,'delSelf.bat');  
      rewrite(f);  
      writeln(f,'del   project1.exe');//+#10+'ren   a.exe   project1.exe'+#10+'del   %0');  
      writeln(f,'ren   a.exe   project1.exe');  
      writeln(f,'del   %0');  
      closefile(f);  
      winExec('delSelf.bat',sw_hide);  
  end;  
   
  end.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有