|
[ IDE @ 27.12.2005. 12:04 ] @
| da se odmah razumijemo, prije nego sam postavio ovu temu ja sam pregledao sve posove na ovu temu koji se mogu naci na ES-u , pa sam isao i na http://groups-beta.google.com i na jos par sajtova, ali je to sve neka prica o tome , ali nista konkretno...
ponegdje sam pronasao neke gotove programe koji rade ovakve stvari (STO MENE NE INTERESUJE VEC ZELIM SAMI KOD kako dobiti pomenuto), ili daju sve informacije samo ne ove dvije....
znaci: zelim u Borland C++ Builder-u da odradim da mi program vrati serijski broj CPU-a I HDD-a...nemam nista protiv ni da mi vrati jos serijske brojeve ostalih uredjaja ali koji postoje na SVAKOM racunaru....ali akcenat stavljam na CPU i HDD...
prema tome, ako neko zna konkretan odgovor na ovo, bio bih vise nego zahvalan...
a, da... znaci serijski broj HDD-a(fabricki, nepromjenjiv...) , a ne neke particije... |
[ X Files @ 27.12.2005. 15:13 ] @
Ceo kod API za odredjivanje serijskog HARDVERSKOG broja diska (ne particije),
imas ovde:
http://www.winsim.com/diskid32/diskid32.html
Broj procesora nije sigurno resenje, jer ga mnogi i nemaju...
[ ljube @ 27.12.2005. 17:45 ] @
Probao sam jednu verziju ovog programa i definitivno ne radi sa raid kontrolerima (kada se dva diska prijavljuju kao jedan veći).
Lj.
[ X Files @ 27.12.2005. 18:04 ] @
diskid32.exe je ODLIČAN i njegov source već dugi niz godina koristim kao osnovu
za zaštitu svojih programa. U međuvremenu je usavršavan i ispravljani su bugovi.
Za one koji koriste C++ Builder ynam da će na jednom mestu morati da stave
__int64 umesto valjda long int.
Takođe treba se otarasiti silnih header-a.
Citat:
Probao sam jednu verziju ovog programa i definitivno ne radi sa raid kontrolerima
(kada se dva diska prijavljuju kao jedan veći).
S obzirom da se već duže vreme bavim zaštitama i iščitavanjem "jedinstvenih
obeležja PC-ja", prilažem jedan thread o tome zašto RAID (u principu) ne može i
izgleda neće ni moći:
Citat:
Re: Reading HD info from RAID
As somebody who has written code to do this for dozens of RAID controllers from
I think 8 different manufacturers, I think I'm uniquely qualified to elaborate with
an answer.. Bottom line, unless your application is one that is designed for
specific RAID engines, and in some case firmware revisions, forget it. The methodology
to do this is vendor/product and sometimes firmware rev unique. In general, you'll have
to first go through legal to get a Non-disclosure so you can get access to either a SDK
or a manual. Some SDKs use DLLs that you link in, others require use of peeking/poking
memory addresses, others require doing pass-through SCSI or IDE (ATA/SATA) commands.
Some engines don't have enough intelligence to directly access the data you want, and
you might be limited to a massaged structure. Others have stringent timing logic that
you must utilize or the controller becomes unstable. I have yet to find any two engines
that are remotely similar in their API. Not even when controller company "B" buys
controller company "A" do they attempt to merge APIs. For what it is worth, there is a
standard that is coming out of SNIA that a few vendors such as Dell and Adaptec have
jumped on board, but this is only going to affect new products and not all (PC-level)
RAID vendors have adopted the spec. There are a load of other isses you would have to
deal with also, as there are further differences in the methodology when you have PATA/SATA
vs SCSI/FC disks. Please don't ask me to reveal secrets for any particular vendor, as I
won't even respond to such requests. All I can offer is that what you are trying to do
is a huge task. If you are trying to get this information for protecting software, for
example, then rethink that. Maybe just use some manufacturer-supplied routine or GUI program
and just figure out a way to get it from that instead.
A što se tiče broja CPU-a:
--- Ovo je za C++ Builder ---
Citat:
> Is there such thing as unique number on each Intel Pentium CPUs?
Only Intel Pentium 3 (and a few mobile Pentium 2) processors have a unique
serial number on each chip. However, it can be (and usually is) disabled by
the user in the BIOS settings. Intel dropped the feature in Pentium 4
because it was not widely accepted and caused a lot of controversy with
privacy advocates.
> If so how can we read that number within BCB?
Code:
(Untested):
#pragma pack(push, 1)
struct TCPUID
{
DWORD Version;
DWORD Other;
DWORD ExtendedFeatures;
DWORD Features;
};
#pragma pack(pop)
#pragma option push -w-
void __fastcall CPU_ID(TCPUID* CpuID)
{
__asm
{
PUSH EBX
PUSH EDI
MOV EDI, EAX
MOV EAX,1
DW 0xA20F
STOSD
MOV EAX, EBX
STOSD
MOV EAX, ECX
STOSD
MOV EAX, EDX
STOSD
POP EDI
POP EBX
}
}
void __fastcall CPU_Serial(unsigned __int64* SerialNumber)
{
__asm
{
PUSH EBX
PUSH EDI
MOV EDI, EAX
MOV EAX, 3
DW 0xA20F
MOV EAX, ECX
STOSD
MOV EAX, EDX
STOSD
POP EDI
POP EBX
}
}
bool IsCPUIDAvailable(void)
{
__asm
{
PUSHFD
POP EAX
MOV EDX, EAX
XOR EAX, 0x00200000
PUSH EAX
POPFD
PUSHFD
POP EAX
XOR EAX, EDX
SHR EAX, 21
}
}
bool GetCPUSerialNumber(unsigned __int64 *SerialNumber)
{
*SerialNumber = 0;
if( IsCPUIDAvailable() )
{
TCPUID CpuID;
memset(&CpuID, 0, sizeof(TCPUID));
CPU_ID(&CpuID);
if( CpuID.Features & 0x00040000 )
{
CPU_Serial(SerialNumber);
return true;
}
}
return false;
}
#pragma option pop
Then you can call it like this:
__int64 SerialNumber = 0;
if( GetCPUSerialNumber(&SerialNumber) )
// use serial number as needed...
Gambit
[Ovu poruku je menjao X Files dana 27.12.2005. u 21:05 GMT+1]
[ IDE @ 27.12.2005. 20:17 ] @
ok, hvala, pogledacu ovo...
ima li jos od necega da se sazna serijski broj, ali uredjaj koji sigurno svaki racunar ima...???
[ X Files @ 27.12.2005. 21:20 ] @
U danasnje vreme u obzir dolaze i Mrežne kartice...
[ Nedeljko @ 28.12.2005. 00:07 ] @
Zašto se ne vezuješ za serijski broj medijuma? Svaki medijum (flopi disketa, cd, dvd) ima jedinstveni serijski broj. Na medijum na koji snimaš program, snimi program tako da se instalacija pokrene samo ako je serijski broj medijuma baš taj na koji si snimio program. Time se obezbeđuješ od umnožavanja.
[ yooyo @ 28.12.2005. 01:00 ] @
A da npr. kupis najjednostavniji HASP paket (5 USB kljuceva) koji kosta ~100E i to delis uz program. Ako se tvoj program dobro prodaje, uvek mozes da narucis jos kljuceva.
HASP nudi solidnu zastitu. Naravno, nijedna zastita nije 100% sigurna, pa ni HASP, ali ce potencijalni razbijac da se pomuci. Ako zelis kontakt za kupovinu HASP-a javi mi se na PM.
yooyo
[ IDE @ 28.12.2005. 10:28 ] @
Citat:
A da npr. kupis najjednostavniji HASP paket (5 USB kljuceva) koji kosta ~100E i to delis uz program. Ako se tvoj program dobro prodaje, uvek mozes da narucis jos kljuceva.
HASP nudi solidnu zastitu. Naravno, nijedna zastita nije 100% sigurna, pa ni HASP, ali ce potencijalni razbijac da se pomuci. Ako zelis kontakt za kupovinu HASP-a javi mi se na PM.
ne, ovo mi je za sada nepotrebno...
Citat:
Zašto se ne vezuješ za serijski broj medijuma? Svaki medijum (flopi disketa, cd, dvd) ima jedinstveni serijski broj. Na medijum na koji snimaš program, snimi program tako da se instalacija pokrene samo ako je serijski broj medijuma baš taj na koji si snimio program. Time se obezbeđuješ od umnožavanja.
e, ovo moze biti malo interesantnije....
ali isto nepotrebno ZA SADA...
ali u svakom slucaju vam hvala na odgovoru...!!!
Citat:
U danasnje vreme u obzir dolaze i Mrežne kartice...
pa ne smatram bas da je to postao standard...evo ja prvi, i jos nekoliko mojih kolega nema mreznu karticu...
za sad bi se onda samo zadrzao na serijskom broju HDD-a i CPU-a...
[Ovu poruku je menjao fucking voodoo dana 28.12.2005. u 11:33 GMT+1]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|