Тут программист прислал резюме, хвалится, что разработал самостоятельно обфускатор для .NET. Что-то там про переименование и шифрование всего в сборке.
Я сам по этой теме мало знаю, так что нужен совет общественности. Такой уровень знаний потянет на хорошего крепкого джуниора?
Здравствуйте, Nuseraro,
N>Если действительно разработал нетривиальный обфускатор — то неплохо говорит о человеке, тянет на крепкого джуниора почти наверняка.
Гмм. Имхо если самостоятельно проанализировал задачу, правильно сформулировал требования, разработал не слишком кривую архитектуру приложения, закодировал, отладил и оттестировал, — это уже не уровень джуниора.
Здравствуйте, Vlad_SP, Вы писали:
V_S>Гмм. Имхо если самостоятельно проанализировал задачу, правильно сформулировал требования, разработал не слишком кривую архитектуру приложения, закодировал, отладил и оттестировал, — это уже не уровень джуниора.
Согласен, если это серьёзный промышленный обфускатор — это и уровень архитектора может быть...
Я что прочел, на то и отвечаю.
Здравствуйте, petr_t, Вы писали:
_>Тут программист прислал резюме, хвалится, что разработал самостоятельно обфускатор для .NET. Что-то там про переименование и шифрование всего в сборке. _>Я сам по этой теме мало знаю, так что нужен совет общественности. Такой уровень знаний потянет на хорошего крепкого джуниора?
Потянет. Я юниоре главное — мотивация, а не знания и опыт (их у него все равно нет).
Здравствуйте, petr_t, Вы писали:
_>Тут программист прислал резюме, хвалится, что разработал самостоятельно обфускатор для .NET. Что-то там про переименование и шифрование всего в сборке. _>Я сам по этой теме мало знаю, так что нужен совет общественности. Такой уровень знаний потянет на хорошего крепкого джуниора?
Дайте ему развернуть список на бумаге, а потом спросите про гномиков. После этого можно задать вопрос чем отличается паттерн Bridge от паттерна Adapter и добить вопросом про отличия MVC и MVP.
Если не сдастся, то попросите привести все перегрузки String.Concat.
В конце концов скажите "обфускатор это хорошо, но основы надо знать" и предложите на 10% меньше, чем человек хочет.
Здравствуйте, petr_t, Вы писали:
_>Тут программист прислал резюме, хвалится, что разработал самостоятельно обфускатор для .NET. Что-то там про переименование и шифрование всего в сборке. _>Я сам по этой теме мало знаю, так что нужен совет общественности. Такой уровень знаний потянет на хорошего крепкого джуниора?
А почему вы не интервьюируете его по теме которая вам близка?
Здравствуйте, gandjustas, Вы писали: G>В конце концов скажите "обфускатор это хорошо, но основы надо знать" и предложите на 10% меньше, чем человек хочет.
на 10 мало. надо на 30%
Здравствуйте, Nuseraro, Вы писали:
N>Согласен, если это серьёзный промышленный обфускатор — это и уровень архитектора может быть... N>Я что прочел, на то и отвечаю.
А как бы вы отличили "джуниорский" обфускатор от "архитекторского"?
Здравствуйте, petr_t, Вы писали:
_>Тут программист прислал резюме, хвалится, что разработал самостоятельно обфускатор для .NET. Что-то там про переименование и шифрование всего в сборке. _>Я сам по этой теме мало знаю, так что нужен совет общественности. Такой уровень знаний потянет на хорошего крепкого джуниора?
Если обускатор не падает, работает и на выходе действительно есть какая то обфускация. Загляните в код, если глаза не вытекли то как минимум junior. А если внутри все прилично и обфускатор в чемто уникален, то может и выше.
Здравствуйте, petr_t, Вы писали:
_> Я сам по этой теме мало знаю, так что нужен совет общественности. _> Такой уровень знаний потянет на хорошего крепкого джуниора?
обфускаторов для дотнета как собак без мазы. можно посмотреть как оно работает и набросать сочинение на тему (возможно, даже скопипастив чужой код чуть больше, чем совсем целиком).
шифрование байт кода -- это уже интересно. но тут нужно уточнить что подается на вход обфускатора: исходный текст или готовая сборка? если исходный текст, то это тривиально.
опять-таки надо смотреть что там за шифрование. решение в лоб: берем файл (не важно какой, хоть дотнет, хоть джава), шифруем его и дописываем к своей программе, которая расшифровывает его, сбрасывает на диск и оттуда загружает.
опять-таки, требования к джуниору у всех разные.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>обфускаторов для дотнета как собак без мазы.
максимум два десятка, из них годных — считанные единицы.
М>опять-таки надо смотреть что там за шифрование. решение в лоб: берем файл (не важно какой, хоть дотнет, хоть джава), шифруем его и дописываем к своей программе, которая расшифровывает его, сбрасывает на диск и оттуда загружает.
это паковщик, а не обфускатор. перехватить сброшенный на диск файл — что два байта переслать.
Здравствуйте, kleng, Вы писали:
K>Здравствуйте, мыщъх, Вы писали:
М>>обфускаторов для дотнета как собак без мазы. K>максимум два десятка, из них годных — считанные единицы.
про годные я не говорил.
K>это паковщик, а не обфускатор. перехватить сброшенный на диск файл — что два байта переслать.
мусор, который генерят обфускаторы, удалить ничуть не сложнее. в большинстве случаев даже граф строить не надо. достаточно простой стековый автомат.
но исходный пост не содержит ни ссылки на обфускатор, ни список фич. цитирую: "Что-то там про переименование и шифрование всего в сборке". шифрование очень разным бывает. я предложил способ, который может реализовать даже школьник на любом языке (хоть бейсике) и назвать его "шифрованием всего в сборке". ТС все равно не разбирается в предмете (как он сам сказал) так что...
создание обфускатора, который работает предполагает знакомство с арсеналом хакерских инструментов, методиками анализа по, а там же глубокое знание дотнета на предмет к каким побочным эффектам приводит вмешательство в чужой файл и где постелить соломки и где грабли. это как бы совсем не юниорский уровень. но и обфускатор должен быть реальным продуктом с реальными пользователями.
а так... коллега, вы же понимаете, если написать тетрис, то его сможет заценить кто угодно, поиграв минут пять. заценить обфускатор сложнее. если тупо нажать F3 и поискать текстовые строки -- а если это паковщик? текстовых строк там не будет, но (как вы сами сказали) это не обфускатор. не, ну можно, конечно, предложить ТС запустить proc explorer и поискать строки в памяти, то это снова ничего не доказывает.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>мусор, который генерят обфускаторы, удалить ничуть не сложнее.
К черту генерацию мусора. Годный обфускатор должен, как минимум, удалить всю полезную для хакера информацию, которую можно удалить. А это достаточно нетривиально.
Если, конечно, это действительно обфускатор, а не паковщик.
Здравствуйте, kleng, Вы писали:
K>Здравствуйте, мыщъх, Вы писали:
М>> мусор, который генерят обфускаторы, удалить ничуть не сложнее. K> К черту генерацию мусора.
это вы не мне. это вы авторам обфускаторов скажите.
K> Годный обфускатор должен, как минимум, удалить всю полезную K> для хакера информацию, которую можно удалить. А это достаточно нетривиально.
мы так и не выяснили на каком уровне работает обфускатор: исходного или байт-кода. вообще говоря, ломать не строить. написать обфускатор намного проще декомпилятора. как раз декомпиялция указывает на то, что автор разбирается и в байт-коде, и в мат-части, и неплохо знаком с дотнетом (раз уж он генерит код, который можно скормить транслятору).
K> Если, конечно, это действительно обфускатор, а не паковщик.
дык а я о чем? вообще-то, правила приличия обязывают выложить ссыль на бинарь или опенсурс. что это за секретный обфускатор такой? или его стыдно показывать? кстати, а был ли мальчик? в любом случае автор обфускатора ищет непрофильную работу и потому может не дотягивать до юниора даже если обфускатор настоящий. например, я напишу и обфускатор и деобфускатор (потому как это хлеб мой), но мои запросы к дазам банных будут ничуть не лучше юниорских (потому как не мой профиль).
думаю, вы не станете спорить, что профи от юниора отличается еще и тем, что знает и системы контроля версий, и документацию пишет не только в стиле write-only, и код у него расширяемый и сопровождаемый... причем, этот код можно собрать не только на машине разработчика. а мы не только кода, но даже и бинаря не видели.
опять-таки, писать обфускатор с нуля может либо юниор (типа упражнение такое), либо обфускатор действительно очень сильно нетривиален, но тогда это совсем не юниор.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
N>>По объему работы и по соответствию качества ожидаемому. K>Яркий пример ответов, которые я не люблю — обтекаемый и вроде как соответствующий вопросу, но не содержащий никакой информации.
А что именно непонятно? Для вас не несут информации слова "качество разработки" и "профессиональный программист"?
Все разобрано уже много раз, да, границы этих понятий несколько размыты, но это не мешает им существовать.
Здравствуйте, мыщъх, Вы писали:
М>дык а я о чем? вообще-то, правила приличия обязывают выложить ссыль на бинарь или опенсурс. что это за секретный обфускатор такой? или его стыдно показывать?
Согласен.
М>опять-таки, писать обфускатор с нуля может либо юниор (типа упражнение такое)
Сомневаюсь, что у юниора вообще хоть что-нибудь выйдет. Особенно глядя на те, что есть в наличии.
Я бы сказал, если обфускатор не валится и делает своё дело — это уже далеко за юниорским уровнем.