• XSS.stack #1 – первый литературный журнал от юзеров форума

Статистика по интервалам времени между операциями под вм и под живой ос.

Whisper

TPU unit
Пользователь
Регистрация
14.06.2019
Сообщения
2 849
Реакции
1 710
Тестируем такой вот простенький код
HANDLE hEvent = CreateEvent manual reset, nonsignaled
ULONG64 ft1, ft2;
ULONG64 cur;
ULONG64 imin = -1;
ULONG64 imax = 0;
while (true) {
for (int i = 0; i < 100; i++) {
GetSystemTimeAsFileTime((FILETIME*)&ft1);
WaitForSingleObject hEvent, 10ms, no alertable
GetSystemTimeAsFileTime((FILETIME*)&ft2);
cur = ft2 - ft1;
if (cur < imin) imin = cur;
if (cur > imax) imax = cur;
}
print "min %x, max %x\n", imin, imax
}

собираем статистику. (сорян что в хексе)

w7 64 варя
min 26160, max 26161
min 26160, max 26161
min 26160, max 26161
удивительно но интервалы одинаковые на протяжении пары минут
...

w10 варя
min 25249, max 38524
min 25249, max 38524
min 24fec, max 38524
min 24fec, max 38524
min 24fec, max 38524
min 24fec, max 38524
min 186c7, max 38524
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c7, max 387ab
min 186c4, max 3d2c7
min 186c4, max 3d2c7
...

w10 живая
min 1877a, max 187e7
min 18775, max 187e9
min 18775, max 187e9
min 18769, max 187fb
min 18737, max 1882a
min 1870e, max 18859
min 186f6, max 1886e
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 18885
min 186f6, max 19b49
min 186f6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186d6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186b6, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ae, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186ad, max 19b49
min 186a5, max 19b49
min 186a5, max 19b49
...
И собственно вопрос, видел ли кто в интернетах подобную по сути статистику с привязкой к осям, процам и виртуалкам?...или это вообще путь в никуда?
Я понимаю что статсу нужно собирать на протяжении суток, с равным ритмом нагрузок и выкладывать с привязкой по загрузке проца, но здесь не за цифры а за концепт.
И да я в курсе что мин макс нужны не только глобальные но и для каждого отдельного прохода, повторюсь что здесь не про цифры.
 
Последнее редактирование:
Тут больше про операционную систему. Именно она отвечает за интерпретацию инструкций. Сама вм тут по идее никакой роли не играет. Данный метод (хоть и старый) актуален только при антимуляции, и то, не всегда.
 
Здесь об детекте работы под виртуальной машиной так как логично предположить что под виртуальной машиной некоторые апи будут выполняться медленнее чем вне ее и тесты это подтверждают.
Статистикак по процам и осям нужна для получения базовых коофициентов.
Разве ос занимается интерпритацией(обработкой) инструкций(машинных) кодов?
 
Последнее редактирование:
Здесь об детекте работы под виртуальной машиной так как логично предположить что под виртуальной машиной некоторые апи будут выполняться медленнее чем вне ее и тесты это подтверждают.
Статистикак по процам и осям нужна для получения базовых коофициентов.
Разве ос занимается интерпритацией(обработкой) инструкций(машинных) кодов?

Нативных инструкций - да, именно ОС.
Все те тесты, что я увидел вверху - неправильные из предположения о том, как проводились тестирования.
 
Вы под инструкциями понимаете api(application programming interface)?
Вы отрицаете то что выполнение некоторых api под виртулкой и вне ее может занимать разное количество времени?
Какие тесты по вашему правельные?
Вас очень трудно понять.
 
Нативных инструкций - да, именно ОС.
Все те тесты, что я увидел вверху - неправильные из предположения о том, как проводились тестирования.
При чем тут ОС? Вроде как проц все выполняет )
 
При чем тут ОС? Вроде как проц все выполняет )
Да вы здесь xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/31670/#post-183789 ознакомьтесь с мыслями гражданина. Я даже хз че думать.
 
При чем тут ОС? Вроде как проц все выполняет )

А разве WinApi/NativeApi - это прямые инструкции процессору?
Данное тестирование, как я понимаю, применялось без внимания к технологиям виртуализации.
 
А разве WinApi/NativeApi - это прямые инструкции процессору?
Данное тестирование, как я понимаю, применялось без внимания к технологиям виртуализации.
Нет конечно, это не "прямые инструкции процессору"
 
