主板系列号大谎言和世纪难题!

KcSoft 2003-02-25 11:29:10
在这里看了很多关于主板系列号的问题,但是没有一个人能够得到答案,我根据一些朋友提供的资料(其中也参考了masterz提供的一些代码)终于得到所谓的“主板系列号”,而且有一种说法 -- 在开机最后一行的数据就是所谓的“主板系列号”,其实那根本不是主板系列号,而是主板型号,我在网吧中用同一个型号的主板测试,不管是Win98还是Win2000得到的数据是一样的(就是开机最后一行的数据)。这是主板系列号吗?显示不是的。这真是一个世纪难题!好象没有一点关于主板系列号的资料可以查找,请有经验的版主或朋友们提供一下思路。欢迎讨论!
...全文
187 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
KcSoft 2003-03-07
  • 打赏
  • 举报
回复
jennyvenus() 兄弟,是写错了吧?
用户 昵称 2003-03-07
  • 打赏
  • 举报
回复
some vb code FYI
Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ?1996-2002 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
' applications, but you can not publish
' or reproduce this code on any web site,
' on any online service, or distribute on
' any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'/* used for listview column auto-resizing
Private Const LVM_FIRST As Long = &H1000
Private Const LVM_SETCOLUMNWIDTH As Long = (LVM_FIRST + 30)
Private Const LVSCW_AUTOSIZE As Long = -1
Private Const LVSCW_AUTOSIZE_USEHEADER As Long = -2

Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long


Private Sub Form_Load()

With ListView1
.ListItems.Clear
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Product"
.ColumnHeaders.Add , , "Manufacturer"
.View = lvwReport
.Sorted = False
End With

Command1.Caption = "BaseBoard Info"

End Sub


Private Sub Command1_Click()

ListView1.ListItems.Clear
Call wmiBaseBoardInfo
Call lvAutosizeControl(ListView1)

End Sub


Private Sub lvAutosizeControl(lv As ListView)

Dim col2adjust As Long

'/* Size each column based on the maximum of
'/* EITHER the columnheader text width, or,
'/* if the items below it are wider, the
'/* widest list item in the column
For col2adjust = 0 To lv.ColumnHeaders.Count - 1

Call SendMessage(lv.hwnd, _
LVM_SETCOLUMNWIDTH, _
col2adjust, _
ByVal LVSCW_AUTOSIZE_USEHEADER)

Next

End Sub


Private Sub wmiBaseBoardInfo()

Dim BaseBoardSet As SWbemObjectSet
Dim bb As SWbemObject
Dim itmx As ListItem

Set BaseBoardSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_BaseBoard")

On Local Error Resume Next

For Each bb In BaseBoardSet

Set itmx = ListView1.ListItems.Add(, , "Manufacturer")
itmx.SubItems(1) = bb.Manufacturer
Set itmx = ListView1.ListItems.Add(, , "Caption")
itmx.SubItems(1) = bb.Caption
Set itmx = ListView1.ListItems.Add(, , "ConfigOptions")
itmx.SubItems(1) = bb.ConfigOptions
Set itmx = ListView1.ListItems.Add(, , "CreationClassName")
itmx.SubItems(1) = bb.CreationClassName
Set itmx = ListView1.ListItems.Add(, , "Depth")
itmx.SubItems(1) = bb.Depth
Set itmx = ListView1.ListItems.Add(, , "Description")
itmx.SubItems(1) = bb.Description
Set itmx = ListView1.ListItems.Add(, , "Height")
itmx.SubItems(1) = bb.Height
Set itmx = ListView1.ListItems.Add(, , "HostingBoard")
itmx.SubItems(1) = bb.HostingBoard
Set itmx = ListView1.ListItems.Add(, , "HotSwappable")
itmx.SubItems(1) = bb.HotSwappable
Set itmx = ListView1.ListItems.Add(, , "InstallDate")
itmx.SubItems(1) = bb.InstallDate
Set itmx = ListView1.ListItems.Add(, , "Model")
itmx.SubItems(1) = bb.Model
Set itmx = ListView1.ListItems.Add(, , "Name")
itmx.SubItems(1) = bb.Name
Set itmx = ListView1.ListItems.Add(, , "OtherIdentifyingInfo")
itmx.SubItems(1) = bb.OtherIdentifyingInfo
Set itmx = ListView1.ListItems.Add(, , "PartNumber")
itmx.SubItems(1) = bb.PartNumber
Set itmx = ListView1.ListItems.Add(, , "PoweredOn")
itmx.SubItems(1) = bb.PoweredOn
Set itmx = ListView1.ListItems.Add(, , "Product")
itmx.SubItems(1) = bb.Product
Set itmx = ListView1.ListItems.Add(, , "Removable")
itmx.SubItems(1) = bb.Removable
Set itmx = ListView1.ListItems.Add(, , "Replaceable")
itmx.SubItems(1) = bb.Replaceable
Set itmx = ListView1.ListItems.Add(, , "RequirementsDescription")
itmx.SubItems(1) = bb.RequirementsDescription
Set itmx = ListView1.ListItems.Add(, , "RequiresDaughterBoard")
itmx.SubItems(1) = bb.RequiresDaughterBoard
Set itmx = ListView1.ListItems.Add(, , "SerialNumber")
itmx.SubItems(1) = bb.SerialNumber
Set itmx = ListView1.ListItems.Add(, , "SKU")
itmx.SubItems(1) = bb.SKU
Set itmx = ListView1.ListItems.Add(, , "SlotLayout")
itmx.SubItems(1) = bb.SlotLayout
Set itmx = ListView1.ListItems.Add(, , "SpecialRequirements")
itmx.SubItems(1) = bb.SpecialRequirements
Set itmx = ListView1.ListItems.Add(, , "Status")
itmx.SubItems(1) = bb.Status
Set itmx = ListView1.ListItems.Add(, , "Tag")
itmx.SubItems(1) = bb.Tag
Set itmx = ListView1.ListItems.Add(, , "Version")
itmx.SubItems(1) = bb.Version
Set itmx = ListView1.ListItems.Add(, , "Weight")
itmx.SubItems(1) = bb.Weight
Set itmx = ListView1.ListItems.Add(, , "Width")
itmx.SubItems(1) = bb.Width
Next

End Sub
'--end block--'


KcSoft 2003-03-07
  • 打赏
  • 举报
回复
做个记号;ensionhower
KcSoft 2003-03-07
  • 打赏
  • 举报
回复
我把系列号直接写到程序中去,这样别人就不可以破解了吧????

他能把我的程序中自定义的函数的值改变吗?不可能吧?
程序加密是大家的事,(很多大公司不是一样在加密吗?},谢谢大家!


欢迎继续讨论!!!!!!!!!!!!!!!!
newhero 2003-03-06
  • 打赏
  • 举报
回复
前面有人这样说:
你们做开发的时候思路都这么狭窄吗?
如果你发现哪一个软件能够正确的读出主板序列号,那么这个功能就是可以实现的,然后你可以分析这个软件使用了什么API,判断是不是API来实现的,如果不是API来实现的,那么它必然是一些汇编指令来实现的,那你就去查一查intel芯片的汇编指令。

我的问题是不知道应该怎么样去分析软件使用了什么API?
ukyoking 2003-03-06
  • 打赏
  • 举报
回复
最好就是仿效winxp网上激活的做法,不过就算这样还不是一样被人破戒
yinx 2003-03-06
  • 打赏
  • 举报
回复
dependency walker
KcSoft 2003-02-28
  • 打赏
  • 举报
回复
我的EMail: webmaster@kechuangsoft.com
KcSoft 2003-02-28
  • 打赏
  • 举报
回复
好的,leo_dong_@sohu.com
KcSoft 2003-02-28
  • 打赏
  • 举报
回复
十分感兴趣,我已给您留言了。
Leo 2003-02-27
  • 打赏
  • 举报
回复
"KcSoft(KcSoft):听说硬盘的系列号会在格式化后改变的。如果是真的话,意义不是很大。"
此系列号非彼系列号。你说的是用GetVolumeInformation()得到的lpVolumeSerialNumber。此系列号是随格式化而产生的,软盘和硬盘的每个分区都有一个,随格式化而改变。你可以在dos窗口用DIR命令就可以看到,称之为“卷的序列号”。
我所说的序列号是硬盘序列号,是硬盘出厂时写在硬盘的EPROM内的,不可改变而且唯一。而且不管分区的多少,只有一个,即使低格也改变不了。
感兴趣的话,我可以替你做一个DLL。


Happy197212 2003-02-26
  • 打赏
  • 举报
回复
To doomleo(leo) :
怎么得到硬盘序列号, 用什么API?
StdAfx 2003-02-26
  • 打赏
  • 举报
回复
to KcSoft(KcSoft) :
你看看吧:
http://www.isecurity.com.cn/products/index.htm
那里有比较全面的加密狗原理和使用方法的介绍。
Leo 2003-02-26
  • 打赏
  • 举报
回复
用硬盘序列号加密,有很多现成的代码,而且WIN9X和WIN2000/NT/XP都可以实现,只是方法不同,不过解密比加密要容易的多。可以考虑结合注册码的方式。最好加密的位置要多一些,而且不要写成函数形式(容易被跳过)。加密主要是出奇制胜,不要图简单用现成的代码,至少要修改修改再用。
程序的色彩 2003-02-26
  • 打赏
  • 举报
回复
http://www.isecurity.com.cn/products/index.htm
KcSoft 2003-02-26
  • 打赏
  • 举报
回复
ll_pp(木木):听说硬盘的系列号会在格式化后改变的。如果是真的话,意义不是很大。
KcSoft 2003-02-26
  • 打赏
  • 举报
回复
ziyue(紫月) :可以说一下你的加密原理,谢谢!
Leo 2003-02-26
  • 打赏
  • 举报
回复
到网上搜一下,有很多。
demetry 2003-02-26
  • 打赏
  • 举报
回复
^_^
ll_pp 2003-02-26
  • 打赏
  • 举报
回复
主板没有唯一序列号,同一批主板的都一样,可以用硬盘序列号
加载更多回复(12)

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