Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› CPUID
<< . 1 . 2 . 3 .
Посл.ответ Сообщение


Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 03 мая 2006 05:05
· Личное сообщение · #1

Вопрос по CPUID.

Есть такой код, который мне когда-то дал Asterix. Код позволяет получить идентификатор процессора.


MOV EAX,1
CPUID
AND EDX,20000
PUSHAD
MOV EAX,1
CPUID
PUSH EAX
MOV EAX,3
CPUID
POP EAX
MOV EBX,EAX
SHR EBX,10
AND EAX,0FFFF
MOV ESI,EDX
SHR ESI,10
AND EDX,0FFFF
MOV EDI,ECX
SHR EDI,10
AND ECX,0FFFF


Вопрос такой. На каких процессорах это будет реально именно идентификатор.
Как это будет на AMD. То есть можно ли положится на то, что на разных компах не будет одинаковых идентификаторов, полученных данным кодом?



Ранг: 56.9 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 03 мая 2006 23:50
· Личное сообщение · #2

Моего вроде нет.
P4 (630) 3.0mhz L2-2mb
S/N: 0000-0F43-0000-0000-0000




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 04 мая 2006 00:21
· Личное сообщение · #3

Короче, тема с серийником проца дохлая, как я и говорил.

-----
Скажем дружно - нафиг нужно.





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 мая 2006 03:08
· Личное сообщение · #4

Тогда к чему из железа еще можно привязаться, чтобы защитить прогу от копирования?




Ранг: 221.8 (наставник)
Активность: 0.150
Статус: Участник

Создано: 04 мая 2006 03:33 · Поправил: Red Bar0n
· Личное сообщение · #5

P-IV 3000
---------------------------
Processor Serial Number
---------------------------
0000-0F34-0000-0000-0000-0000
---------------------------
WELL
к винту.




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 мая 2006 04:29
· Личное сообщение · #6

Red Bar0n пишет:
к винту.

Как? GetVolumeInformation? Так берешь disk editor и меняешь себе серийник раздела на какой хочешь.
Не катит такой вариант.



Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 04 мая 2006 04:40 · Поправил: Gelios
· Личное сообщение · #7

можно ещё привязку к биосу сделать




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 04 мая 2006 05:07
· Личное сообщение · #8

WELL пишет:
Тогда к чему из железа еще можно привязаться, чтобы защитить прогу от копирования?

Ни к чему не получиться. Только аппаратные ключи, других надежных способов нет.

-----
Скажем дружно - нафиг нужно.





Ранг: 221.8 (наставник)
Активность: 0.150
Статус: Участник

Создано: 04 мая 2006 05:22
· Личное сообщение · #9

WELL пишет:
Как? GetVolumeInformation? Так берешь disk editor и меняешь себе серийник раздела на какой хочешь.
Не катит такой вариант.

Есть более мение надежный способ привязки к винту ;) чтоб его отломать придеться один раз прогу купить либо очень долго брутить да и то хз по каким параметрам ;) просто недавно наткнулся на прогу одну с такой защитой... на паблик говорить не буду идею, ибо нефиг жидоаффторам помогать в приват скажу. стукни в аську.




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 04 мая 2006 06:05
· Личное сообщение · #10

Red Bar0n пишет:
Есть более мение надежный способ привязки к винту ;)

И в нем еще есть строка hDevice := CreateFile('\\.\Scsi0:' ...
Вобщем, не для кого ни секрет этот способ.

-----
Скажем дружно - нафиг нужно.




Ранг: 36.8 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 04 мая 2006 07:51 · Поправил: NeoTall
· Личное сообщение · #11

Привет...
WELL пишет:
Как? GetVolumeInformation? Так берешь disk editor и меняешь себе серийник раздела на какой хочешь.
Не катит такой вариант.

При чем тут GetVolumeInformation? Он читает логический SN винта. Есть вполне определенный метод чтения "железного" SN винта (который БИОС определяет и на винте сбоку пробит ) В ХРени определяется напрямую, в 98 через "smartvsd.vxd"...



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 04 мая 2006 08:20
· Личное сообщение · #12

infern0 пишет:
можно, но результат undefined
мусор т.е. вернется

Все гораздо проще. Там где функция 3 "not supported", она выполняется как функция 2.
Именно поэтому ECX=0, а в EAX что-то есть.
Видимо, совсем закрыть ее выполнение Интелу было дорого и на части моделей нашли такой дешевый выход. На других моделях уже подоспели БИОС-ы, которые закрыли эту команду.
Но, не исключено что есть "тайные флаги", которые все открывают. Жалко, что найти их практически невозможно ...
А вот страна, знающая эти и другие секреты, в один миг сможет превратить компьтеры противника в груду железок. И никакие антивирусы не спасут.



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 04 мая 2006 11:16
· Личное сообщение · #13

tundra37
не кури больше эту траву




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 мая 2006 14:51
· Личное сообщение · #14

Ms-Rem пишет:
И в нем еще есть строка hDevice := CreateFile('\\.\Scsi0:' ...
Вобщем, не для кого ни секрет этот способ.

Red Bar0n
Ms-Rem
Напишите плиз что за способ. Если можно с исходником на делфи или асме. Можно в ПМ.

NeoTall пишет:
Есть вполне определенный метод чтения "железного" SN винта (который БИОС определяет и на винте сбоку пробит ) В ХРени определяется напрямую


Напиши подробнее плиз тут или в ПМ. Желательно с исходником.




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 мая 2006 15:37
· Личное сообщение · #15

Ага. Кое-что сам уже нашел. Если вы об этом www.megalib.com/books/923/a82.htm

Вопрос тогда: как это можно сломать кроме патча самой проги?
Как я понимаю можно драйвер написать, который будет перехватывать все эти дела? Или пропатчить тот, через который это проверятеся?
под Windows NT/2K/XP запрос производится не напрямую к диску, а через miniport драйвер контроллера, что позволяет читать серийный номер не имея прав администратора. <- Это тоже хорошо

Как-нибудь еще этот серийник подменить можно?



Ранг: 36.8 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 04 мая 2006 15:51
· Личное сообщение · #16

WELL пишет:
Напиши подробнее плиз тут или в ПМ. Желательно с исходником.

На Дельфах...


efe0_04.05.2006_CRACKLAB.rU.tgz - DiskID.rar



Ранг: 36.8 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 04 мая 2006 15:53
· Личное сообщение · #17

Извиняюсь за дубляж кода...




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 мая 2006 17:25
· Личное сообщение · #18

Так как все-таки можно обойти такую защиту?
Вопрос наверное к Ms-Rem ;)




Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 04 мая 2006 20:00
· Личное сообщение · #19

WELL
Странный вопрос от крякера.
Самый лучший способ это подставить в нужное время нужные значения Id железа. Это делается без всяких шаманств с драйверами. Я в свое время тоже писал привязывалку к железу. Один из способов получения Id винта был основан на базе данного метода. Могу сказать, что его можно очень хитро переделать, но все равно ZwDeviceIoControlFile не обойти. Так что, все привязывания в Ring3 ломаются на ура, что и есть хорошо




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 04 мая 2006 22:39
· Личное сообщение · #20

WELL пишет:
Так как все-таки можно обойти такую защиту?
Вопрос наверное к Ms-Rem ;)

