黑基网 首页 学院 网络安全 查看内容

软件注册之获得硬件码各种方法

2009-8-12 10:44| 投稿: security

摘要:   在软件的保护注册中,特别是实现一机一码中,获得硬件编码是一个很重要的工作  1)MAC地址      //对每块网卡,通过网卡编号,获得MAC地址  //网卡编号一般从0开始,但是2000中并不一...
  在软件的保护注册中,特别是实现一机一码中,获得硬件编码是一个很重要的工作  1)MAC地址      //对每块网卡,通过网卡编号,获得MAC地址  //网卡编号一般从0开始,但是2000中并不一定是连续分配  for (int i=0 ;i<lenum.length;i++)  {  //发送一个NCBRESET命令,进行初始化  memset(&ncb,0,sizeof(ncb));  ncb.ncb_command = NCBRESET ;  ncb.ncb_lana_num = lenum.lana[i];//MAC NUM  uRetCode = Netbios(&ncb);    //发送NCBASTAT命令获得网卡信息  memset(&ncb,0,sizeof(ncb));  ncb.ncb_command = NCBASTAT;  ncb.ncb_lana_num = lenum.lana[i];  strcpy((char *)ncb.ncb_callname,"* ");  ncb.ncb_buffer = (unsigned char *)&Adapter;  ncb.ncb_length = sizeof(Adapter);  uRetCode = Netbios(&ncb)[color=#008000];  2)硬盘号    逻辑硬盘序列号  GetVolumeInformation(“c:\\”,VolumeNameBuffer,256,&VolumeSerialNumber,&MaximumComponentLength,&FileSystemFlags,FileSystemNameBuffer,256);    但是这个是一个后天信息,而且有可能作弊  然后我们想从硬盘中直接提取信息,但是这个在windows下是很不方便的,因为windows不允许直接I/O操作,同时windows也不提供相应的api给我们,怎么办呢?        static unsigned int WaitHardDiskIde()  {  BYTE xx;    Waiting:  _asm  {  mov dx,0x1f7  in al,dx  cmp al,0x80  jb Endwaiting  jmp Waiting    }  EndWaiting:  _asm  {  mov xx,al  }    return (xx);  }    void __declspec(naked)InterruptProcess(void)  {  int xx;  int i;  WORD temp;    //store  _asm  {  push eax  push ebx  push ecx  push edx  push esi  }  WaitHardDiskIde();//等待硬盘空闲  _asm  {  mov dx,0x1f6  mov al,0xa0  out dx,al  }  xx = WaitHardDiskIde();  if ((xx&0x58)!=0x58)  {  goto EndIntrupt;  }  for (i=0;i<256;i++)  {  _asm  {  mov dx,0x1f0  in ax,dx  mov temp,ax  }  serial[i] = temp ;  }  EndIntrupt:  //恢复寄存器  _asm  {  pop esi  pop edx  pop ecx  pop ebx  pop eax  iretd  }    }    3)Cpu编号  这个是破解一个软件的时候发现的,结果真的是有实际用途的  _asm  {  mov eax,1  cupid  mov ps,eax  mov mi,ebx  mov ff,edx  }
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文搜集整理自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,请我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部