日记分类:VB相关

downshare源码

由于上次丢失本本,数据全部丢失,之后重新写了downshare,代码比之前严谨了好多,虽然这个工具只是为了自己以及大家方便,确是没有技术含量的,重写后的downshare由于一直不稳定,加之被恶意下载,所以一直没有提供下载地址,只是朋友间的互传而已,对此感到非常抱歉,打算下次升级后再放出下载,升级计划也没什么,只是做个115的终结版本,要不115一更新,downshare就需要更新,这样感觉很不好,所以下次将是1.X的终结版,至于是不是还有2.0,到时候再说吧,最近一直很忙,整天应对着服务器被攻击,很无奈,目前正在做的便是SERVER2003的一个优化工具,包括WEB环境一健架设,服务优化,等等一系列的全方位的优化工具,说实话,工作量还是蛮大的。。。
下边就将downshare的部分代码贴出来,有需要的可以直接拿,基本没有技术含量。。。具体说明就没有了。相信有点基础的都可以看的懂的。 Continue

关于ADSL暴力破解器

很久以前无聊的时候做了一个ADSL密码暴力破解器,(那会貌似刚开始学编程吧。。)因为大多数ADSL拨号上网的用户名基本也就是电话号码,或者添加个字母什么的,一个地区都是用统一的方式,不过最不好的一点就是MAC延时绑定了,呵呵,不过这个不影响我,所以就搞了个,当时只是为了自己方便,没有做什么美化,呵呵。。。

今天翻硬盘的时候发现的。。

以下是主要的拨号连接代码

拨号/断网
Private Declare Function ShellExecute Lib “shell32.DLL” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Continue

vb中几种检测文件是否存在的方法

很久都没用过VB了,最近喜欢上了vs 2010功能实在强大,不过还在入门阶段。。。继续。。。

第一种,功能比较强大的方法

Option Explicit
‘api_GetPATH:vb中检测文件是否存在
Private Declare Function SHFileExists Lib “shell32″ Alias “#45″ (ByVal szPath As String) As Long
‘这个函数除了能判断文件是否存在外,还可以判断本地或远程文件
‘”\\192.168.0.1\d$\javatools\somefile.txt”
‘”\\workstation\javatools\somefile.txt”
‘”http://www.microsoft.com/ms.htm”
Private Declare Function GetFileAttributes Lib “kernel32″ Alias “GetFileAttributesA” (ByVal lpFileName As String) As Long

Private Declare Function PathFileExists Lib “shlwapi.dll” Alias “PathFileExistsA” (ByVal pszPath As String) As Long
‘自定义全部属性,以检测隐藏或系统文件
Private Const vbAllFileAttrib = vbNormal + vbReadOnly + vbHidden + vbSystem + vbVolume + vbDirectory

Private Enum SelectCheckFile
DIRCheck = 0 ‘方法1,Dir检测文件是否存在
OPENCheck = 1 ‘方法2,Open检测文件是否存在
GetFileCheck = 2 ‘判断指定文件的属性
PathFileCheck = 3 ‘判断文件是否存在外
SHFileExistsCheck = 4
End Enum Continue

十二行代码搞定自动更新

自动更新过程
Sub cyUpdateMyself(ByVal sSourceFile As String)
On Error GoTo Err
Dim sFileName As String

‘当前运行的是临时文件
If InStr(1, App.EXEName, “.TMP”) > 0 Then
‘将临时文件复制为原文件名
FileCopy IIf(right(App.Path, 1) = “\”, App.Path, App.Path & “\”) & App.EXEName & “.EXE”, Replace(IIf(right(App.Path,1) = “\”, App.Path, App.Path & “\”) & App.EXEName & “.EXE”, “.TMP”, “”)
Else
‘当前运行的是原文件,则比较时间看是否需要更新
If FileDateTime(IIf(right(App.Path, 1) = “\”, App.Path, App.Path & “\”) & App.EXEName & “.EXE”) < FileDateTime(sSourceFile) Then
‘现文件比较旧,须更新
sFileName = IIf(right(App.Path, 1) = “\”, App.Path, App.Path & “\”) & App.EXEName & “.TMP.EXE”
‘将源文件复制为临时文件名
FileCopy sSourceFile, sFileName
‘运行临时文件
ShellExecute 0, vbNullString, _
sFileName, vbNullString, _
vbNullString, SW_NORMAL
‘关闭自已(为确保临时文件运行后复制自我成功)
End
Else
‘如果文件不比源文件旧则删除可能存在的临时文件
On Error Resume Next
Kill IIf(right(App.Path, 1) = “\”, App.Path, App.Path & “\”) & App.EXEName & “.TMP.EXE”
End If
End If
Exit Sub
Err:
If Err.Number = 53 Then Exit Sub ‘设置好的更新文件不存在!
Call MsgBox(Err.Description, vbCritical Or vbSystemModal, “自动更新错误”)
End Sub