Лоадер с инжектом кода и хуком DeviceIoControl. Пишется за 10 минут.

-----
Скажем дружно - нафиг нужно.





Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 04 мая 2006 22:53
· Личное сообщение · #21

Советую заменить вызов DeviceIoControl на ZwDeviceIoControlFile вызываемый непосредственно через int 2E. Тогда для перехвата придется лезть в ядро (либо патчить прогу), но возникнет проблема с номерами системных вызовов. Их можно динамически читать из ntdll, но тогда можно будет легко поставить на это бряк.

-----
Скажем дружно - нафиг нужно.




Ранг: 75.0 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 05 мая 2006 00:18
· Личное сообщение · #22

NeoTall пишет:
При чем тут GetVolumeInformation? Он читает логический SN винта. Есть вполне определенный метод чтения "железного" SN винта (который БИОС определяет и на винте сбоку пробит ) В ХРени определяется напрямую, в 98 через "smartvsd.vxd"...


серийник винта, а также куча других идентификаторов тоже без проблем меняется прямо в служебке винта... )))



Ранг: 16.2 (новичок), 5thx
Активность: 0.010
Статус: Участник

Создано: 05 мая 2006 01:47
· Личное сообщение · #23

Ну не совсем без проблем, ограничения кое какие всё таки есть, да и не каждый сможет. Но обойти защиту привязанную к паспорту винта, сменой этого самого паспорта очень даже возможно .




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 05 мая 2006 04:04
· Личное сообщение · #24

Блин. Что-то далеко не на всех этот метод работает.
На некоторых не может определить ничего...
Похоже тоже не без недостатков метод...



Ранг: 71.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 05 мая 2006 16:52
· Личное сообщение · #25

WELL пишет:
Блин. Что-то далеко не на всех этот метод работает.
На некоторых не может определить ничего...
Похоже тоже не без недостатков метод...


Сейчас методов надёжной привязки нет, даже хотя бы мало-мальски. Поэтому наверное приёдётся от этого отказатся..




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 06 мая 2006 04:13
· Личное сообщение · #26

Да уж. Печально. Думал, что хоть DeviceIoControl получится. Жаль...




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 06 мая 2006 04:41
· Личное сообщение · #27

WELL
Можно получать еще MAC сетевухи, но тут тоже будет несколько проблем, так как непонятно что делать когда сетевух несколько, либо нет ни одной.

-----
Скажем дружно - нафиг нужно.





Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 06 мая 2006 04:43
· Личное сообщение · #28

Имхо неплохой метод - привязка программы к серверу.
Если некоторые части алгоритма программы выполняются на сервере, то взлом становиться невозможным. Но к сожалению, это применимо далеко не для любой программы.

-----
Скажем дружно - нафиг нужно.





Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 06 мая 2006 04:48
· Личное сообщение · #29

Например, если я паишу протектор, то могу сделать GUI оболочку к нему, в которой настраиваются параметры защиты, а сам защищаемый файл вместе с настройками передается на сервер, которые его и протектит. Вот тебе и секрет неломаемой защиты, так как в этом случае единственное что можно сделать - это купить программу

-----
Скажем дружно - нафиг нужно.




Ранг: 71.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 06 мая 2006 22:36
· Личное сообщение · #30

Ms-Rem пишет:
Например, если я паишу протектор, то могу сделать GUI оболочку к нему, в которой настраиваются параметры защиты, а сам защищаемый файл вместе с настройками передается на сервер, которые его и протектит. Вот тебе и секрет неломаемой защиты, так как в этом случае единственное что можно сделать - это купить программу


Ну если хоть одна копия будет на руках, то всё она уже будет у всех.....




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 07 мая 2006 01:54
· Личное сообщение · #31

agentru пишет:
Ну если хоть одна копия будет на руках, то всё она уже будет у всех.....


Тут все проще простого. Если кто-то кардит ключ к программе, или раздает его всем подряд, то его просто банят на сервере и розданая всем копия становиться бесполезным хламом.

-----
Скажем дружно - нафиг нужно.



<< . 1 . 2 . 3 .
 eXeL@B —› Программирование —› CPUID
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати