Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› CPUID hook |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 июля 2007 10:20 · Личное сообщение · #1 |
|
Создано: 05 июля 2007 12:37 · Поправил: seeq · Личное сообщение · #2 |
|
Создано: 05 июля 2007 13:16 · Личное сообщение · #3 |
|
Создано: 05 июля 2007 13:38 · Поправил: Error_Log · Личное сообщение · #4 |
|
Создано: 05 июля 2007 13:46 · Личное сообщение · #5 |
|
Создано: 06 июля 2007 04:10 · Личное сообщение · #6 |
|
Создано: 06 июля 2007 09:50 · Личное сообщение · #7 |
|
Создано: 06 июля 2007 10:35 · Личное сообщение · #8 Chingachguk RDTSC реально перехватывается, ибо её можно сделать привилегированной. CPUID перехватить может быть надо для подделки некоторого железа. Судя по интеловским докам сделать привилегированной и перехватывать как rdtsc её невозможно, отсюда вариантов перехвата её 2: 1-трейсер, который трейсит всё подряд (свалится под антиотладкой+дико медленно); 2-юзать аппаратную виртуализацию (только для новых процев). Если кто подкинет линк, где хоть чо-нить написано, как это реально кодить, юзая аппаратную виртуализацию, а не просто слова, что это сделать можно, то будет респект. Если будет написано реально хорошо и понятно, тогда может я и сам смогу софт накидать такой. |
|
Создано: 06 июля 2007 10:35 · Поправил: SergX · Личное сообщение · #9 |
|
Создано: 06 июля 2007 11:14 · Поправил: n0name · Личное сообщение · #10 |
|
Создано: 06 июля 2007 11:48 · Личное сообщение · #11 эх. написать бы эмулятор серийных номеров железа, наиболее юзаемого протами и софтом для привязки (там серийный номер винта и т.п.) ЗЫ не по теме, но кто-нибудь встречал эмулятор usb-драйва, способный возвращать серийный номер устройства ? Есть софт который привязывается к этой хрени. ----- in search of sunrise |
|
Создано: 06 июля 2007 12:02 · Личное сообщение · #12 |
|
Создано: 06 июля 2007 12:06 · Личное сообщение · #13 |
|
Создано: 06 июля 2007 12:13 · Личное сообщение · #14 |
|
Создано: 06 июля 2007 12:22 · Личное сообщение · #15 SergX Тебе ж надо Aspr пропатчить? Ты писал на васме, что можно и распаковать, но прога часто обновляется. Если все так обстоит, тогда легче крякнуть сам аспр(я имею в виду его dll), ведь он то всегда одинаковый. Первое, что приходит в голову хукнуть VirtualAlloc, подождать пока dll'ка распакуется, а дальше уже по смещению или по сигнатуре найти место где пропатчить cpuid. bloom пишет: эх. написать бы эмулятор серийных номеров железа, наиболее юзаемого протами и софтом для привязки (там серийный номер винта и т.п.) так а что там писать? похукал парочку функций и готово, благо в NT чтение биоса напрямую прикрыли, единственная проблема это CPUID. А в многопоточных протекторах отлов этой команды достаточно большой гемор. |
|
Создано: 06 июля 2007 12:30 · Поправил: bloom · Личное сообщение · #16 seeq пишет: так а что там писать? похукал парочку функций и готово, благо в NT чтение биоса напрямую прикрыли, единственная проблема это CPUID. А в многопоточных протекторах отлов этой команды достаточно большой гемор. Ну если бы нечего было писать, должен был бы уже быть такой эмулятор наверное. Или он уже существует, где-нибудь в привате ? Лично я для софта который привязывается к моей системе (есть пара прог) юзал VMware, единсвенная проблема там - это опять же CPUID (проц-то не эмулируется). ----- in search of sunrise |
|
Создано: 06 июля 2007 13:37 · Личное сообщение · #17 seeq пишет: Тебе ж надо Aspr пропатчить? Нет не аспр, вызов CPUID в самой проге. Процедура которая вызывает CPUID во всех версиях одинаковая, но в разных местах в памяти. Если её и патчить то только в памяти, но с этим у меня пока не выходит... Если у кого есть пример лоадера, который инжектится и патчит поделитесь плз. |
|
Создано: 06 июля 2007 16:04 · Личное сообщение · #18 Archer пишет: тогда может я и сам смогу софт накидать такой n0name пишет: Сам собираюсь такую штуку написать, только как время появится свободное bloom пишет: эх. написать бы эмулятор серийных номеров железа, наиболее юзаемого протами и софтом для привязки (там серийный номер винта и т.п.) Тема давно назрела, многие об этом уже думали, но готового решения на паблике нет ! Ребята, может на кряклабе соберётся команда и сделает это ? Вот у меня например есть софт накрытый фемидой который юзает cpuid... Что и как патчить - уме не приложу... |
|
Создано: 06 июля 2007 16:54 · Поправил: bloom · Личное сообщение · #19 параллельная темка www.wasm.ru/forum/viewtopic.php?id=21479 Тема давно назрела, многие об этом уже думали, но готового решения на паблике нет ! Ребята, может на кряклабе соберётся команда и сделает это ? Вот у меня например есть софт накрытый фемидой который юзает cpuid... Что и как патчить - уме не приложу... согласен конечно что такой эмуль нужен. но в отсутствии такового неплохой альтернативой является VMware, только в ней одна проблема - CPUID также интересной является проблема переноса софта уже привязанного к конкретной машине на другую. ----- in search of sunrise |
|
Создано: 06 июля 2007 20:29 · Личное сообщение · #20 VMware конечно не плохо, но клиенту его ставить не прикол. Давайте общими силами всё таки напишем универсальный лоадер. Я себе представляю это следующим образом: 1. При запуске UniLoader выдаёт всевозможные ID компа, список которых постоянно обновляется в новых версиях, и позволяет это всё сохранить в INI файл. 2. INI файл можно открыть темже UniLoader_ом и посмотреть/поменять. 3. UniLoader позволяет выбрать EXE файл, чекбоксами выбрать ID которые нужно эмулить, и запустить EXE. 4. Полезной была бы опция которая выводит меседжбокс при срабатывании перехвата. Также лог заргузки. 5. По полученным ID можно генерить HardwareID для протекторов, если кому известен алго. 6. Готовый проект можно сохранить как отдельный ЕХЕ файл в который можно вставить рисунок и копирайты. С перехватом APIков проблем нет, но вот CPUID… И это скорее всего не последний камень. Если найдутся желающие принять участие, предлагаю закрыть эту тему и открыть новую. |
|
Создано: 06 июля 2007 21:28 · Личное сообщение · #21 |
|
Создано: 06 июля 2007 22:37 · Поправил: Chingachguk · Личное сообщение · #22 |
|
Создано: 06 июля 2007 22:44 · Поправил: Chingachguk · Личное сообщение · #23 |
|
Создано: 06 июля 2007 22:55 · Поправил: ToBad · Личное сообщение · #24 drin пишет: VMware/VPC и некоторые другие эмуляторы при желании палятся, в той же фемиде есть подобная опция... Правильно, а если патчить exe на тему что бы не палился, то уже патчить и cpuid и hwid... Нужна универсальность, что бы без вмешательства в exe ... SergX пишет: Если найдутся желающие принять участие, предлагаю закрыть эту тему и открыть новую. Ну не знаю. Желающих наверное много, а вот умеющих на пальцах сосчитать, да и у умеющих как правило нет времени ... 1. При запуске UniLoader выдаёт всевозможные ID компа, список которых постоянно обновляется 5. По полученным ID можно генерить HardwareID для протекторов, если кому известен алго Бред. Какие всевозможные ID ? Где обновлять ? Кто будет капать алго протов, да и менятся оно может от верси к версии... Не нужно всё усложнять. Что такое привязка к HDD ? Это волуминформейшин, строчка серийника через смарт, ну и параметры типа размера, цилиндров и т.д. Биос. По минимуму строка производителя и дата, по максимуму кусок памяти... Можно целиком снимать с нужной машины... Что там ещё, мак адрес сетевухи ? Не часто используется, да и менять можно... Вот о cpuid я ничего не знаю... Есть одна намётка, для висты делали эмулятор биоса что ли, выбрать производителя можно и т.д. Сам не смотрел, но скачать успел... Где то валяется. bloom пишет: также интересной является проблема переноса софта уже привязанного к конкретной машине на другую Ну да, для этого это и нужно. Если не переносить с машины где софт зарегистрирован, то полезность этого эмуля резко упадёт... Ну разве что кликательных спонсоров разводил как в недавней ветке дурить, если кому то это ещё интересно... |
|
Создано: 06 июля 2007 23:19 · Поправил: SergX · Личное сообщение · #25 ToBad пишет: Бред. Какие всевозможные ID ? kernel32.GetSystemInfo kernel32.DeviceIoControl kernel32.GetDiskFreeSpaceExA kernel32.GetVolumeInformationA kernel32.GetComputerNameA kernel32.GlobalMemoryStatus и т.д. Я имел в виду большой список API и всего что может быть использовано для генерации HardwareID. ToBad пишет: Где обновлять ? Скорее не "где обновлять" а "кто обновлять". Имелось в виду что проэкт должен развиваться и наращивать базу. Обновлять его будет автор[ы]. А где можно его выложить это по моему не проблема. ToBad пишет: Кто будет капать алго протов, да и менятся оно может от верси к версии... Скорее всего никто не будет. Но возможно у кого то уже есть. ToBad пишет: Не нужно всё усложнять. Я хотел всё упростить. С помощью выше описанной тулзы можно будет снять половину зашит с привязкой к железу даже не включая отладчик ! |
|
Создано: 06 июля 2007 23:30 · Поправил: Chingachguk · Личное сообщение · #26 |
|
Создано: 07 июля 2007 00:20 · Личное сообщение · #27 SergX немного не правильно тебя понял... Но ты в данном случае имеешь ввиду перехват API функций, а эмуль - это нечто другое. Как быть например с CreateFileA( \.\Scsi... \.\Phys... \.\Smart... или просто \.\C ? Разные методы определения параметров винта существуют, и думаю если делать по уму, то без драйвера не обойтись... Хотя.. хз... |
|
Создано: 07 июля 2007 03:01 · Личное сообщение · #28 |
|
Создано: 07 июля 2007 09:27 · Поправил: SergX · Личное сообщение · #29 |
|
Создано: 07 июля 2007 10:19 · Личное сообщение · #30 |
. 1 . 2 . 3 . >> |
eXeL@B —› Основной форум —› CPUID hook |