c#如何写一个自杀程序


  {
             string  bat =  @"@echo off
:tryagain
del %1
if exist %1 goto tryagain
del %0" ;
             File.WriteAllText( "killme.bat" , bat); //写bat文件
             ProcessStartInfo psi =  new  ProcessStartInfo();
             psi.FileName =  "killme.bat" ;
             psi.Arguments =  "\""  + Environment.GetCommandLineArgs()[0] +  "\"" ;
             psi.WindowStyle = ProcessWindowStyle.Hidden;
             Process.Start(psi);
         }



很简单,分为四部

1、主程序执行的时候,调用fileStream 在磁盘上写出一个新的执行文件,这个执行文件可以当成资源文件嵌入到主程序中。

2、主程序通过进程管理启动这个新生成的执行文件。

3、主程序和新进程之间通讯,这个方法就太多了,比方说socket

4、主程序退出,新进程删除主程序。



说下思路吧
1.首先获取程序的路径,格式化个删除的命令 cmd.exe /c del 文件名
2.用CreateProcess来创建子进程,也就是cmd.exe
3.提升进程的执行优先级
4.让cmd.exe带参数执行,也就是先前格式化出来的那



以前实现过,好像是用bat实现的,具体不太清楚。


ls的基础上。修改为循环判断程序是否可以被删除。用
del exefile
然后判断if errorlevel 1 then ...
的方式循环判断直到删除后再删除自己比较合理。延时效果不好。要么时间太长,要么时间太短,无法控制



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值