По поводу моих слов, цитирую, "Тут больше про операционную систему.". Тут я хотел сказать о планировщике задач, так как именно она ответственна за распределение загрузки на процессор. Также важно знать сколько логических ядер было выделено под процесс. Такие сравнения в принципе проводятся используя только одно ядро. И обрати внимание на rdtsc.
 
По поводу моих слов, цитирую, "Тут больше про операционную систему.". Тут я хотел сказать о планировщике задач, так как именно она ответственна за распределение загрузки на процессор. Также важно знать сколько логических ядер было выделено под процесс. Такие сравнения в принципе проводятся используя только одно ядро. И обрати внимание на rdtsc.
Между чем и чем вы рекомедуете делать замеры с помощью rdtsc?
Где в моем примере вы видили что то завязанное на многопоток, там было не про точные цифры и не про точные коофициенты, винда не является системой реального времени и о точных замерах там вообще речи быть не может в принципе(из юзер мода так точно). Мой пост в сути своей был даже _не_про_методику_тестирования_ вот суть поста -
И собственно вопрос, видел ли кто в интернетах подобную по сути статистику с привязкой к осям, процам и виртуалкам?...или это вообще путь в никуда?
Вы можете сами попробовать мой тест или придумать свой а лучше попробовать несколько тестов, сами пощупайте есть ли разница и какова она и где и почему она наиболее высокая.
 
Если мы о детекте виртуалки то в Blue Pill был метод через получение адреса IDT /GDT
Работает нормально , сам проверял.
На вопрос как получить идт/гдт из юзера вы любезно подскажите где прикупить сплоет?
 
Не не, все читается из юсера.
да уже проверил
-----------------------------------------------------------------

SGDT/SIDT - Сохранение регистра таблицы дескрипторов
глобальной/прерываний

-----------------------------------------------------------------
|Код Команда Число Описание |
|операции тактовых |
| циклов |
| |
|0F 01 /0 SGDT m 10 Сохранение GDTR в m |
|0F 01 /1 SIDT m 10 Сохранение IDTR в m |
-----------------------------------------------------------------


Работа команды
--------------

DEST <- 48-битовое содержимое базы/границы регистра;



Описание
--------

Команды SGDT и SIDT копируют содержимое регистов дескрипторных
таблиц в шесть байтов памяти, задаваемых операндом. Поле границы
(LIMIT) регистра присваивается первому слову по исполнительному
адресу. Если атрибут размера операнда команды равен 32 битам, то
следующищим трем байтам присваивается поле базы (BASE) регистра,
а четвертый байт заполняется нулем. В противном случае атрибут
размера операнда равен 16 битам, и следующим четырем байтам
присваивается 32-разрядное поле базы регистра.

Команды SGDT и SIDT используются только операционным программным
обеспечением, в прикладных программах они не используются.


Изменяемые флаги
----------------

Отсутствуют

Исключения защищенного режима
----------------------------------

Прерывание 6, если операндом назначения является регистр;
#GP(0), если назначением является сегмент, недоступный для
записи; #GP(0) в случае недопустимого исполнительного адреса
операнда памяти в сегментах CS, DS, ES, FS или GS; #SS(0) в
случае недопустимого адреса в сегменте SS; #PF(код сбоя) в
случае страничного сбоя; #AC для невыравненной ссылки к памяти
при текущем уровне привилегированности, равном 3.


Исключения режима реальных адресов
---------------------------------------

Прерывание 6, если операндом назначения является регистр;
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH.

Исключения виртуального режима 8086
----------------------------------------

Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев. #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.

Замечание по совместимости
--------------------------

16-разрядные формы команд SGDT и SIDT совместимы с процессором
80286, если не выполняются ссылки к значению в старших восьми
битах. Процессор 80286 записывает в эти старшие биты единицы,
тогда как процессоры 386 DX и i486, если атрибут размера
операнда равен 16 битам, записывают туда 0. В Справочном
руководстве программиста по iAPX 286 эти биты заданы как
устанавливаемые командами SGDT и SIDT в неопределенное
состояние.

Посыпал голову пеплом и отшлепал себя тапком.
Благодарю вас сенсей.

Сгдт правда сильно бросается в глаза и эмуляторы обманут..а вот тайминги обмануть сложно и в глаза вэйтеблы не бросаются.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх