一个在7月搞怪的简单的恶作剧程序
同刚刚看到的那帖的样本类似,同样是Delphi 7所写的,基于TForm类的程序,无壳,同样直接用DeDe进行反编译。
从反编译后的.pas看到,这个程序的结构比较简单:
TForm1=class(TForm)
procedure FormCreate(Sender : TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
其中起作用的就只有一个FormCreate过程。
其行为:
procedure FormCreate(Sender : TObject);{当窗口被创建,收到WM_CREATE消息时,此函数被调用}
begin
调用GetSystemTime获得系统时间
得到计算机名,但是并没有保存这个名称
比较系统时间中的月份是否为7,如不为7,则直接关闭自身窗口,程序会退出
也就是说,这个程序之后的行为,只在7月份才会表现出来:
将计算机名改为"Serveb"
为自身进程提"Seshutdownprivilege"权限(要进行关机或重启的操作,需要有这个权限)
ExitWindows Ex(EWX_REBOOT|EWX_FORCE,0);(强制重启系统,API中间有个空格,是因为不知道为什么被卡卡屏蔽了,所以只能改成这样)
SetWindowLong(Form1.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);{为自身窗口增加一个tool window的扩展属性,这样它不会出现在任务栏上}
在注册表
[HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\runonce]
创建Msconfig键,值为自身文件路径,以实现每次开机后的自启动。
end;