Статус: Офлайн
Реєстрація: 14.06.2007
Повідом.: 13471
Реєстрація: 14.06.2007
Повідом.: 13471
следует, что слабонервным туда лучше не заглядывать..
да и возможность кое-как декомпилировать машкод прошла мимо оратора..
впрочем, как обычно.
окей, давай говорить на примерах, показывай что именно заставило считать "слабонервным туда лучше не заглядывать"?
по поводу декомплияции, в дотнете не машинный код, а специальный байт-код, как в Java
Он компилируется в машинный непосредственно при исполнении. Из этого байт-кода несложно получить код достаточно близкий к оригиналу. Для примера - хотим посмотреть как устроено свойство Environment.OSVersion, запускаем рефлектор, открываем класс Environment, находим свойство OSVersion, смотрим его код:
Код:
public static OperatingSystem OSVersion
{
get
{
if (m_os == null)
{
PlatformID winCE;
Win32Native.OSVERSIONINFO ver = new Win32Native.OSVERSIONINFO();
if (!Win32Native.GetVersionEx(ver))
{
int num = Marshal.GetLastWin32Error();
throw new InvalidOperationException(GetResourceString("InvalidOperation_GetVersion"));
}
switch (ver.PlatformId)
{
case 0:
winCE = PlatformID.Win32S;
break;
case 1:
winCE = PlatformID.Win32Windows;
break;
case 2:
winCE = PlatformID.Win32NT;
break;
case 3:
winCE = PlatformID.WinCE;
break;
default:
throw new InvalidOperationException(GetResourceString("InvalidOperation_InvalidPlatformID"));
}
Version version = new Version(ver.MajorVersion, ver.MinorVersion, ver.BuildNumber, 0);
m_os = new OperatingSystem(winCE, version);
}
return m_os;
}
}
что именно тут пугает?

