vb代码修改硬盘的分区序列号

谁说VB的功能弱,看看这个程序!

原本我的一个商用程序被破解了,气氛啊~~~ 程序只是将一些关键的注册信息是隐藏到注册表内的。反汇编后很容易被破解,我就想到通过修改这个硬盘分区的序列号来隐藏一些关键的信息虽然只有4个字节。作为动态的内部认证码。外部认证码通过硬件ID硬盘的物理序列号加密计算获得。

通过这些处理增加了解密的复杂度,还是有一些效果的。主要是分区表信息文件操作的过程增加反汇编破解的复杂度。



(注:代码非关键技术代码,安全原因)

Option Explicit
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long,ByVal lpBuffer As String) As Long


Private Sub ChkDrive_Click()
    
    CmbDrive.Clear
    If CBool(ChkDrive.Value) Then
        Dim objDrive As New ClsDriveType
        Call objDrive.ExecuteDriveUdisk
    Else
        Call Form_Load
    End If
    
End Sub

Private Sub CmbDrive_Click()
    Dim obj As New diskSerialNumberChanger
    TxtSerial.Text = Right("00000000" & Hex(obj.GetDriveSerial(CmbDrive.Text)),8)
    
    Dim objDrive As New ClsDriveType
    Lab(2).Caption = objDrive.GetDriveTypeName(CmbDrive.Text)
End Sub

Private Sub CmdDrive_Click()

'*中央错误处理
On Error GoTo PROC_ERR

    Dim strMessage As String
    Dim sSerial As String
    sSerial = TxtSerial.Text
    If Len(sSerial) <> 8 Then
        strMessage = "非四个字节的十六进制字符"
        MsgBox strMessage,vbExclamation
        GoTo PROC_EXIT
    End If
    
    Dim objBin As New ClsBin
    If Not objBin.IsHexByteLen(sSerial) Then
        strMessage = "非四个字节的十六进制字符"
        MsgBox strMessage,vbExclamation
        GoTo PROC_EXIT
    End If
    
    Dim obj As New diskSerialNumberChanger
    If obj.ChangeDriveSerial(CmbDrive.Text,CLng("&H" & TxtSerial.Text)) Then
        If obj.GetFileSystemName(CmbDrive.Text) = "fat32" Then
            MsgBox "修改成功!请执行读取验证"
        Else
            MsgBox "修改成功!请执行读取验证" & vbCrLf & _
                   "系统文件为NTFS格式,请从新启动计算机后,在读取验证"
        End If
    Else
        MsgBox "修改失败!"
    End If
    
    '*结束子程序
PROC_EXIT:
    Exit Sub
'*错误处理,显示出错信息
PROC_ERR:

    MsgBox "     ErrNumber: " & Err.Number & vbCrLf & _
           "ErrDescription: " & Err.Description & vbCrLf & _
           "        Module: " & "ClsRs" & vbCrLf & _
           "     Procedure: " & "CmdDrive_Click"

    GoTo PROC_EXIT
End Sub


Private Sub Form_Load()
    Call ExecuteDriveUdisk
    
    Dim sInfo As String
    sInfo = sInfo & "说明:硬盘序列号是格式化时,Windows操作系统分配的。" & vbCrLf
    sInfo = sInfo & "       若系统文件格式是NTFS,重新启动后生效。" & vbCrLf
    sInfo = sInfo & vbCrLf
    sInfo = sInfo & "作者:段利庆(Lee) QQ:14035344" & vbCrLf
    sInfo = sInfo & "网址::http://www.duanliqing.kudo.cn" & vbCrLf
    Lab(3).Caption = sInfo
End Sub



作者:段利庆(Lee) QQ:14035344

如果需要这个修改盘符硬盘序列号的小工具 可以Q我或 发送电子邮件到我的邮箱duanliqing@sohu.com

硬盘序列号修改工具下载地址:http://good.gd/759048.htm

硬盘序列号修改工具V1.0.0.2下载地址:http://good.gd/760680.htm

硬盘序列号修改工具V1.0.0.7下载地址:http://good.gd/765073.htm

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...