Re[8]: Как определить кто передал управление?
От: tacit_one Россия  
Дата: 11.02.05 07:53
Оценка: +2
Здравствуйте, PVA, Вы писали:

PVA>Для VMWare (до пятерки точно) & VirtualPC есть способы обнаружения. Видел где-то в районе wasm.ru/forum/

PVA>Но это не значит, что не найдется другой ВМ.
Ну так на VMWare и VPC свет клином не сощёлся — если очень нужно можно банальным bocheм всё посмотреть.

PVA>+ Ожидается выход интересных ключей защиты, основанных на подобной технологии — можете воспользоваться услугами профессионалов

Взлом любой защиты вопрос только экономической целесообразности...
Как определить кто передал управление?
От: 2UT  
Дата: 08.02.05 13:26
Оценка:
Добрый день!
Есть ли какая возможность определить кто передал управление моей программе? Например, у меня есть загрузчик и я хочу определить, что его вызывает именно BIOS.
Возможно ли определить сколько приложений запущенно на х86 процессоре? Опять-таки из загрузчика смотреть не происходит ли эмуляция загрузки (VirtualPC).
Буду признателен за любую информацию.
Re: Как определить кто передал управление?
От: Stanky  
Дата: 08.02.05 17:14
Оценка:
> Есть ли какая возможность определить кто передал управление моей
> программе?
>
Разве что по адресу возврата в стеке и то не всегда он есть!!!

> Например, у меня есть загрузчик и я хочу определить, что его вызывает

> именно BIOS.
>
Загрузчик чего и где он находится? В 0-м секторе винта?

> Возможно ли определить сколько приложений запущенно на х86 процессоре?

>
Для процессора нет такого понятия, он всего лишь выполняет одну команду за другой!!! Чтоб это сделать нужно написать свою мини-ось!!!

> Опять-таки из загрузчика смотреть не происходит ли эмуляция загрузки (VirtualPC).

>
Не совсем понял, можно поподробней?
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[2]: Как определить кто передал управление?
От: 2UT  
Дата: 08.02.05 21:09
Оценка:
Здравствуйте, Stanky, Вы писали:

S>Загрузчик чего и где он находится? В 0-м секторе винта?

Загрузчик моего образа операционной системы, находится он допустим в 0-м секторе винта (хотя носители могут быть разные (FDD, USB) или это принципиально?)

S>Для процессора нет такого понятия, он всего лишь выполняет одну команду за другой!!! Чтоб это сделать нужно написать свою мини-ось!!!

Так, а анализ режима работы процессора(реальный, защищенный) что-нибудь даст?

S>Не совсем понял, можно поподробней?

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

В общем когда мой загрузчик получит управление мне нужно определить, что управление мне передал BIOS и он единственный кто выполняется на этом процессоре, а так же есть ли попытка трассировки и отладки загрузчика другими программами. С последним более менее понятно, а вот с первым не очень...
Re[3]: Как определить кто передал управление?
От: Stanky  
Дата: 08.02.05 22:33
Оценка:
> Загрузчик моего образа операционной системы, находится он допустим в
> 0-м секторе винта (хотя носители могут быть разные (FDD, USB) или это
> принципиально?)
>
Нет, не принципиально!!!

> Так, а анализ режима работы процессора(реальный, защищенный) что-нибудь

> даст?
>
Всмысле? Что ты хочешь чтоб анализ тебе дал?

> Просто под VMWare можно стартовать несколько операционок, из своего

> загрузчика хотелось бы понять работаю я один или нас тут много.
>
Это уже зависит от того как работает VMWare — я с ним не сталкивался!!!

> В общем когда мой загрузчик получит управление мне нужно определить,

> что управление мне передал BIOS и он единственный кто выполняется на
> этом процессоре
>
Ну если все ресурсы у тебя в полном распоряжении, то никто не помешает тебе быть единственным!!!

> а так же есть ли попытка трассировки и отладки загрузчика другими программами.

>
Не совсем понимаю чего ты хочешь!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[4]: Как определить кто передал управление?
От: 2UT  
Дата: 09.02.05 10:52
Оценка:
Здравствуйте, Stanky, Вы писали:

S>Не совсем понимаю чего ты хочешь!!!

Я хочу определить идет ли загрузка с моего устройства (т.е. BIOS передает управление) или кто-то пытается с эмулировать процесс загрузки и пытается снять защиту. У меня программа лежит на винте зашифрованная и я хочу сделать зашиту от копирования.
Re: Как определить кто передал управление?
От: Valerio Россия linkedin.com/in/boronin
Дата: 09.02.05 12:15
Оценка:
2UT>Есть ли какая возможность определить кто передал управление моей программе? Например, у меня есть загрузчик и я хочу определить, что его вызывает именно BIOS.
2UT>Возможно ли определить сколько приложений запущенно на х86 процессоре? Опять-таки из загрузчика смотреть не происходит ли эмуляция загрузки (VirtualPC).
просто абстракно думаем:
если Ваша прогамма научится распознавать работает ли она на реальном железе или на виртуальном — то это баг виртуальной машины. Вся идея чтобы Ваша программа не смогла этого узнать — отсюда мне видится тупиковость честных методов (независящих от особенностей реализации каких-то конкретных VM) в этом направлении.

