private
驱动牛犊
驱动牛犊
  • 注册日期2001-11-21
  • 最后登录2002-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1508回复:5

请问win2k如何读取主板序列号

楼主#
更多 发布于:2002-05-15 15:46
如果读不出序列号,能读出bios的内容也可以,小弟用来做软件加密用。
小弟对ddk一窍不通,请大家给个代码。

最新喜欢:

appsapps
wzwgy
驱动牛犊
驱动牛犊
  • 注册日期2002-08-23
  • 最后登录2003-02-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-23 04:18
读内存吧。
我游,我游呀,游。。
caosuricheng
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2004-09-04
  • 粉丝0
  • 关注0
  • 积分-10分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-23 08:20
以前讨论过,找一找读写物理内存的帖子
我是草肃日成 有人认识我吗?
sufeng
驱动牛犊
驱动牛犊
  • 注册日期2002-04-27
  • 最后登录2004-08-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-08 19:30
Windows 2000 下通过访问物理地址取主机唯一信息(WSS-SourceCode-02005)

Author:  sinister
Email:   sinister@whitecell.org
Homepage:http://www.whitecell.org
Date:    2002-05-28

在9x下取得主版序列号非常简单,但此方法在NT/2K下行不通。还好NT/2K下
提供了 \\Device\\PhysicalMemory 设备,通过它可以得到物理地址。在9x下
通过访问地址 FEC71H 可以得到主板序列号。NT/2K下虽不保证是主板序列号,
但经过多台机器反复测试,此地址的值是不变且唯一的。下面是我 DRIVE 中
取主机唯一信息的代码,错误之处还望各位指正。  

BOOLEAN MainBoardBiosSerialNo()
{
    
    HANDLE physmem;
    UNICODE_STRING physmemString;
    OBJECT_ATTRIBUTES attributes;
    WCHAR physmemName[] = L\"\\\\Device\\\\PhysicalMemory\";

    NTSTATUS ntStatus;
    DWORD RAdd  = 0xFEC71;
    DWORD LAdd  = 100;
    DWORD OAdd;
    DWORD i;
  

    RtlInitUnicodeString( &physmemString, physmemName );

    InitializeObjectAttributes( &attributes,
               &physmemString,
OBJ_CASE_INSENSITIVE,
NULL,
NULL
                              );


    ntStatus = ZwOpenSection( &physmem,
                              SECTION_MAP_READ,
     &attributes
                            );

    if( !NT_SUCCESS( ntStatus ))
    {      
DbgPrint(\"ZwOpenSection() is error\\n\");
        return FALSE;
    }

    DbgPrint(\"ZwOpenSection() is OK\\n\");

    if (!MapView(physmem,&RAdd,&LAdd,&OAdd))
    {      
DbgPrint(\"MapView() is error\\n\");
        return FALSE;
    }

     DbgPrint(\"MapView() is OK\\n\");

     for ( i = 0; i < LAdd; i ++)
     {
         DbgPrint(\"%x\",*(PUCHAR)(OAdd + i));
        
     }

     ntStatus = ZwUnmapViewOfSection( (HANDLE) -1, (PVOID) OAdd );

    if( !NT_SUCCESS(ntStatus))
    {
        DbgPrint(\"Unable to unmap view\");
  return FALSE;
    }


return TRUE;
}


BOOLEAN MapView( HANDLE HPMemory,DWORD *dwAddress,DWORD *dwLength,DWORD *dwVAddress )
{
    NTSTATUS         Status;
    PHYSICAL_ADDRESS ViewBaseAddress;

    *dwVAddress = 0;
    ViewBaseAddress.QuadPart = (ULONGLONG) (*dwAddress);

    Status = ZwMapViewOfSection ( HPMemory,
                                  (HANDLE) -1,
 (PVOID)dwVAddress,
 0,
 *dwLength,
 &ViewBaseAddress,
 dwLength,
 ViewShare,
 0,
 PAGE_READONLY
);

    if( !NT_SUCCESS( Status ))
    {
        return FALSE;
    }

    return TRUE;
}

 



WSS(Whitecell Security Systems),一个非营利性民间技术组织,致力于各种系统安全技术的研究。坚持传统的hacker精神,追求技术的精纯。
WSS 主页:http://www.whitecell.org/
WSS 论坛:http://www.whitecell.org/forums/
freducn2002
驱动小牛
驱动小牛
  • 注册日期2002-06-26
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望29点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-10-09 09:22
谢谢sufeng的无私奉献,
http://www.whitecell.org 不错
sufeng
驱动牛犊
驱动牛犊
  • 注册日期2002-04-27
  • 最后登录2004-08-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-09 11:29
我也是把别人的东西转贴了一遍。
好东西当然大家一起分享。
游客

返回顶部