调用方法:
Sub Main()
‘执行自动更新
cyUpdateMyself “\\dsbtech\oa$\DbOA.exe” ‘(源文件)
 ……
end sub
 转自波少的博客

VB简单实现程序退出后删除自身

很多木马、病毒都会有运行后释放病毒文件,然后退出程序删除自身的功能,这些功能是怎么实现的呢?
我看到有一些文章对于C语言的实现方法是创建一个线程,然后利用这个线程进行删除;对于VB的很多是生成一个批处理文件,退出时调用该文件删除程序本身,然后再删除批处理自身。

对于VB来说,创建线程是比较麻烦的,所以这里也用批处理的方式来删除自身。
不过生成批处理文件也有个不好的地方就是,如果该分区是NTFS格式的话,批处理自身有时会删除不掉。那我们用什么方法来避免这个问题呢?那就是不生成中间批处理文件,直接就运行删除的命令。

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell “cmd /c del ” & App.EXEName & “.exe”
End Sub

不过这样一来也有个问题就是有时候电脑处理的工作太多的话(比如开了Photoshop等大型的程序),资源释放得比较慢,删除就会失败。那我们得给该命令来个延时才行,可是我不知道有什么延时的命令,那该怎么办呢?没关系,我们用&&连接符把一个PING命令和删除的命令一起执行就行了。

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell “cmd /c ping 127.0.0.1&&del ” & App.EXEName & “.exe”
End Sub

这个VB代码主要利用了批处理功能,可以安全的删除自己。

Private Sub Form_Load()
‘建立批处理
Open App.Path & ”\a.bat” For Output As #1
‘”@echo off” 不显示执行过程
Print #1, ”@echo off”
Print #1, ”sleep 100″
‘a.bat 删除指定文件
Print #1, ”del ” & App.EXEName + ”.exe”
‘a.bat 删除自身
Print #1, ”del a.bat”
Print #1, ”cls”
Print #1, ”exit”
Close #1

Shell App.Path & ”\a.bat”, vbHide
End
End Sub

不过这样编译后有4个杀毒软件报毒,很无奈….

VB 实现屏幕右下角浮出式消息窗口,透明淡出效果。

‘任务栏高度[此部分相关代码转载自 枕善居]
Private Declare Function SystemParametersInfo Lib “user32″ Alias “SystemParametersInfoA” (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_GETWORKAREA = 48

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

‘透明 Continue

VB如何限制软件使用天数…

今天在写东西的时候因为是用来测试的,所以要限制一下程序的使用天数,所以就得用下边的方法,还是比较简单的.

Private Sub Form_Load()
Dim t As Date
Dim yy
Dim mm
Dim dd
Dim tt
t = CDate(Date)
If DateDiff(“d”, t, ”2009-09-20″) <= 0 Then
MsgBox ”对不起,该软件到期,您只能用到2010-09-20日”, , ”过期” Continue

VB-u盘自动复制

下午研究利用U盘锁定计算机的小程序,就譬如各个银行的U盾一样。突然发现这个VB写的可以自动检测U盘插入后自动拷贝到指定文件夹小程序。不知道什么时候收集的,沉积在硬盘里貌似憋坏了,就发出来,这个程序类似于u盘小偷,不过想做成U盘小偷那样还得修改修改,记得那会上学的时候曾利用u盘小偷偷过老师U盘里边的考试资料。嘿嘿。不过U盘小偷的程序是C++写的,如果你想研究的话,可以留言,我把源代码发给你。

很简单,下边是源代码

Dim m As Integer
Dim f As Integer
Dim q As Integer
Private Sub Command1_Click()
m = Drive1.ListCount
m = m – 1
File1.Path = Drive1.List(m)
f = File1.ListCount
For n = 0 To f
On Error Resume Next
Text1.Text = File1.Path & File1.List(n)
Text2.Text = “c:\” & File1.List(n)
FileCopy Text1.Text, Text2.Text
If n = f Then
MsgBox “复制完毕”, , “提示” Continue

VB中如何动态调用DLL

所属分类:VB API
———————————————————————-

我现在需要动态调动一些未知的DLL,

Private Declare Function LoadLibrary Lib ”kernel32″ Alias ”LoadLibraryA” (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib ”kernel32″ (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function FreeLibrary Lib ”kernel32″ (ByVal hLibModule As Long) As Long
Private Declare Function CallWindowProc Lib ”user32″ Alias ”CallWindowProcA” (ByVal lpPrevWndFunc As Long, ByVal Hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Continue

用VB编写自我升级的程序

貌似上次写的自我升级程序还不够完美,今天又来一个

‘需要:Microsoft Internet Transfer Control 6.0控件
‘原理:在网站上建立一个updata.txt文件,里面保存升级信息
‘updata.txt文件格式:
‘文件内容:
‘共三行,第一行:版本号;第二行:更新文件名;第三行: 文件长度

Public Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOWNORMAL = 1
Public Const SW_MINIMIZE = 6

Continue

第 1 页,共 2 页12