powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать SN ?
10 сообщений из 10, страница 1 из 1
Как узнать SN ?
    #33611626
sergio2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать серийный номер, HDD или MainBoard или CPU, что бы привязать софт к железу ?
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33612805
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergio2Как узнать серийный номер, HDD или MainBoard или CPU, что бы привязать софт к железу ?

началось в колхозе утро....
зачем Вам это ? Или по другому, давайте похфантазируем....
Вы супер-пупер программист, а точнее просто внимательный и усидчивый человек - прочитали как мона узнать все идентификаторы, всех железок до которых можно дотянуться из Вашей любимой оси...Закриптовали всё это супер дэсой или рса... записали с помощью 25 циклических ксоров и перестановок в хитро обозванный файл, лежащий не понятно где и как... защитили его от удаления, перемещения, копирования, открытия, сканирования...внутри программы Вы делаете супер-пупер алгоритм сравнения и выдаёте окей-но, всё пучком...Либо не пучком - в зависимости от сценария...

намного я ошибся ?

Вот скажите, Вы действительно считаете всё это верхом программирования и полётом анжинерной мысли ? Да, это будет действовать на людей второй раз видевших мышку и что то слышавших об кнопки эникей....А на профи ? Те которые на спор вскрывают криптозащиты на выставках за призы типа ноут(реальный случай из жизни) ?

постарайтесь понять нижеизложенные мысли...
1) идеальной защиты НЕ БЫВАЕТ ! Есть способы увеличивающие полиномное время взлома, до цены на сам софт....
2) проверьте свою защиту следующим образом. создайте алгоритм. пойдите поспать. проснувшись - сядьте и попытайтесь взломать свой алгоритм. получилось - защита дерьмо. Или по другому - не считайте, что мир вокруг Вас, глупее чем Вы...
3) защиты по приоритетам - убывания... а) логические..б) программно-аппаратные в) программные..Старайтесь использовать по возможности именно логические защиты... С верху "присыпав" простенькой программной или программно-аппаратной защитой...
4) Старайтесь использовать плюсы языка на котором пишите и самой оси. Подумайте над этим... Защита программы написанной на азме - не всегда вскрываеться тяжелее чем защита написанная на каком-нить клиппере !
5) создавая защиту - не забывайте о втором конце данной дубины. А именно о рекламе ! Хорошая реклама самой программы - использование этой программы ! Плохая защита - только позабавит людей, если данная прога кому то станет нужна.
6) защит на любые программные продукты - не бывает. Или скажем так, они легко взламываются...
7) и т.д...

Это возможно не сам ответ - но думаю даст писчу для размышлений...
А по поводу как и где. Поищите в книгах по азму и(или) по тематике хакерства. В БСП Фроловых, кажеться даже что то пробегало (возможно глючу).

с уважением
(круглый)
ЗЫ
Бабушка ! Сколько раз говорить ! Я не нахер, я хакер !
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33612956
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
1) идеальной защиты НЕ БЫВАЕТ ! Есть способы увеличивающие полиномное время взлома, до цены на сам софт....
6) защит на любые программные продукты - не бывает. Или скажем так, они легко взламываются...


бывает... если софт пославляется с платкой, имеющей проц на борту и часть кода программы выполяющейся на нем.
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33612981
LordMAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikбывает... если софт пославляется с платкой, имеющей проц на борту и часть кода программы выполяющейся на нем.
Не бывает. В приведенном тобой случае задача решается несколькими путями (естественно), один из простейших: реализация тех же действий, что и код программы для проца на платке, только на основном проце (естественно, что они редко бывают совместимыми и пр.), причем так можно решить задачу, даже в случае использования, например, сигнальных процессоров.
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33612985
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik kolobok0
1) идеальной защиты НЕ БЫВАЕТ ! Есть способы увеличивающие полиномное время взлома, до цены на сам софт....
6) защит на любые программные продукты - не бывает. Или скажем так, они легко взламываются...


бывает... если софт пославляется с платкой, имеющей проц на борту и часть кода программы выполяющейся на нем.

см. изложенную выше мной иерархию по степени надёжности защит...
боюсь Вас огорчить - знаю реальный случай из жизни взлома, в одном институте страны аппаратной защиты (PAL милкосхемки). Т.е. на уровне государства - два пальца об асфальт. Если к этому добавить, что на гос. службу (США) не принимаются системы не получившие одобрямс от всяких там ЦРУ.. О требованиях ЦРУ к таким системам нуна говорить ? Или думаю далее всё понятно?


с уважением
(круглый)
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33613003
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik kolobok0...6) защит...
бывает... если софт пославляется с платкой, имеющей проц на борту и часть кода программы выполяющейся на нем.

имелось в ввиду, что защита по наследству не передаёться...
была такая программка защищающая любую другую...называлась церберос, если не ошибаюсь..Дык вот ключ к взлому ИМЕННО В ФАКТЕ ЗАЩИТЫ ЛЮБОЙ проги !!! Через пол года, как задача была поставлена передо мной и успешно решена в однодневный срок - точно такое же решение было опубликовано на досках в инете...Кстати полностью автоматизированное!

