Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Microsoft Virtual PC 2007 SP1. Опкод 0F 3F . Где обработчик исключений? |
Посл.ответ | Сообщение |
|
Создано: 26 февраля 2015 19:45 · Личное сообщение · #1 Microsoft Virtual PC 2007 SP1 http://www.microsoft.com/en-us/download/details.aspx?id=24439 Жесткий диск можно взять отсюда : http://www.microsoft.com/en-us/download/confirmation.aspx?id=11575 , но запускать гостевую ОС надо в безопасном режиме, т.к. уже истек испытательный срок. Есть статья http://www.symantec.com/avcenter/reference/Virtual_Machine_Threats.pdf , но из нее ничего не ясно. Whereas VMware uses a special port to perform guest-to- host and host-to-guest communication, VirtualPC relies on the execution of illegal opcodes to raise exceptions that the kernel will catch. This method is very similar to the illegal opcode execution that Windows NT and later operating systems use in their DOS box to communicate with the operating system. By reverse-engineering the VirtualPC executable file, the author found that the opcodes are the following: 0F 3F x1 x2 0F C7 C8 y1 y2 In ordinary circumstances, execution of these opcodes causes an exception to be generated. The 0F 3F opcode causes an exception because it is an otherwise undefined opcode. The 0F C7 C8 opcode causes an exception because it is an illegal encoding of an existing opcode. This exception can be trapped by an application. However, if VirtualPC is running, no exception is generated, depending on the values of x1, x2, y1, and y2. The full list of allowed values for x1 and x2 is not known. However, the BIOS code in VirtualPC uses the values 0A 00, 11 00, 11 01, and 11 02. The file-sharing module that can be installed uses value 02 followed by 01-13, and 07 0b. These appear to be examples of guest-to-host communication. An example of host-to-guest communication is given in the following: if x1 is 03 and x2 is 00, then the current host time (in hour:minute:second notation) is placed into the DX, CX, and AX, registers respectively (see VIRTUALPC TIME demo). Other values for x1 and x2, such as 02 00, return other values in the CPU registers. The values 10 01-03 and 10 06 alter the Z flag. The IsRunningInsideVirtualMachine() API uses the value 07 0B. Делались попытки споймать GetLocalTime при выполнении 0f 3f 03 00 на гостевой ОС, но никакого времени никуда не передается (оно якобы должно передаваться согласно VIRTUALPC TIME ), исключение перехватывается внутри гостевой ОС. Подскажите, где в файле \Program Files\Microsoft Virtual PC\Virtual PC.exe обработчик этого опкода 0F 3F , который перехватывает обработчик на гостевой ОС. ![]() |
|
Создано: 26 февраля 2015 19:51 · Личное сообщение · #2 |
|
Создано: 26 февраля 2015 20:54 · Личное сообщение · #3 |
![]() |
eXeL@B —› Вопросы новичков —› Microsoft Virtual PC 2007 SP1. Опкод 0F 3F . Где обработчик исключений? |