![]() |
eXeL@B —› Программирование —› интересует соурс на делфи - привязка к оборудованию |
Посл.ответ | Сообщение |
|
Создано: 11 марта 2009 23:19 · Личное сообщение · #1 |
|
Создано: 11 марта 2009 23:24 · Личное сообщение · #2 http://exelab.ru/f/action=vthread&forum=5&topic=13771 в MSDN почитай про функцию GetVolumeInformation() ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 11 марта 2009 23:31 · Личное сообщение · #3 |
|
Создано: 11 марта 2009 23:37 · Личное сообщение · #4 |
|
Создано: 11 марта 2009 23:54 · Личное сообщение · #5 |
|
Создано: 12 марта 2009 00:17 · Личное сообщение · #6 |
|
Создано: 12 марта 2009 00:35 · Личное сообщение · #7 |
|
Создано: 12 марта 2009 00:56 · Личное сообщение · #8 |
|
Создано: 12 марта 2009 01:01 · Личное сообщение · #9 |
|
Создано: 12 марта 2009 01:03 · Личное сообщение · #10 |
|
Создано: 12 марта 2009 01:26 · Личное сообщение · #11 |
|
Создано: 12 марта 2009 01:54 · Личное сообщение · #12 http://exelab.ru/art/?action=view&id=108 http://exelab.ru/art/?action=view&id=91 ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 12 марта 2009 10:26 · Личное сообщение · #13 Function GetHARDid: Dword; Var VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWord; Function GetCPUid: DWord; Asm PUSH EBX PUSH ECX PUSH EDX MOV EAX, 1 CPUID AND EBX, $F8FFFFFF AND ECX, $FFFFFFF7 AND EDX, $FFFBFDFF XOR EAX, EBX XOR EAX, ECX XOR EAX, EDX POP EDX POP ECX POP EBX End; Begin GetVolumeInformationA('C:', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0); GetHARDid:=VolumeSerialNumber xor GetCPUid; End; Привязка к процу (не к серийке проца) + серийка диска С. ![]() |
|
Создано: 12 марта 2009 16:09 · Личное сообщение · #14 |
|
Создано: 12 марта 2009 16:31 · Личное сообщение · #15 |
|
Создано: 12 марта 2009 17:23 · Личное сообщение · #16 |
|
Создано: 12 марта 2009 17:26 · Личное сообщение · #17 |
|
Создано: 12 марта 2009 18:59 · Поправил: SergX · Личное сообщение · #18 coderess в чём проявляется мощь этого примера ? Там тот же CPUID, команда документирована, описаний куча.. Intel Processor Identification and the CPUID Instruction http://sunsite.rediris.es/pub/mirror/intel/Xeon/applnots/24161831.pdf AMD CPUID Specification http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25481.pdf IA-32 architecture CPUID http://www.sandpile.org/ia32/cpuid.htm ![]() |
|
Создано: 12 марта 2009 20:19 · Личное сообщение · #19 К примеру вот код который выдает ксореный ID процессора: procedure TForm1.Button1Click(Sender: TObject); const KEY_1 = $90909090; var i:DWORD; begin asm MOV EAX,1 CPUID MOV i,EAX end; ShowMessage(IntToHex(i XOR KEY_1,4)); end; Затем функция проверки ключа: procedure TForm1.Button2Click(Sender: TObject); const KEY_2 = $41414141; var k,i:DWORD; begin asm PUSHAD MOV EAX,1 CPUID MOV k,EAX POPAD end; i:=StrToInt(Edit1.Text) XOR KEY_2; if(k=i)Then ShowMessage('Ключ верный'); end; Ну и сам кейген: procedure TForm1.Button3Click(Sender: TObject); const KEY_1 = $90909090; KEY_2 = $41414141; var id:DWORD; begin id:=StrToInt(Edit2.Text) XOR KEY_1; Edit3.Text:=IntToStr(id XOR KEY_2); end; Самый простой пример. ![]() |
|
Создано: 12 марта 2009 20:56 · Личное сообщение · #20 |
![]() |
eXeL@B —› Программирование —› интересует соурс на делфи - привязка к оборудованию |
Эта тема закрыта. Ответы больше не принимаются. |