повторюсь...
ошибка заключалась ИМЕННО в самом начальном посыле о защите ЛЮБОЙ проги....в лоб там не решить, без аппаратного трассировщика...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33613300
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LordMADреализация тех же действий, что и код программы для проца на платке, только на основном проце (естественно, что они редко бывают совместимыми и пр.), причем так можно решить задачу, даже в случае использования, например, сигнальных процессоров.

осталось только выяснить что делают те 32 мега кода и попытася реализовать всех конечные сосояния . Посадка на Луну будет проще выглядеть.

--сигнальных процессоров

но комментс.

-- kolobok0
--Вас огорчить - знаю реальный случай из жизни взлома, в одном институте страны аппаратной защиты (PAL милкосхемки).

время когда Совпром мог послойно считать x286 ушли в прошлое. При нынешнем развитии нономикронных процессов ломать никто не возьмется.

-- что на гос. службу (США) не принимаются системы не получившие одобрямс
--Т.е. на уровне государства - два пальца об асфальт.

не нужно свои фантазии выдавать за реальность

а где там шифрование ? - обычная закрытая embded система. заказная БИС с процессором и памятью внутри.

--ошибка заключалась ИМЕННО в самом начальном посыле о защите ЛЮБОЙ проги....в лоб там не решить, без аппаратного трассировщика...

вот эта платка софт и защищает (точнее заменяет его часть). 12,000 инсталяций. вам ничего не говорит?, в том числе для всех спецслужб США и стран НАТО.
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33613737
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аха, супер-пупер видеокарты являются лучшей зашитой для супер-пупер игрушек. Мона и эмулировать цп, но...
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33614321
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikвремя когда Совпром мог послойно считать x286 ушли в прошлое. При нынешнем развитии нономикронных процессов ломать никто не возьмется.

а где там шифрование ? - обычная закрытая embded система. заказная БИС с процессором и памятью внутри.

вот эта платка софт и защищает (точнее заменяет его часть). 12,000 инсталяций. вам ничего не говорит?, в том числе для всех спецслужб США и стран НАТО.

к сожалению, наша беседа уходит не в то русло.
на сегодняшний день обладаю следующей инфой...
1) задачи по взламыванию аппаратной защиты в истории человечества решались. Да, с большими трудозатратами - посему см. выше о целесообразности данных мероприятий (защита-взлом)...
2) существуют чёткие законы, по не распространению криптозащит во всякие там третьи страны...ограничение на длину ключей (RSA). Сертификация в наблюдательных органах программного обеспечения принимаемого на гос. службу...требования к спец входам в таких системах. отошлю к инету, газетам и иже... тема не раз подымалась и публично излагалась...
3) в МК мире существуют такие весчи как взлом кристаллов (я имею ввиду те дыры, которые находят спустя несколько лет использования в тех или иных кристаллов. см. форумы по МК. буквально недавно там опять подымался данный вопрос и народ делился дырками в защитах МК..не все кристаллы плохи, но тенденции настораживают)..существуют фирмы - предлагающие такой сервис, правда в мире МК данные предложения воспринимают как развод кроликов и профанацией...
4) кол-во инсталяций Windows так же достаточно большое... И данная система может (проходила сертификацию, если не ошибаюсь) работать в режиме доступа C2. Однако это не означает, что её нельзя вскрыть... То бишь критерий зависимости кол-ва инсталяций и надёжности - мягко говоря спорный... Думаю, если таким ключём защитить например формулу лекарства от ВИЧ (пример глупый, но тем не менее) - то думаю защита будет держаться не очень долго :) То бишь усилия по взлому - обоснованы экономическими соображениями...То что не взломано - не есть критерий какчества...Не надо обманывать себя и других...
5) Вы сами производили аппаратные защиты ? А программные ? А логические ?В данной области есть свои нюансы и свои тонкости.. Утверждать, что всё мона за пару минут сломать - глупо... Но то, что сделано человеком - им же может быть и разрушено, и создано вновь, и скопировано...

в одной книге по данному вопросу есть хороший пример...(не дословно)
"Если в тёмной комнате стоит компьютер отключённый: от локальной сети, от монитора, от клавиатуры, выключен, заперт на несколько замков и ключи у Вас в кармане, а рядом стоит охранник с автоматом - то вот этот компьютер МОЖНО ВЗЛОМАТЬ..."

ышо раз повторю прописные истины из данной области...
Говоря о защите - НЕ правильно говорить о невозможности взлома.. Нужно говорить о полиномном (термин не мой - см. популярную литературу по данному вопросу) времени взлома данной системы... Почуствуйте разницу...Возможно тогда, многие люди, которые сядут за проектирование защитных систем, правильно будут подходить к данному вопросу... А не уповать только на свой гений...

с уважением
(круглый)
ЗЫ
Кстати говоря, аппаратная защита надёжнее (время на взлом потребуеться больше) нежели программная. А вот логическая защита - то увы и ах посильнее будет :) За примерами могу отослать к процессингу пластиковых карт практически в любой платёжной системе...
...
Рейтинг: 0 / 0
Как узнать SN ?
    #33615653
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
типа чтобы не флеймить :

