Нет ли проблемы с архитектурой проекта, если количество методов в репозитории превысило 9000? К тому же, как я понял, в вашем случае вместо 9000 методов имеем (в худшем случае) 18000 классов, каждый из которых конечно описан в отдельном файле. В чем преимущество? Каким образом 18000 классов легче тестировать, чем один класс с 9000 методами?
Без примеров извлечения реальной пользы из такого подхода, все это выглядит мягко говоря странно. Точнее, это похоже на болезненную увлеченность паттернами проектирования, когда их пытаются запихнуть всюду, куда только можно. Если мне нужно получить аккаунт по логину, то мне потребуется ровно одна строчка. У вас же, кроме инфраструктурных классов, для этой цели мне придется завести еще два класса. Я понимаю, что это просто пример, но мне кажется, он не самый подходящий. Какая ситуация может привести к тому, что будет необходимо использовать ваше решение?
Однако она реально покончила с собой, и судя по всему те 1000 долбоебов, которые не позвонили в полицию, были такими же «профессиональными психологами» как и тот, кто сидит с вами рядом.
Я считаю, что каждый просто обязан помешать такому идиоту. Логика проста — покончить с жизнью он успеет всегда. Однако если его удастся спасти, то у него будет еще один шанс подумать, обстоятельства могут измениться и так далее. Важно понимать, что спасением вы предоставляете ему еще один шанс, который он всегда может использовать по своему усмотрению (в том числе и совершить повторную попытку), однако равнодушием вы не изменяете ничего.
Ваше предложение очень похоже на легализацию героина: люди точно так же смогут убивать себя по своему желанию, и по вашему мнению никто не должен им мешать. А что самое страшное, таких долбоебов, как вы, с каждым днем становится все больше.
Также неплохо в содержании и на страницах указывать тип оборудования. Например, я не знаю, что такое Samsung CPL-320N, но меня интересуют принтеры. Если бы было написано «Принтер Samsung CPL-320N», то я бы зашел и поглядел, а так просто пройду мимо.
Плюс еще заметил, что на миниатюре «Командный центр» слева одно изображение (девушка в черном), а на самой странице другое (девушка в розовом, такая же как и на странице Pro Геймер). Также на этой самой странице «Командный центр» в верхнем правом углу есть какой-то текст, однако его не видно, так как и цвет текста и цвет фона — белый.
Весьма интересно поглядеть (девушки на каждой странице это определенно + к популярности :) ), однако читать очень трудно (мелкий текст, трудно найти нужное, если нажать на интересующий объект в содержании, все равно переход идет на страницу с анимацией, где приходится искать этот самый объект). Собственно контента маловато. Также периодически некоторые страницы не открываются (белый фон вместо содержимого без индикации загрузки).
Когда я открыл ее, сразу начали минусовать :) Я так думаю это потому, что она засоряла главную страницу тем, кому NET впринципе не интересен, но возможно я чего-то не понимаю.
Конечно можно, поэтому я и говорю, что не стоит ни в какой мере надеяться на указанную в топике защиту (правда при этом сборка потеряет свое строгое имя, однако это не является проблемой). Простые методы обфускации (запутывание потока вызовов, переименование методов, вставка некорректных инструкций и т.д.) не могут в полной мере защитить NET сборку от дизассемблирования профессионалом. Более надежные методы обфускации, например запуск кода под виртуальной машиной с уникальной (виртуальной) архитектурой процессора (и соответственно ассемблера) могут помочь, но они дороги и далеко не всегда могут быть применены.
Пришлось вернуть галочку обратно, так как после того, как я ее убрал меня начали минусовать. Если я правильно понимаю ее действие, то при отсутствии галочки мой пост виден всем (в том числе и на главной), даже тем, кому NET впринципе неинтересен, а я не хочу засорять им главную страницу.
Спасибо за совет, я на хабре первый день и потому многого не знаю. Что касается Mono.Cecil — все что потребуется, это сборка Mono.Cecil.dll, более того, это проект с открытым исходным кодом, поэтому можете просто скачать исходники, скомпилировать и добавить ссылку в нужный проект. Mono.Cecil никак не зависит от Mono и полностью написан на C#.
1) Если в методе убрать параметр «string methodName» и проверку «if (method.Name == methodName)», то он обработает все методы целевой сборки.
2) Конечно, уже есть готовые утилиты, применяющие этот и многие другие методы, но я не знаю хорошего бесплатного обфускатора (но что касается именно указанного в заметке метода — его применяют некоторые бесплатные обфускаторы). Также, как я уже описал в заметке, не стоит слишком полагаться на этот метод, так как разработчик, который знает, как его обойти, обойдет его без проблем. Автоматизировать это можно например так — указать в PostBuild событии Visual Studio для целевого проекта путь к консольному приложению с параметром в виде пути к вашей сборке, используя соответствующие макросы VS (до этого конечно нужно обернуть описанный выше метод в консольное приложение). Тогда после каждого успешного построения все методы вашей сборки будут автоматически обрабатываться. Другой способ — подключиться к MSBuild.
Ваше предложение очень похоже на легализацию героина: люди точно так же смогут убивать себя по своему желанию, и по вашему мнению никто не должен им мешать. А что самое страшное, таких долбоебов, как вы, с каждым днем становится все больше.
2) Конечно, уже есть готовые утилиты, применяющие этот и многие другие методы, но я не знаю хорошего бесплатного обфускатора (но что касается именно указанного в заметке метода — его применяют некоторые бесплатные обфускаторы). Также, как я уже описал в заметке, не стоит слишком полагаться на этот метод, так как разработчик, который знает, как его обойти, обойдет его без проблем. Автоматизировать это можно например так — указать в PostBuild событии Visual Studio для целевого проекта путь к консольному приложению с параметром в виде пути к вашей сборке, используя соответствующие макросы VS (до этого конечно нужно обернуть описанный выше метод в консольное приложение). Тогда после каждого успешного построения все методы вашей сборки будут автоматически обрабатываться. Другой способ — подключиться к MSBuild.