Вывод информации без проверки значения в скомпилированном приложении С++

Тема в разделе "WASM.BEGINNERS", создана пользователем galenkane, 3 мар 2021.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    ну-так, давай проведём серию экспериментов и поглядим, что будет на выхлопе :)

    первый.
    хост пашет в холостом режиме, то бишь без лишних нагрузок; вирта в однопоточном холостом режиме.

    второй.
    хост в холостом, запускай 2-3-4 вирты, каждая в двух-поточном режиме. Можно проварьировать с четырьмя потоками на вирту.

    третий.
    хост в холостом, две вирты == одна в холостом, другая с нагрузкой а-ля хромой.
    ======
    сначала любопытно глянуть на эти результаты, а там можно и ещё.
    а теперь пройдём по твоей ссылке и..
    а теперь..
    upload_2021-3-9_2-25-4.png
    https://ark.intel.com/content/www/u...inum-8180-processor-38-5m-cache-2-50-ghz.html
    https://ark.intel.com/content/www/u...es/125191/intel-xeon-scalable-processors.html
     
  2. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Мне жаль тратить на это время. От этих тестов метод годным не станет. Основные проблемы останутся.
    Почему ты выборочно комментируешь мой ответ? Сделал вид, что не заметил часть моего поста. Нечего ответить? :)
    https://www.supermicro.com/en/products/motherboard/X10QBI
    +
    https://ark.intel.com/content/www/r...-processor-e7-8894-v4-60m-cache-2-40-ghz.html
    Да, это материнка на 4 процессора. Поддерживает до двух "Memory Card Layout" на процессор. В каждой такой плате 12 слотов.
    12 слотов x 2 платы памяти x 128GB = 3TB на 1 процессор
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    ох-уж, эти отмазы :grin:
    а что тут комментировать?:) есть цпу, у него критический порог по входной мощности тока; а есть озу и её общая входная мощность не должна превышать того порога. А как такое сделать? Только роняя тактовую частоту озу. Тч технически можно соорудить и до 6ТБ, и более - более. Но скорость озу роняется + можно получить ситюЁвину, когда на плашку напруга слишком малая получается. короче, всё упирается в горести электрики. И, когда тебе пишут 3ТБ, то скромно умалчивают на сколько нужно ронять тактовую частоту :)
     
  4. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Ну конечно. Ты будешь только задачи давать и сомневаться, а я буду тратить время на их выполнение и опровергать сомнения. Хорошо устроился. Ох, уж эти диванные аналитики :grin:
    Изначально ты заявлял что лимит 32GB - это лимит плашек. Я привел тебе пример спецификаций других CPU, что лимиты намного шире. Потом ты уже заявил, что от смешных надписей в спецификации CPU толку мало. Просил, чтобы я привел в пример реальный конфиг. В итоге я тебе указал такой конфиг. Теперь ты уже к частотам прицепился и заявил, что производители скромно умалчивают на сколько нужно ронять тактовую частоту. Даже если это и так, это больше относится к серверным решениям с заявленой поддержкой очень больших объемов памяти. Но мы изначально говорили про конкретно мой десктопный процессор с лимитом в 32GB. И кстати, 32GB оперативки в моем компе могут легко работать на частотах которые даже выше указанных в спецификации CPU. :derisive:
     
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Aiks,

    Так а почему ты споришь про железо, не протестив на профайл системные инструкции, я ведь выше говорил тк это уже тут делалось. Поток не получает доступа к твоим хард ресурсам, их распределяет ось. Большой блок памяти шед будет туда сюда прогружать, распределять страницы, их выгружать обнулять менять таблицы трансляции и тп. Можно выделить невыгружаемую большую область её закрепить, но это тормознёт ось в целом, так нельзя делать. Можно одной апи сбросить весь рабочий набор системы(MmTrimWS()), выделив себе нужный физ блок и дальше она тупо повиснет на время подкачки назад всей памяти.
     
  6. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Indy_, тут 70% сообщений в теме оффтоп. Про железо(а именно причины лимитов максимального объема оперативки) в том числе. Изначально разговор был о методе детекта отладчика. Но как выяснилось, предложенный UbIvItS метод для этого не годится. Потом перешли на обсуждение детекта вирты его же методом. С помощью собранного тобой теста я пришел к выводу, что тест на разных компах выдает удивительный разброс показаний. UbIvItS аргументировал это рядом причин. Таких как нехватка свободной ОЗУ, большим объемом ОЗУ, антивирусом с песочницей, комп с неадекватной производительностью. На счет предложенного тобой метода с использованием системных инструкций, то я обязательно проверю. Спасибо.
     
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Aiks,

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

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

    > С помощью собранного тобой теста я пришел к выводу

    Там было две выборки в двух потоках, это и должно быть анстаб. Это даже не метод, а проверка теорий UbIvItS которая как не странно дала видимый результат, пусть и плавающий.

    С такими скоростями сборки и тестов нулевыми как у тебя результата не будет. Зачем тебе лезть в детекты вирт машин всё равно не сможешь, ну а отладчик - возьми семпл с кл его там никто не смог пройти и ты не сможешь отладить, без вирты визора или подобного инструмента. Изобретаешь велосипед который уже тут давно разобран.
    --- Сообщение объединено, 10 мар 2021 ---
    Список событий отладочных:

    Код (Text):
    1. typedef enum _DBGKM_APINUMBER {
    2.     DbgKmExceptionApi,
    3.     DbgKmCreateThreadApi,
    4.     DbgKmCreateProcessApi,
    5.     DbgKmExitThreadApi,
    6.     DbgKmExitProcessApi,
    7.     DbgKmLoadDllApi,
    8.     DbgKmUnloadDllApi,
    9.     DbgKmMaxApiNumber
    10. } DBGKM_APINUMBER;
    - как видно в этом списке событий связанных с работой потока без спец евентов нет. Поэтому отладчик не видит поток во время работы, он может лишь статистику запросить про поток.
     
    Aiks нравится это.
  8. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Прочитай сообщение №15 в этой теме.
    Да мне просто оно особо не к спеху. Раньше вирту детектил примерно таким способом:
    Код (Text):
    1. unsigned long long vm_detection_sub()
    2. {
    3.     unsigned int reg_eax, reg_edx;
    4.     unsigned long long time_1, time_2;
    5.  
    6.    __asm
    7.    {
    8.       RDTSC
    9.       mov reg_eax, eax
    10.       mov reg_edx, edx
    11.    }
    12.  
    13.    time_1  = ((unsigned long long)reg_eax) | (((unsigned long long)reg_edx) << 32);
    14.  
    15.    __asm
    16.    {
    17.       mov eax, 0
    18.       cpuid
    19.       RDTSC
    20.       mov reg_eax, eax
    21.       mov reg_edx, edx
    22.    }
    23.  
    24.    time_2  = ((unsigned long long)reg_eax) | (((unsigned long long)reg_edx) << 32);
    25.  
    26.    return time_2 - time_1;
    27. }
    28.  
    29. void vm_detection()
    30. {
    31.    unsigned long long avg = 0;
    32.  
    33.    for (unsigned i = 0; i < 10; ++i)
    34.    {
    35.       avg += vm_detection_sub();
    36.       Sleep(500);
    37.    }
    38.  
    39.    avg = avg / 10;
    40.  
    41.    if (avg > 1000)
    42.    {
    43.       // detection
    44.    }
    45. }
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Aiks,

    Так тебе вирту или отладчик. Это не связанные друг с другом вещи, работающие на разных принципах. В #15 говорится про общий метод защиты таймингом, это косвенно говорит про попытку реверса, это не обязательно отладчик что угодно может быть. Была тема я не мог пройти не сложный крэкми визором из за тайминга Patrick. Оказалось что второй поток блокировал файл с экскл доступом если задержка была немного больше чем в реалтайме. Так вот это не есть непосредственно метод, это скорее ошибка по синхрону в софте тк гонка потоков https://wasm.in/threads/aktivnost-prilozhenija.33360/page-2#post-410960
     
    Последнее редактирование: 10 мар 2021
  10. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Ты бы решился использовать этот метод с таким плавающим результатом в своем софте? Как идея - годится + иногда работает как задумано, как метод который можно использовать в софте - вряд ли.
    Мне интересны методы детекта отладчика и вирты в равной степени.
    Если б он не имел в виду детект отладчика своим методом, то он бы меня поправил. Но последующие обсуждения(после #15) уже были связаны конкретно с детектом отладчика. Он сам говорил про установку брекпоинтов. При установке брекпоинта в основном потоке(не в потоках с инкрементами) дельта между значениями переменных, которые мы инкрементили, не изменялась. Соответственно я пришел к выводу, что метод в целях детекта отладчика не годится. Потом еще ты это подтвердил.
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    критикуешь метод == изволь быть объективным, а не сыпать отмазами. :)
    Ты понимаешь что тут написано???
    [​IMG]
    потом можно продолжить :)
    счётчики устанавливаются во всех потоках, тч невозможно поставить бряк, не затронув хотя бы один из них. :)
    --- Сообщение объединено, 11 мар 2021 ---
    Вирту он так детектит :laugh1::laugh2::laugh3: а ничего, что рдтсц эмулится и выдаёт заниженный лаг???:blush2:
     
  12. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Я объективен. Критика основана не на догадках, а на проведенных мною тестах. Всю необходимую мне информацию про предложенный тобой метод я получил и сделал для себя выводы. Спасибо тебе за ответы. Но с чего ты решил, что я буду делать работу по проверке твоих новых идей вместо тебя? Тебе интересно - ты и проверяй. Я тебе никаких обещаний не давал. Не так ли? Давай ты мне вскопаешь огород. Что? Не будешь? Ох, уж эти отмазы... :)
    Это ты таким образом решил прикинуться "шлангом"? Изучи информацию по ссылкам из поста #62. Там в спецификации процессора указано "3TB". Так же есть ссылка на подходящую материнку.
    В худшем случае он не задетектит вирту. А в предложенном тобой методе будут частые ложные срабатывания. Чувствуешь разницу? :)
    --- Сообщение объединено, 11 мар 2021 ---
    Даже в главный поток который обрабатывает сетевые пакеты и рисует графику? Что ты там собираешься намерять инкрементами и с чем ты будешь сравнивать?
     
  13. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    UbIvItS,

    > Вирту он так детектит

    Если на вирте линейный таймер это хороший метод, только не нужно путать с тем что это уже нигде не сработает. Этот человек привык видеть готовое, частные решения, общее если описать то ответ один я подумаю". Это запрос на готовое решение, тоесть решений теоретических и практических ему не достаточно. Вопрос в данном случае такой - что, где скачать и как собрать. Но это исходный вопрос, когда даётся готовое ответ я подумаю. Тайминг по системным инструкциям приводил к однозначному детекту без каких то либо погрешностей и ошибок. По отладке я уже ответил никто тот семпл отладчиком не прошёл и не пройдёт(разве что вд но он ядерный), могу сурки поискать если не сохранились на https://archivevx.net/

    Как конец этой теме следует сказать что вирта тоже бывает разная. Частичная которая на харде выполняется либо на реальной системе, либо авер вирта, для которой всё софт симуляция. Разница в том, что хард вирта это блочное исполнение, блок кода выполняет процик напрямую, авер вирта же это тупо симулятор, отделённый от ос и железа.

    Слить всё воедино - два типа вирты отладчик и системку, это же человек должен быть полным нуби, что впрочем так и есть раз не разделяет понятия не понимает про речь и даже удивился штатным отладочным событиям, думая что отладчик это вирта или визор)
    --- Сообщение объединено, 11 мар 2021 ---
    Вот конечное решение по теме.

    Начало тут https://wasm.in/threads/stek-tenevyx-kalbehkov.25135/

    Конечная реализация техники была тут https://archivevx.net/exelab/f/pages/action=vthread&forum=2&topic=22109&page=2.html#22

    Это ссылка на решённую ошибку с wow из соотв темы.

    В юзер отладчиком это нерешаемо в принципе, тк это всё происходит на теневой части ядра доступа к которой из юзер и отладчика соотв нет. А поверх есчо всякие переключение контектов селекторов по таймингу короче это никак не решить в юзер обычными инструментами.
     
    Последнее редактирование: 11 мар 2021
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Все нуби, кроме спецов, но спецы не могут ничего решить, кроме того, что другие не смогли. Получается замкнутый круг ненужных друг другу людей.
     
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    Решили всё(по обходу защиты и реверсу), это ты только школьную публикацию продал. Поэтому и недоволен.
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Чем богаты - тем и рады.

    Я всем доволен, бро, не переживай.
     
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    в любом случае это унылый метод. :)
    если нужно делать код портируемым, то привязка к системным инструкциям не очень хороша + сам замер тайминга опять-таки надо делать чрез независимые счётчики.
    если говорить про песочницы, то куча из них являются реальным железом, а телеметрия вшита в ядро оси, тч методы детекта вирт да дебагов там тщетны == телеметрия пишет логи поведенческой активности и кидает их в центр. сейчас ФАКтически все вынь машины под ролью песочниц :)
    где же объективность? тесты-то надо проделывать полноценно :)
    короче, не понимаешь физику процесса и хватаешься за те смешные надписи про 3тб :) вот тебе видос с реальной машинкой на 2тб..

    результаты не столь фееричны, а? :) ну-и, обрати внимание на тактовую частоту озу (5:45).
    мда.. :) твой метод вполне себе может ложно сработать при большой загруженности проца. :grin:

    . . . . . .. . . . . . . . . . . ,.-‘”. . . . . . . . . .“~.,
    . . . . . . . .. . . . . .,.-”. . . . . . . . . . . . . . . . . .“-.,
    . . . . .. . . . . . ..,/. . . . . . . . . . . . . . . . . . . . . . . ”:,
    . . . . . . . .. .,?. . . . . . . . . . . . . . . . . . . . . . . . . . .\,
    . . . . . . . . . /. . . . . . . . . . . . . . . . . . . . . . . . . . . . ,}
    . . . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . . ,:`^`.}
    . . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . ,:”. . . ./
    . . . . . . .?. . . __. . . . . . . . . . . . . . . . . . . . :`. . . ./
    . . . . . . . /__.(. . .“~-,_. . . . . . . . . . . . . . ,:`. . . .. ./
    . . . . . . /(_. . ”~,_. . . ..“~,_. . . . . . . . . .,:`. . . . _/
    . . . .. .{.._$;_. . .”=,_. . . .“-,_. . . ,.-~-,}, .~”; /. .. .}
    . . .. . .((. . .*~_. . . .”=-._. . .“;,,./`. . /” . . . ./. .. ../
    . . . .. . .\`~,. . ..“~.,. . . . . . . . . ..`. . .}. . . . . . ../
    . . . . . .(. ..`=-,,. . . .`. . . . . . . . . . . ..(. . . ;_,,-”
    . . . . . ../.`~,. . ..`-.. . . . . . . . . . . . . . ..\. . /\
    . . . . . . \`~.*-,. . . . . . . . . . . . . . . . . ..|,./…..\,__
    ,,_. . . . . }.>-._\. . . . . . . . . . . . . . . . . .|. . . . . . ..`=~-,
    . .. `=~-,_\_. . . `\,. . . . . . . . . . . . . . . . .\
    . . . . . . . . . .`=~-,,.\,. . . . . . . . . . . . . . . .\
    . . . . . . . . . . . . . . . . `:,, . . . . . . . . . . . . . `\. . . . . . ..__
    . . . . . . . . . . . . . . . . . . .`=-,. . . . . . . . . .,%`>–==“
    . . . . . . . . . . . . . . . . . . . . _\. . . . . ._,-%. . . ..`\.
     
  18. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Поскольку ты решил ставить диагноз мне, то поставим и тебе. Indy, если бы ты меньше тратил времени на восхваление себя и своих достижений, то может быть у тебя оставалось бы больше времени на внимательное чтение темы. Это печально, что тебя приходиться тыкать носом в номера сообщений, чтобы ты начал понимать суть обсуждаемого. Ты живешь в своем мире. Пока ты не пришел в тему, никто уже про отладку и не говорил. Потом пришел ты и начал смешивать все воедино. В итоге поставив диагноз. Хороший ты спец, Indy. :derisive:
    Кому надо? Тебе? Мне полученной информации хватило, чтобы оценить качество метода. Если тебе не хватило - я тебе не мешаю. Я хотя бы провел тесты и запостил результаты. А что сделал ты кроме болтовни? :)
    А причем тут это? Ты не только отвечаешь выборочно, но и теряешь(специально?) суть обсуждаемого? Я не отрицал, что при использовании максимально рекордных объемов оперативки придется уменьшать частоту(смотри #64). Только ты забыл, что изначально разговор про оперативку начался ибо тебе показался лимит в 32GB на десктопном CPU - лимитом плашек. Ты осознаешь о чем ты начал разговор и чем закончил? Ты осознаешь разницу между 32-128GB при использовании десктопной платформы и 2-4TB на серверной платформы? На десктопных CPU при использовании максимально поддерживаемого объема RAM, как правило, частоты можно установить выше чем указаны в спецификации. Это при использовании хорошей памяти и материнки.
    Много лет использую на тысячах компах по всему миру. Полет нормальный. А ты продолжай выдвигать теории. :grin:
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.076
    Ты сделал утв о никчёмности метода, однако приличных доказательств не привёл.. короче, записываем твоё мнение в субъектив :)
    для акого типа ддр? :)
    ох-уж, эти оверклокеры :)
    если на клетке с буйволом надпись "олень" == не верь глазам своим © Козьма Прутков. Давай-ка глянем на те "теории"..
    Results of running under VM are below:
    • Host (Windows 7SP1 x64):
      • rdtscp delta=27, rdtsc delta=21
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=140
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=76, rdtsc delta=60
      • rdtscp delta=27, rdtsc delta=29
      • rdtscp delta=38, rdtsc delta=21
    • VMWare Workstation 10.0.2, guest OS: Windows XP SP3 32:
      • rdtscp delta=241, rdtsc delta=325
      • rdtscp delta=241, rdtsc delta=399
      • rdtscp delta=236, rdtsc delta=331
      • rdtscp delta=236, rdtsc delta=405
      • rdtscp delta=265, rdtsc delta=304
      • rdtscp delta=265, rdtsc delta=349
      • rdtscp delta=265, rdtsc delta=340
    • VMWare Workstation 10.0.2, guest OS: Windows 7 SP1 32:
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=21
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=21
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=18
      • rdtscp delta=56, rdtsc delta=21
    • VMWare Workstation 10.0.2, guest OS: Windows 7 SP1 64:
      • rdtscp delta=27, rdtsc delta=21
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=47
      • rdtscp delta=27, rdtsc delta=18
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=56, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=21
    • Virtual Box 4.3.10, guest OS: Windows XP SP3 32:
      • rdtscp delta=64, rdtsc delta=64
      • rdtscp delta=27, rdtsc delta=47
      • rdtscp delta=27, rdtsc delta=18
      • rdtscp delta=27, rdtsc delta=18
      • rdtscp delta=56, rdtsc delta=21
      • rdtscp delta=27, rdtsc delta=21
      • rdtscp delta=27, rdtsc delta=50
      • rdtscp delta=27, rdtsc delta=47
    https://www.hexacorn.com/blog/2014/06/15/rdtscp-a-recooked-antire-trick/
    пляааааа, на вбоксе дажЪ хрюньку не спалишь. Но на тЫщщщщАХЪЪЪ компов всё равно пашет:laugh1::laugh2::laugh3:
     
  20. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Ты вообще никаких доказательств/результатов тестов не привел. Записывай мое мнение куда хочешь. Не вижу смысла продолжать с тобой разговор.
    Тебе сложно посмотреть тип памяти для CPU с которого началось обсуждение? Или ты решил еще на несколько страниц развести оффтоп? С тобой вести разговор бессмысленно. Ты как блоха прыгаешь с темы на тему. Начинаешь за одно, а заканчиваешь другим. Отвечаешь выборочно.
    То ты вагуешь ложные срабатывания которых я не наблюдаю в своем софте, то ты приводишь статью с другим кодом и пытаешься выдать за результат моего кода. Вообщем, Rel был прав, когда советовал добавить тебя в игнор. Пожалуй, я так и сделаю. Ничего полезного не пропущу, зато время сэкономлю [​IMG]