последние процы серийник не поддерживают. Поэтому :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
bool CPU::IsCPUSerialSupported()
{
  bool bSupported = false;
  DWORD cpufeat =  0 ;
  _asm
  {
    xor eax, eax
    inc eax
    CPUID
    mov cpufeat, edx
  }
  if(0x00040000 & cpufeat) // get bit 18 
  {
    bSupported = true;
  }
  return bSupported;
}

Но вообще-то,защищать свою программу таким образом не годится. Не все процессоры имеют Serial Number. Следовательно — при получении серийного номера получится пустое значение. Лучше уж привязываться к жесткому диску, MAC-адресу (не очень надежно — можно поменять).

Проблемы появляются, когда пользователь решил апгрейдить свой ПК, либо у него
сгорел жесткий диск, процессор и т.п. Придется ехать к нему либо продавать целиком программу с компьютерами.
Есть решение другое — приобрести некоторое количество HASP ключей (около 25$ за штуку — не такие уж и деньги) и привязываться к ним.

правда HASP4 уже поломали, пятый еще нет, но ждать видать уже недолго.

нормальный серийник можно получить прочитав его с самого винта (контроллер) (ну на асме), ну или из реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum

Вот что есть в MSDN:
HOWTO: Get the MAC Address for an Ethernet Adapter
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q118623

но МАК адрес легко меняется. В частности это позволяют многие драйвера.
Встроенные в мать сетевые зачастую позволяют задать МАК из BIOS.

еще
Для Windows < 2000/XP
UuidCreate

Для Windows >= 2000/XP
UuidCreateSequential
Последние 6 байт GUID — MAC адрес

еще о винте почитай тут
http://]http://users.freenet.am/~dotnet/cpp/vinch.htm

можно еще попробовать серийник виндов использовать, я правда его на managed 2.0 C++ писал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
#include "stdafx.h"

#include "Utils.h"

using namespace System;
using namespace System::Text;
using namespace Microsoft::Win32;


namespace Utils 
{
	static Byte ShuffleBytes( Byte bytes[] )
	{
		int nRet =  0 ;

		for(int nByte =  14 ; nByte >=  0 ; --nByte)
		{
			nRet = nRet <<  8 ;
			Byte indx = bytes[nByte];
			nRet += indx;
			Byte rs = (Byte)(((__int64)nRet * 0x2AAAAAAB) >>  34 );
			bytes[nByte] = rs;
			nRet = nRet %  24 ;
		}
		return nRet;
	}
	static void ProcessKey( Byte bytes[], array<Byte>^ szKey )
	{
		Byte szKeySymbols[] = "BCDFGHJKMPQRTVWXY2346789";
		int shift =  4 ;
		int pointer =  0 ;
		for( int nSymbol = sizeof(szKeySymbols)- 1 ; ; --nSymbol )
		{
			Byte index = ShuffleBytes(bytes);
			szKey[pointer+nSymbol+shift] = szKeySymbols[ index ];
			if(  0  == nSymbol )
			{
				break;
			}
			if(  0  == nSymbol %  5  )
			{
				pointer-- ;
				szKey[pointer+nSymbol + shift] = '-';
			}
		}
	}
	String^ GetWindowsKey( const int nLen )
	{
		if (nLen < WINDOWS_KEY_LENGTH)
		{
		//	return ::SetLastError(ERROR_INSUFFICIENT_BUFFER), FALSE;
			return L"";
		}
		array<Byte>^ szKey = gcnew array<Byte>( 30 );
		Byte ptr[] = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX\x0"; 
		for(int i =  0 ; i < szKey->Length; i++ )
		{
			szKey[i] = ptr[i]; 
		}
		
		String^		szKeyPath =  L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
		String^		szKeyName =  L"DigitalProductID";

		RegistryKey^ HKLM = Registry::LocalMachine;
		RegistryKey^ reg = HKLM->OpenSubKey( szKeyPath, false );

		String^ CurrentVersion = reg->GetValue(L"CurrentVersion")->ToString();
		String^ ProductName = reg->GetValue( L"ProductName" )->ToString();
		array<Byte>^ Bytes = (array<Byte>^)reg->GetValue( szKeyName );

		if( Bytes->Length )
		{
			Byte *pData = new Byte[ Bytes->Length ];
			for(int i =  0 ; i < Bytes->Length; i++ )
			{
				pData[i] = Bytes[i];
			}
			reg->Close();
			szKey[ 29 ] = L'\x0';
			ProcessKey( pData +  52 , szKey );

			Encoding^ ascii = Encoding::ASCII;

			array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( szKey,  0 , szKey->Length ));
		    ascii->GetChars( szKey,  0 , szKey->Length, asciiChars,  0  );
			String^ asciiString = gcnew String( asciiChars );

			delete [] pData;
			return asciiString;
		}
		return L"";
	}
}
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать SN ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]