Хотя возможно стоит полазить по VMWare SDK & Sources например — они сами дергают некий приватный интерфейс для общения с хостом изнутри VM по надобности.. правда не уверен что это сработает на самой ранней стадии загрузки (я так понимаю речь идет о MBR code или около того)
... << RSDN@Home 1.1.4 beta 4 rev. 302>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[5]: Как определить кто передал управление?
От: Stanky  
Дата: 09.02.05 14:24
Оценка:
> Я хочу определить идет ли загрузка с моего устройства (т.е. BIOS
> передает управление) или кто-то пытается с эмулировать процесс загрузки
> и пытается снять защиту.
>
Как я уже сказал, с VMWare не сталкивался!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[5]: Как определить кто передал управление?
От: tacit_one Россия  
Дата: 10.02.05 07:41
Оценка:
Здравствуйте, 2UT, Вы писали:

2UT>Здравствуйте, Stanky, Вы писали:


S>>Не совсем понимаю чего ты хочешь!!!

2UT>Я хочу определить идет ли загрузка с моего устройства (т.е. BIOS передает управление) или кто-то пытается с эмулировать процесс загрузки и пытается снять защиту. У меня программа лежит на винте зашифрованная и я хочу сделать зашиту от копирования.

ну вообще-то идея сама по себе порочна. хранить что-то дорогое на жестком диске
с целью защиты от копирования — это как минимум не логично. с жёсткго диска
программу очень легко считать, потом полазить по нему хорошим дизассемблером
(слава богу x86 ассемблер знает огромная туча народа), потом взломать вашу
защиту и продать за огромные деньги =). Конечно, если оно действительно того
стоит. А если не стоит, то может и не стоит париться?
Кстати, если уж действительно хотите немного защитить свой код — смотрите в сторону
микроконтроллёров различных фирм (atmel, texas instruments) и микросхем памяти
flash с физической защитой от чтения...
Re[6]: Как определить кто передал управление?
От: 2UT  
Дата: 10.02.05 21:58
Оценка:
Здравствуйте, tacit_one, Вы писали:

_>Кстати, если уж действительно хотите немного защитить свой код — смотрите в сторону

_>микроконтроллёров различных фирм (atmel, texas instruments) и микросхем памяти
_>flash с физической защитой от чтения...
Дык, как раз такой девайс и спаяли и прикрутили к нему USB Mass Storage. Вот хочу с него загрузиться и хоть как-то защитить свой код.
Что тут еще можно придумать, у кого какие идеи есть???
Re[7]: Как определить кто передал управление?
От: tacit_one Россия  
Дата: 11.02.05 07:11
Оценка:
Здравствуйте, 2UT, Вы писали:

2UT>Дык, как раз такой девайс и спаяли и прикрутили к нему USB Mass Storage. Вот хочу с него загрузиться и хоть как-то защитить свой код.

2UT>Что тут еще можно придумать, у кого какие идеи есть???

Ну имхо с него грузиться точно не стоит, т.к. процесс загрузки PC очень хорошо известен, а это
сильно облегчит процесс реверсинга, имхо (если этим кто-то вообще будет заниматься).
Если не секрет каково рода девайс приблизительно ваяете? а то немного непонятна задача.
Re[7]: Как определить кто передал управление?
От: PVA  
Дата: 11.02.05 07:27
Оценка:
Здравствуйте, 2UT, Вы писали:

2UT>Дык, как раз такой девайс и спаяли и прикрутили к нему USB Mass Storage. Вот хочу с него загрузиться и хоть как-то защитить свой код.

2UT>Что тут еще можно придумать, у кого какие идеи есть???
Для VMWare (до пятерки точно) & VirtualPC есть способы обнаружения. Видел где-то в районе wasm.ru/forum/
Но это не значит, что не найдется другой ВМ.

+ Ожидается выход интересных ключей защиты, основанных на подобной технологии — можете воспользоваться услугами профессионалов
newbie
Re[8]: Как определить кто передал управление?
От: 2UT  
Дата: 14.02.05 21:17
Оценка:
Здравствуйте, PVA, Вы писали:

PVA>+ Ожидается выход интересных ключей защиты, основанных на подобной технологии — можете воспользоваться услугами профессионалов

Интересно, а можно по подробней?
Re[9]: Как определить кто передал управление?
От: warhast Россия  
Дата: 16.02.05 00:22
Оценка:
_>Ну так на VMWare и VPC свет клином не сощёлся — если очень нужно можно банальным bocheм всё посмотреть.

_>Взлом любой защиты вопрос только экономической целесообразности...


Когда речь заходит о чем-то действительно нужном и дорогои, то берется in-target probe (хрень, втыкаемая между процессором и материнкой), ею пишутся логи всех выполнявшихся инструкций (а можно и просто отлаживать) и наступает взломщику счастье. Одна проблема — стоят такие штуки от десяти штук баксов и софт там не самый удобный (soft-ice куда лучше).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.