Сейчас на форуме: -Sanchez-, Alf, Adler (+4 невидимых)

 eXeL@B —› Софт, инструменты —› Gbhv - Simple x64 Hypervisor Framework
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 08 января 2019 04:06 · Поправил: plutos
· Личное сообщение · #1

--> Gbhv<-- is a simple, powerful 64-bit Windows-based VT-x Hypervisor proof of concept written as an exercise to help learn how to develop and work with Intel's VT-X hardware virtualization technology.

Хотелось бы услышать мнения людей, кто в теме. Ну и конечно мнение сами знаете чьё...

ну и просто для тех, кто хочет все знать!

-----
Give me a HANDLE and I will move the Earth.




Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 10 января 2019 01:31
· Личное сообщение · #2

Что вообще может произойти при выполнении инструкции mov [eax],eax, скопированной в буфер и которая хочет модифицировать следующую инструкцию?
1. Эксепшн при записи. Ок, тут нормально.
2. Запись без эксепшна, но и без модификации следующей инструкции (еах указывает на какие-то ебеня, а не на текущий код).
Контроль над кодом сохраняется, но поток выполнения совсем другой, т.к. оригинальный код выполнил бы совсем другую инструкцию (jmp/call etc).
3. Запись без эксепшна, но с модификацией следующей инструкции. Тут теряется контроль над кодом.

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 10 января 2019 07:56 · Поправил: plutos
· Личное сообщение · #3

вопрос относится к данной теме весьма косвенно, просто он возник в процессе "раздумий" над ней.
При попытке собрать этот проэкт выяснилось следующее:
Есть две версии Visual Studio: 2015 and 2017.

Code:
  1. Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3
  2. Microsoft .NET Framework Version 4.7.02558
  3. Installed Version: Professional
  4.  
  5. Target platform version: 10.0.17763.0
  6. Platform Toolset: WindowsKernelModeDriver10.0 <b>(not installed)</b>


Code:
  1. Microsoft Visual Studio Professional 2017 Version 15.8.9
  2. VisualStudio.15.Release/15.8.9+28010.2050
  3. Microsoft .NET Framework Version 4.7.02558
  4. Installed Version: Professional
  5.  
  6. Windows SDK version: 10.0.17763.0
  7. Platform Toolset: Windows Driver Kit   10.0.17740.1000


Т.е. на 2015 WindowsKernelModeDriver10.0 (not installed), а на 2017 - все в порядке.
Как заставить VS 2015 "увидеть" WDK? Причем SDK версии совпадают.
На интернете вроде бы много решений, но все какие-то "бубны с танцами": попробуйте убрать это, поставить то, а потом убрать то, поставить это. Перепробовал, и все в пустую. Может кто знает простой и верный путь?

-----
Give me a HANDLE and I will move the Earth.





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

Создано: 10 января 2019 19:54
· Личное сообщение · #4

ntldr

Я посмотрел vmx_cpu.c

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

Добавлено спустя 14 минут
spinz

> Контроль над кодом сохраняется, но поток выполнения совсем другой, т.к. оригинальный код выполнил бы совсем другую инструкцию (jmp/call etc).
> Тут теряется контроль над кодом.

Каким же образом ?
Вы видимо не понимаете что спрашиваете.

Инструкция выбирается, затем исполняется. Ну перепишет она саму себя и часть следующей в исходной области. Штатно визор цикл выберет следующую инструкцию и выполнит её. Не понимаю какая проблема.

Опишите как вы это понимаете подробно. Иначе это представляется каким то не связанным бредом.

-----
vx




Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 11 января 2019 00:43 · Поправил: spinz
· Личное сообщение · #5

