首页 | 业界新闻 | 黑客教程 | 安全漏洞 | 安全文章 | 破解技术 | 技术文摘 | 黑客文化 | 本站原创 | 安全贴吧 | 在线留言 | IP查询 | 软件下载 | 繁体中文 |
您现在的位置: 黑色反击 >> 技术资讯 >> 黑客教程 >> 黑客编程 >> 正文
VB木马也疯狂
时间:2006-3-29 2:23:43 出处:网络技术论坛 作者:小金 编辑:mervin 点击数:


六、整齐的,才是最好的
没有人喜欢零散,写程序也一样,零散的代码让程序变得难读难修改,时间久了连你自己都不知道某个语句为什么在那里,起什么作用了;而且代码零散还会降低程序运行效率,增加不必要的重复代码,增大了程序的体积。
例如一个用于判断文件是否存在的代码:
=========================================================
Dim FileExists As Boolean
Open FileName For Input As #1
If Err = 0 Then
FileExist = True
Else
FileExist = False
End If
=========================================================
如果你要判断多个文件是否存在,就必须把上面的代码重复多次,自己累不算,程序也变得臃肿。
VB给我们提供了模块,利用模块的全局属性,我们可以把一些重复的代码写成全局函数,方便了自己也减少了程序的开销:
=========================================================
Function FileExist(FileName As String) As Boolean
On Error Resume Next '别忘了错误陷阱
Dim FileNum As Integer
FileNum = FreeFile()
Open FileName For Input As #FileNum
If Err = 0 Then
FileExist = True
Else
FileExist = False
End If
Close #FileNum
End Function
=========================================================
在全局模块里声明了这个函数(别用Private前缀声明)后,我们就可以方便的在程序任何角落用FileExists("文件名")来判断了,而且把程序代码模块化也提高了代码可读性。
所以,为了程序更好执行,请尽量把代码模块化。

附:给出几个实用的模块化代码
=========================================================
'判断文件是否存在
Function FileExist(FileName As String) As Boolean
On Error Resume Next
Dim FileNum As Integer
FileNum = FreeFile()
Open FileName For Input As #FileNum
If Err = 0 Then
FileExist = True
Else
FileExist = False
End If
Close #FileNum
End Function

'获取程序本身所在的目录(返回的字符以“\”结尾)
Function Path() As String
If Len(App.Path) <= 3 Then
Path = App.Path
Else
Path = App.Path & "\"
End If
End Function

'获取系统目录(SYSTEM)路径
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Function SysPath() As String
SysPath = String(145, Chr(0))
SysPath = Left(SysPath, GetSystemDirectory(SysPath, 145)) & "\"
End Function

'获取Window路径(Windows系统目录)
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Function WinPath() As String
WinPath = String(145, Chr(0))
WinPath = Left(WinPath, GetWindowsDirectory(WinPath, 145)) & "\"
End Function

'字符串替换(使用方法:输出=ModifyString(欲处理的字符串,原字符,替换字符),例如 strOut=ModifyString(strSource,"hello","你好"),表示把strSource变量里的“hello”替换为“你好”)
Public Function ModifyString(strModString As String, strSrc As String, sgnModify As Variant)
On Error Resume Next
If strSrc <> sgnModify Then
While InStr(strModString, strSrc) <> 0
strModString = Left(strModString, InStr(strModString, strSrc) - 1) & sgnModify & Mid(strModString, InStr(strModString, strSrc) + Len(strSrc))
Wend
End If
ModifyString = strModString
End Function
=========================================================


七、Win9x?Win2000?
由于Windows的两个不同架构(Win9x、WinNT),导致了环境的差异,更雪上加霜的是MS在两个架构的系统里提供了某些会引发兼容问题的API,例如RegisterServiceProcess这个用于注册系统服务的API,在9x环境里正常,在NT里则变成“找不到DLL入口”——NT架构的系统服务概念和9x不同。又如涉及网络操作的一些API,9x里休想找到它们的影子。当你的程序调用了这些无法访问的API,立即就会崩溃,而且死之前还会老实的弹出对话框暴露自己,落得个连诛九族……
当然,还有一个更重要的问题,那就是NT架构才有的NT服务(NT-Service),在下文会介绍。
因为有这些环境差异,我们不得不根据不同的环境设置不同的路标,这就需要判断系统类型了。Windows也有自知之明,给我们提供了GetVersionEx这个API。
=========================================================
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion(1 To 128) As Byte
End Type
Public Const VER_PLATFORM_WIN32_NT = 2&
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

Function CheckIsNT() As Boolean
Dim OSVer As OSVERSIONINFO
OSVer.dwOSVersionInfoSize = LenB(OSVer)
GetVersionEx OSVer
CheckIsNT = OSVer.dwPlatformId = VER_PLATFORM_WIN32_NT
End Function
=========================================================
如果CheckIsNT函数返回True,那就是NT/2000/XP没错了,接下来你应该知道如何对付Windows了吧。
 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

精彩推荐
hack菜鸟入门
VB 从零开始编外挂(完
IPC入侵全接触
QQ跨站漏洞巧利用,强
WinXP中CPU占用100%原
黑客新技术 灰鸽子巧妙
实例讲解 黑客入侵论坛
ADSL共享上网方式大总
BMP文件格式分析
十招教你学会破解
热门软件
网 友 评 论
关于我们 - 联系方式 - 招聘信息 - 合作伙伴 - 网站地图 - 广告服务 - 我要投稿 - 设为首页 - 加入收藏
黑色反击 力倡网络安全,崇尚互联共享,欢迎各种媒体转载我们的原创作品 [转载请注明出处]。
EMAIL:hf110.com@gmail.com 备案:苏ICP备05010002号