eXeL@B —› Вопросы новичков —› C# подмена класса\метода через конфиг файл |
Посл.ответ | Сообщение |
|
Создано: 25 августа 2017 01:23 · Личное сообщение · #1 |
|
Создано: 25 августа 2017 01:32 · Личное сообщение · #2 |
|
Создано: 25 августа 2017 08:44 · Личное сообщение · #3 difexacaw хэши - селфчек, так понимаю zds не думаю. как вы себе это представляете? ----- От многой мудрости много скорби, и умножающий знание умножает печаль |
|
Создано: 25 августа 2017 11:45 · Личное сообщение · #4 difexacaw assemblyBinding - в конфиг файле можно сделать перенапреление на свою сборку с другим именем и в другом месте https://msdn.microsoft.com/ru-ru/library/twy1dw1e(v=vs.110).aspx была прога, где нужно было пропатчить пару байт в одной dll. Но возникала проблема, что в других сборках была проверка этой dll по хэшу, строгим именам. В свою очередь эти сборки проверялись в других и так далее, все нарастало как снежный ком. В общей сложности пришлось бы патчить примерно 20 файлов. добавив assemblyBinding в конфиг файл я решил задачу с минимальными усилиями. Оригинальная dll лежала на своем месте и проходила все проверки, патченная же лежала в другом месте и подгружалась автоматически. здесь конечно повезло, то что разработчик находил местоположение dll по местоположению главной сборки, а не находил сборку например по какому-нибудь классу из нее (Assembly.GetAssembly (Type)) ajax не знаю, думал может есть что-то подобное. до того как я случайно не нашел assemblyBinding, тоже не думал, что такое возможно стандартными средствами |
|
Создано: 25 августа 2017 12:03 · Поправил: difexacaw · Личное сообщение · #5 |
|
Создано: 25 августа 2017 14:28 · Поправил: ajax · Личное сообщение · #6 zds биндинг даж на ms расписан, че тут думать было. сейчас прикинул - теоритически подмена возможна, либо JIT-хуком. но, хз как внутренние механизмы дотнета отнесутся к таким редиректам. либо просто мемпатчем байткода. вопрос - нахрена это? difexacaw ему класс/процедуру в IL либе надо подменить своим кодом. в памяти, так понимаю ----- От многой мудрости много скорби, и умножающий знание умножает печаль |
|
Создано: 26 августа 2017 00:55 · Личное сообщение · #7 |
|
Создано: 26 августа 2017 01:25 · Личное сообщение · #8 |
|
Создано: 26 августа 2017 02:48 · Личное сообщение · #9 shellstorm А у вас что еврейский ресурс с чушью и запредельным чсв пример для меня. Поймите следующее. Если есть какое то обычное приложение, то для него можно применить любые методы, это нэйтив код и его можно разобрать на компоненты, сделав что угодно. Но это викс методы и инструменты, так апп не пишутся. У тс же не нэйтив, а транслятор; инструменты и техники к этому не применимы. Вмешаться в байт код вм, хз на что опираясь.. я даже не представляю с чего начать, но понимаю что это пзц. Такое никуда не годится. Для решения задачи нужна серия моторов. Каждый из которых обрабатывает выхлоп ниже стоящего по цепочке. Нужно взять вм под дебаг(визор), далее перейти на уровень выше, обработать непосредственно байт код, причём это всё чёрный ящик. Это даже не задача, это бред. Выводы: 1. Использовать только средства конкретного IDE/среды. Тоесть не нарушать её целостность, не нужно колхозить, для решения, которое принято из за не понимания среды разработки. 2. Всё что нарушает защиту есть малварь. Посему никакой не стандартный метод не годится. 3. Колхозят только ньюби. Тоесть изучать сабж до просветления, тогда вопрос иссякнет сам собой. ----- vx |
|
Создано: 26 августа 2017 03:02 · Личное сообщение · #10 difexacaw пишет: А у вас что еврейский ресурс с чушью и запредельным чсв пример для меня. У меня знание работы jit и знание того, что на том ресурсе есть подробная статья. Касательно самих языков, они позволяют собирать код из приложения, заменять методы, классы на лету, это стандартная фича самой платформы. В google hot code upgrade, ну и конечно class injection. В серверном софте это вполне обычное обновление. |
|
Создано: 26 августа 2017 03:13 · Поправил: difexacaw · Личное сообщение · #11 shellstorm На факав есть девчёнка которая куда лучше вас думаю шарит в этих jit, с ней можите и потягаться. Я же этот крэп знаю лишь поверхностно. И по мойму это источник зла. Обычный инжект(OP) можно обнаружить и прибить, а jit нет. net это принципиально вредоносно. А учитывая уровень(скилл) знаний, тех кто это реализует - это ппц, как это вообще допустили к существованию не понимаю. ----- vx | Сообщение посчитали полезным: plutos |
|
Создано: 26 августа 2017 03:53 · Личное сообщение · #12 difexacaw пишет: На факав есть девчёнка которая куда лучше вас думаю шарит в этих jit, с ней можите и потягаться. Мне не 15 лет, я всего лишь объяснил элементарные вещи из 21 века. В некоторых языках это вообще киллер-фича, например в erlang и языках производных на его виртуальной машине. В описании языка можете почитать зачем это вообще нужно, там доступней описана идея чем в java вариантах. Касательно ТС, простых вариантов там нет, только вмешиваться в работу jit, а с подобными вопросами ему туда рано лезть, а то что проверку подписей можно снести, так неудивительно при доступе то к сборке, не понимаю по какому поводу у вас подгорело. difexacaw пишет: это ппц, как это вообще допустили к существованию не понимаю. Это не ппц, а очень нужный функционал, проще пересобирать весь проект или заменить метод\класс, может еще сервер остановить для обновления? |
|
Создано: 26 августа 2017 04:15 · Личное сообщение · #13 |
|
Создано: 26 августа 2017 04:41 · Личное сообщение · #14 |
eXeL@B —› Вопросы новичков —› C# подмена класса\метода через конфиг файл |