Я думаю, что меня несколько смущает компиляция байт-кода .NET в собственный код, или, может быть, я не совсем понимаю конечный результат. Поэтому, пожалуйста, поддержите меня, пока я пытаюсь разобраться в том, что, как мне кажется, я понимаю, чтобы вы могли помочь мне понять, чего мне не хватает.
Что я Мне хотелось бы скомпилировать мое приложение, написанное на C#, в обычный собственный код, как если бы я написал его на C. Мои рассуждения не связаны с производительностью, а скорее с некоторой степенью защиты. Я понимаю, что мою конечную цель вполне возможно (или даже настолько сложно) обойти, но мне просто кажется, что реверс сборки x86 сложнее, чем реверс того, что дает мне Reflector.
Сейчас, если я добавлю свое приложение C# в Reflector, я практически получу обратно свой исходный код. Обычно, когда я добавляю свои неуправляемые приложения C/C++ в IDAPro и использую декомпилятор HexRays, я не получаю обратно ту же степень декомпиляции, и мне приходится прибегать к дизассемблированию x86, чтобы понять логический поток. Насколько я понимаю, такая отличная декомпиляция происходит из Reflector из-за того, что приложение находится в MSIL, а не в более кратком собственном коде, который HexRays пытается декомпилировать.
Меня не беспокоит, что клиентскому компьютеру все еще нужны среды выполнения .NET, я не пытаюсь обойти что-либо из этого. Я хотел бы запустить в своей программе обычные программы обфускации программного обеспечения, такие как upx, и сделать это как двоичный файл .NET не удается.
Я понял это из этого связанный с этим вопрос, что ngen делает то, что я хочу. Я пробовал использовать ngen. Но после копирования выходного файла из каталога C:\Windows\assemblies\...\applicationName.ni.exe куда-нибудь я могу дважды щелкнуть мышью, и попытка запустить его выдает ошибку о том, что он не " допустимое приложение Win32». Кроме того, когда я добавляю applicationName.ni.exe в Reflector, я получаю тот же результат, что и только от applicationName.exe. Поскольку applicationName.ni.exe должен быть собственным кодом, я ожидал, что Reflector выдаст ошибку, но этого не произошло. Если я должен это делать именно так, то почему Reflector все еще предоставил мне такую замечательную декомпиляцию?
Итак, просто еще раз подытожу мой главный вопрос: как можно Я компилирую свою программу .NET в собственный двоичный файл, который Reflector не так легко декомпилирует? Или каковы лучшие методы защиты продукта, написанного на языке .NET, от новичков, занимающихся реверс-инжинирингом?
Если мне нужен другой инструмент, я бы предпочел что-нибудь бесплатное и а не что-то вроде Codewall.
Спасибо!
ОБНОВЛЕНИЕ: Я понимаю, что Я хочу ограничить некоторые возможности языка, например Reflection, но я думаю, меня это устраивает. Ни один из моих кодов не выполняет явных вызовов Assembly.Load или чего-то в этом роде. Но нельзя ли их просто заменить вызовами GetProcAddress/LoadLibrary?
Подробнее здесь: https://stackoverflow.com/questions/192 ... -to-native
Компиляция C# в Native? ⇐ C#
Место общения программистов C#
1736475719
Anonymous
Я думаю, что меня несколько смущает компиляция байт-кода .NET в собственный код, или, может быть, я не совсем понимаю конечный результат. Поэтому, пожалуйста, поддержите меня, пока я пытаюсь разобраться в том, что, как мне кажется, я понимаю, чтобы вы могли помочь мне понять, чего мне не хватает.
[b]Что я Мне хотелось бы скомпилировать мое приложение, написанное на C#, в обычный собственный код[/b], как если бы я написал его на C. Мои рассуждения не связаны с производительностью, а скорее с некоторой степенью защиты. Я понимаю, что мою конечную цель вполне возможно (или даже настолько сложно) обойти, но мне просто кажется, что реверс сборки x86 сложнее, чем реверс того, что дает мне Reflector.
Сейчас, если я добавлю свое приложение C# в Reflector, я практически получу обратно свой исходный код. Обычно, когда я добавляю свои неуправляемые приложения C/C++ в IDAPro и использую декомпилятор HexRays, я не получаю обратно ту же степень декомпиляции, и мне приходится прибегать к дизассемблированию x86, чтобы понять логический поток. Насколько я понимаю, такая отличная декомпиляция происходит из Reflector из-за того, что приложение находится в MSIL, а не в более кратком собственном коде, который HexRays пытается декомпилировать.
Меня не беспокоит, что клиентскому компьютеру все еще нужны среды выполнения .NET, я не пытаюсь обойти что-либо из этого. Я хотел бы запустить в своей программе обычные программы обфускации программного обеспечения, такие как upx, и сделать это как двоичный файл .NET не удается.
Я понял это из этого связанный с этим вопрос, что ngen делает то, что я хочу. Я пробовал использовать ngen. Но после копирования выходного файла из каталога C:\Windows\assemblies\...\applicationName.ni.exe куда-нибудь я могу дважды щелкнуть мышью, и попытка запустить его выдает ошибку о том, что он не " допустимое приложение Win32». Кроме того, когда я добавляю applicationName.ni.exe в Reflector, я получаю тот же результат, что и только от applicationName.exe. Поскольку applicationName.ni.exe должен быть собственным кодом, я ожидал, что Reflector выдаст ошибку, но этого не произошло. Если я должен это делать именно так, то почему Reflector все еще предоставил мне такую замечательную декомпиляцию?
Итак, просто еще раз подытожу мой главный вопрос: как можно Я компилирую свою программу .NET в собственный двоичный файл, который Reflector не так легко декомпилирует? Или каковы лучшие методы защиты продукта, написанного на языке .NET, от новичков, занимающихся реверс-инжинирингом?
Если мне нужен другой инструмент, я бы предпочел что-нибудь бесплатное и а не что-то вроде Codewall.
Спасибо!
[b]ОБНОВЛЕНИЕ:[/b] Я понимаю, что Я хочу ограничить некоторые возможности языка, например Reflection, но я думаю, меня это устраивает. Ни один из моих кодов не выполняет явных вызовов Assembly.Load или чего-то в этом роде. Но нельзя ли их просто заменить вызовами GetProcAddress/LoadLibrary?
Подробнее здесь: [url]https://stackoverflow.com/questions/1921656/compiling-c-sharp-to-native[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия