Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 12:20   #1
Andeserg
Новичок
Джуниор
 
Регистрация: 22.05.2010
Сообщений: 2
Печаль Работа с CMOS и RDTSC

Не подскажите, каким образом можно сопоставить временные каналы 70h и 71h и значения счетчика временных тиков процессора (посредством команды RDTSC выводимых на экран). Как появятся дельные советы, выложу еще пару вопросов по данной теме. Идея заключается в следующем : мы получаем показания счетчика, и имеем текущее время из cmos . В момент фиксации и , например, спустя 60 секунд мы должны просмотреть изменилось ли время или нет. А именно - показатели cmos и таймера. Есть ли расхождения. Так же интересен вопрос - возможно ли как то вести подобие истории работы системы(процессов) имея шкалу времени (миллисекунды, секунды, минуты, дни, месяца) и как ее возможно организовать в ассемблер.

Рассматриваю также помощь на платной основе... Уже отчаялся диплом стоит , преподаватель грызёт *facepalm*
Andeserg вне форума Ответить с цитированием
Старый 22.05.2010, 18:56   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Вы случайно не Modelos делаете? Если так, то могу только посочувствовать
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 24.05.2010, 04:10   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Andeserg
Наверное антиотладчик хотите замостырить?
через CMOS вы можете получить минимум секунды, а в счетчик RDTSC можно подсовывать любое значение смотри MSR-регистры на службе хакера
Mikl___ вне форума Ответить с цитированием
Старый 25.05.2010, 15:48   #4
Andeserg
Новичок
Джуниор
 
Регистрация: 22.05.2010
Сообщений: 2
По умолчанию

Используя регистр RDTSC необходимо в программном варианте реализовать следующее:
Всё довольно просто - суть задачи такова: если программу трассируют под отладчиком, то естественно количество тактов увеличивается. Поэтому необходимо поймать время которое без отладчика, сравниваем его с текущим и если больше, значит отладчик есть .
То есть сравнение времени до попадания отладчика в работу системы, и текущего времени( допустим отладчик уже в системе).
+ реализовать необходимо так, чтобы шла своеобразная проверка - если есть отладчик в системе, писалось бы сообщение , нападобие * меня атакуют* , если же все тихо - то * система работает нормально*, или что-то в этом роде.
В теории как будет все выглядеть мне понятно, а код никак не получается сваять. Вот и ищу помощи извне. Всё еще рассмотрю платный вариант работы под заказ.( имеется некая модель операционной системы и идеальным будет вариант вклинивания туда этого момента).
Andeserg вне форума Ответить с цитированием
Старый 26.05.2010, 10:34   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Andeserg
Вашу защиту нейтрализуют ухватившись за сообщение "меня атакуют" правильнее, если ваша программа обнаружила, что ее взламывают поддсовывать исследователю другой фрагмент программы
Mikl___ вне форума Ответить с цитированием
Старый 27.05.2010, 04:54   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Andeserg
Изначально бред: RDTSC -- ассемблерная инструкция для платформы x86, читающая счётчик TSC (Time Stamp Counter) и возвращающая в регистрах EDX:EAX 64-битное количество тактов с момента последнего сброса процессора. rdtsc поддерживается в процессорах Pentium и более новых. Опкод: 0F 31. В многозадачных операционных системах инструкция может быть превращена в привилегированную (установлен 3 бит в управляющем регистре CR4), и её использование приведет к генерации исключения в программе.
Создавать универсальную защиту для программ, то есть программу работающую и на медленных процессорах (типа первых Pentium и Celeron с тактовой частотой 66 MHz) и на современных Pentium 4 (~3,6 GHz) основанной на привязке RDTSC к таймеру -- посчитайте какой разброс у вас получится, кроме того, я вам дал ссылку на статью, где показан механизм с помощью которого хакеры подменяют значение RDTSC
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование CMOS gromsgu Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.12.2009 16:13
Служба времени, RDTSC UnluckyStudent Помощь студентам 3 27.07.2009 10:52
свой GetCount на rdtsc Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.09.2008 22:58