Вот смотри, Инде.
Визор распарсил блок кода, поместил его в буфер для выполнения и отдал выполнение этому блоку.
В коде встречается инструкция типа mov [eax],eax, ну или любая подобная, которая изменяет
выбранный блок по оригинальному адресу. При выполнении этого кода в буфере изменение потока инструкций не произойдет, т.к.
адрес буфера и еах, понятно, не будут совпадать. Т.е. код, выполняемый в буфере, будет себя вести так, как будто mov [eax],eax не выполнялась. А это фиаско.




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

Создано: 11 января 2019 04:27
· Личное сообщение · #6

spinz

Ясно. Это надуманная проблема. Во первых запись как и исполнение можно блокировать на системном уровне. А во вторых в таком случае можно сократить блок до одной инструкции, о чём я выше и говорил. Аналогично как и при необходимости адресной трансляции. А есчо такая ситуация крайне редкая. И это всё немного зарубит защита на новых ос.

-----
vx




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

Создано: 11 января 2019 04:50 · Поправил: ntldr
· Личное сообщение · #7

difexacaw пишет:

Такое варево что просто ппц. Как такое человек в здравом уме способен написать не понятно.

Спасибо на добром слове. Буду знать что писал в нездравом уме и вообще ебанутый. Выпить что-ли водки, для оздоровления.

PS: мне теперь понятно почему тебя, Клерк, травят все кому ни попадя.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 11 января 2019 05:57 · Поправил: plutos
· Личное сообщение · #8

ntldr пишет:
Буду знать что писал в нездравом уме и вообще ебанутый


"It is always nice to know what exactly is wrong with you."
©Kurt Vonnegut

-----
Give me a HANDLE and I will move the Earth.




Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 11 января 2019 06:34
· Личное сообщение · #9

клерк изрядно потроллил ремантлдра))




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 11 января 2019 07:09 · Поправил: f13nd
· Личное сообщение · #10

ntldr пишет:
Буду знать что писал в нездравом уме и вообще ебанутый.

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

-----
2 оттенка серого




Ранг: 44.8 (посетитель), 19thx
Активность: 0.040
Статус: Участник

Создано: 11 января 2019 10:07
· Личное сообщение · #11

У клерка же алгоритм простой.
Новая технология + индей не разобрался = хлам
Старая технология + индей не умеет в С/C++ = хлам
Старая технология + написана на православном масм + незаточена под vx = хлам

При этом технология патч гвард + много много этих лет осознавания индеем = новая технология IDP (по версии индея)
Технология dbi + много много этих лет осознаванием индеем = новая технология визора(по версии индея)

Ждем еще много этих лет и индей откроет для себя symbolic execution, а там и до виртуализации недалеко



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

Создано: 11 января 2019 19:35
· Личное сообщение · #12

у ntldr норм код, как я вижу это 2007 год - 12 лет назад уже такое мутить... зачет. сорцы вполне себе. как стартовая площадка на потыкать норм. thnx




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 января 2019 06:56
· Личное сообщение · #13

difexacaw пишет:
Такое варево что просто ппц. Как такое человек в здравом уме способен написать не понятно. Кэши какие то, асм вставки и прочее месево, что бы понять это всё нужно быть ебанутым как автор этих сурков. Надеюсь это не ваш проект.


Поражаюсь. Огромное кол-во людей использует отлично работающий, бесплатный, софт для шифрования жесткого диска, написанный ntldr и даже не догадывается, как там всё плохо. И вот ты, не сделавший для людей вообще ни фига, вечно ноющий, да вечно тролящий. Иди ка ты на хер, со своим идеальным кодом.

| Сообщение посчитали полезным: sefkrd, SReg, Vintersorg


Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 12 января 2019 10:19
· Личное сообщение · #14

spinz
f13nd
SegFault
superakira
Gideon Vi

Вам сюда: --> Если очень хочется поговорить про Инди <--



-----
EnJoy!





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 13 января 2019 23:23 · Поправил: plutos
· Личное сообщение · #15

ionescu:

--> Hyper-V® Development Kit <--

-----
Give me a HANDLE and I will move the Earth.



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


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