Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение
На счет «сумма всех положительных чисел равна -1/12». Из статьи получается что он был первым кто пришел к этому результату. Но на сколько я знаю Эйлер за несколько сотен лет до этого был первым кто посчитал сумму всех натуральных чисел :)
Да, это очень похоже на причину: парсер не трудно написать, плюс там нет огромных проблем со скоростью если следить за чтением данных. Вполне нормальный кусочек кода который можно переписать на другом языке если есть цель что-то переписать на другом языке. ИМО переписатли не потому что решили таким образом поченить проблеы, а просто решили переписать что-то…
> Ну тогда я бы и сам не отказался от ссылок на подробности :(

Подробности «android stagefright exploit» или о том что мп4 парсер меньше 5%? stagefright это что-то вроде directx в андроиде, новая мультимедиа подситема заменившая старый медиа код от On2. Сам Mp4 формат нерально тяжелый, но в андроиде он в очень урезаном варианте, как вропчем и везде — mp4 формат нигде толком полностью не написан кроме возможно mp4box. Для обычного проигрывания mp4 или 3gp файлов достаточно маленького сабсета от формата mp4. В кратце формат состоит из «коробок» которые имеют подобную структуру: box = [size][data of size bytes], file: [box][box]...[box], некоторые коробки содержат другие коробки и тд, но ВСЕ они указывают размер данных и все. Есть там всякие ньюансы (32/64-бит size, 0-size и тд) но это все мелочи. Есть пару коробок которые имеют разную структуру в зависимости от того кто файл делал, но все это легко решаемо если код пишется тем кто знает что делает. Поэтому я просто не пойму как переписывание mp4 в другом языке может чем-то помочь, так как скорее всего проблема не в парсере а в том что в коробки засовываются битый bitstream который уже потом взрывает, либо там offsets не правильные указываюся (в коробке-таймлайне) или код который читает коробки с codec-specific-data, но их очевидно что надо проверять а не слепо читать и парсить без оглядки.

> По моему опыту правильно написать хоть немного объемный код на плюсах, который работает с данными из недоверенного источника, очень сложно.

Смотря где. В мп4 парсере нужно написать код для поддержки может 20-ти разных типов коробок, но все они имеют одну и ту же базовую структуру: [размер][данные], т.е. это в базовом классе проверка делается один раз и все.

> Насколько я помню, что бы была проверка границ у плюсового вектора надо дергать метод at, а не обычный оператор индексирования.

Да, именно так. Я имел ввиду что-то вроде этого:

struct xvector: vector<uint8_t>
{
uint8_t& operator[](int pos){ return at(pos); }
};

так как stagefright на С++ написан, класс буфера заменить на xvector и будет оператор[] с проверкой. Mp4 парсер не требует больших мощностей, вот в декодере уже не получится такое делать, там реально в многих местах (как FFT например) все регистры уже под завязку загружены, да и ко всему там часто уже HW-декодеры в зависимости от кодека.
я выше уже ответил. Это же шуточный ответ. Для тех кто в танке: очевидно что у всех есть недостатки, и когда кто-то говорит что недостатков нет, то он очевидно врет. Так вот, я в шутку им говорю что недостатков нет, единственный недостаток в том что я никогда не вру :)
банально? но по-моему очевидно что ответ шуточный, не так ли? После того как интервьювер поулыбается и переспросит еще раз уже можно какой-то простой минус преподнести. Я к примеру не могу (очень)быстро на клавиатуре печатать с 99% точностью, и когда пишешь код отвлечения на мизерные поправки текста снижают продуктивность (начинаешь на всякие мелочи отвлекаться). Почти все на самом деле програмситы имеют эту «проблему», но у меня просто на предыдущем месте работы человек на уровне мирового рекорда печатал (со всякими знаками препинания и тд) и разница очевидная когда видишь это на деле. Я иногда даже специално тринируюсь чтоб повысить точность и скорость (и это не шутка). Таким образом мой минус (который по сути и «реальным» минусом трудно назвать) тут же превращается в небольшой плюс так как я стараюсь это поправить к лучшему.
в США преступность уж точно не выше чем в России :) и даже по убийствам в разы ниже. Медицина однозначно лучше (вопрос в цене), с высшым образованием та же картина. В нормальных компаниях вроде как проблем с медициной нет — страховки всякие вроде все покрывают. Единственный вопрос мож с ценой на высшее образование?.. так можно легко поехать в другие страны учиться, по обмену и тд если в США дорого.
«android stagefright exploit» — там в основном все про stagefright, только частично упомянается мп4 парсер, который меньше 5% от stagefright занимает. Сам мп4 парсер довольно таки легко написать без подобных проблем (для тех кто знают структуру мп4 это очевидно).
А в чем проблема к примеру использовать тогда custom C++ array with checked index bounds? Вроде как vector::[] calls vector::at()? Подобная run-time проверка тоже будет.
на счет отладки: если трудно пройтись по коду в отладчике это уж точно не поможет в отладке этих самых уязвимостей и прочих проблем короые могут привести к букету других проблем и уязвимостей.
Я кстати на вопрос о слабостях обычно так задумываюсь и потом говорю что у меня нет слабостей,… и после паузы… может быть только то что я слишком честный :) «I don't think I have any… maybe I'm too honest?.. » :)
Я думаю что вам надо задуматься еще разок о странном нежелани ехать в США. Если уж переезжать, я бы посоветовал амазон в Сиэтле. Мне город понравился, там почти нет снега зимой и в то же время для любителей горнолыжного спорта в часе езды уже горы снежные. Я сам с Канады кстати. От чего нежелание переезда в США кстати?
150К для Сиэтла — очень даже не плохо! Там же нет подоходного налога в штате, плюс бонус и акции. 150 в Сиэтле это как 200 в Сан Франциско. Только жильё в разы еще дешевле в Сиэтле кажется. У меня тоже кстати был вопрос про дерево и вывод элементов «в ширину» (BFS). Только вывод элементов начиная с последнего уровня и до первого. Для таких вопросов конечно просто «набрасать» код нельзя. Надо не только успеть обсудить решение но и еще идельно без ошибок его на доске написать. Я его написал, предложил еще алтернативное решение, и потом так как было еще достаточно времени интервьювер решил задать другой вопрос, который я точно так же отлично решил с ожидаемыми параметрами по run-time и памяти.
Я бы не сказал что интервью простое. Это так кажется, но его не так легко его пройти. В Гугле что-то подобное тоже, но там проходят 0.2% кажется. В амазоне кодят в основном на javа, и даже если интервью кажется легким и вопросы попадутся легкие не значит что будет предложение о работе даже если все ответить правильно на интервью. Они обычно судят об успехах кандидата по отношению к другим кандидатам которые получали подобный вопрос. Часто очень сильные програмисты проваливают интервью и даже если за спиной 10+ лет опыта без предварительной подготовки шансов пройти почти нет, даже просто попасть на интервью не легко. Гораздо больше шансов скажем у студента только что закончившего станфорд с хорошими оценками. Это стандартная общеизвестная практика, на сколько я понимаю, в силиконовой долине.
Я в Канаде вобще не замарачивался на счет ипотеки. На сколько я знаю, если я решу продать дом то продам его и все, и ничего не должен банку. По-моему только за 3 месяца надо проценты будет им заплатить, если я просто продам не купив другого дома (не взяв новой ипотеки).
Детали того «CVE-2015-3870» не читаются. Я парсеры мп4 сам писал и поэтому немного удивился что кто-то умудрился в андроид закомитить код который парсит что-то без валидации размеров.
Вместо того чтоб нормально написать парсер переписать писать его на другом языке? А как же отладка кода (если это не gdb)? В VisualStudio нельзя будет пройтись по парсеру как будто это какой-то массивный opengl что ли?
Ну тогда можно в том же Амазоне в Сиэтле работать. 140-150 сениор там может получать с 10-ти летним опытом. В Сиэтле налог на 10% меньше по сравнению с Калифорнией. За 5К/мес можно жить в (своем) шикарном доме в 20 минутах езды от работы.
Для симейных действительно сан-франциско наверное на самый лучший выбор, если только один человек в семье работает и не получает сверхъестественной оплаты за свой труд.
Не знаю как в Германии, но в штатах стандартная практика по мимо оплаты еще получать бонусы и stock options которые частенько могут привышать зарплату
на сколько я знаю теперь можно сразу менять группу, вроде это правило отменили.
По-моему, у многих IT-фирм в штатах практикуется такое понятие как неограниченный отпуск. Это означает что можно в любое время попросить недельку-две отпуска и даже больше. Все зависит от успеваемости и положения сотрудника. Пишу «по-моему» так как на деле еще пока не успел проверить как это работает, но в нескольких компаниях где я получил предложения работы были именно такие условия по отпускам.
Судя по советам автора «cracking coding interview» на кворе обсуждать оффер не только можно но и нужно! Смотреть на это нужно по другому: соискатель пытается продать самое главное что у него есть: свои профессиональные навыки и опыт, соискателя мурыжат всякими перелетами да кучей интервью по телефону, через hackerrank и тд, и в конце концов дают оценку «стоимости» этого человека. Это же начальная точка отчета, можно сказать нижняя планка. Почему этот самый соискатель не пытается сделать мало-мальское усилие поднять эту планку ближе к максимуму!? Я бы такого кандидата сразу поставил бы под сомнение, если же конечно он не злёный новичёк.
Я сам работал в одной компании 10 лет, перед тем как перейти в новое место полтора года назад и работал там год по удалёнке пока меня от туда не уволили несколько месяцев назад ;) После увольнения поехал в тайланди по другим странам покатался, позже постучал по своим старым контактам и работал консультантом последних 3-4 месяца и решил настало время, и пока еще не поздно, в силиконовую долину перебираться.
Я в жизни-то интервью проходил наверное один-два раза (10 лет назад и полтора года назад когда на удалёнку перешел). Поинтересовался у знакомых как правильно подойти к этим интервью и следуя совету что обсуждать оффер это не только можно но и нужно как часть интервью. Я прошел несколько интервью в разных компаниях включая FB, убер и др. в калифорнии и потом используя эти предложения от известных компаний я легко и быстро узнавал где находится потолок который мне могли бы предложить в других местах ;) и начинал обсуждать оффер после того как планка была передвинута к потолку! В такой ситуации уже много обсуждать не получается, но дополнительные stock options и signup bonus повысить еще немного можно.
Для поднятия планки вверх у меня помимо того что были counter-offers от FB еще и ставка была не маленькая в последних три месяца ($250/hr по контракту).
Добавлю вот еще что, не смотря на то что я был уволен на предыдущем месте, мне сказали что дадут хорошие рекомендации. По моему профессиональному опыту самое подходящее место для меня был бы whatsapp, я должен был бы работать над видео звонками у них (они это скоро будут вводить в строй) уже шел разговор о дате интервью и я расказал что меня уволили с удаленки пол года назад и расказал по какой причине, а причина просто ппц хуже не придумать. Причина была ошибочная конечно и я как есть все их HRу рассказал в подробностях вместо того чтоб сказать что все было ОК и воспользоваться обещанными хорошими рекомендациями. Так вот, после того как я это им честно расказал мне через пару дней прислали письмо с отказом продолжать процес интервью без каких либо причин. После такого опыта я просто удалил из своего резюме ту компанию чтоб больше таких вопросов ни у кого не возникало :)
Так вот, в тех компаниях где я прошел интервью стартовая база зарплаты была в районе 170-200К (без пяти центов). Я слетал раз пять в Сан Франциско, сделал несколько интервью в других компаниях и поднял базовую зарплату на 25% и stock options на 55%. По опыту одного моего знакомого который несколько лет назад перебрался в гугл зарплату там трудно повысить когда уже работаешь у них, они всем стандартно повышают оклад и все. Так вот, можно было бы несколько лет еще там пахать и заслужить +25%, либо потратить пару недель и начать сразу с +25%. По моему математика и выгода очевидна. Ну и не забывайте: когда соискатель уже прошел интервью и если попросить слишком много не значит что они все отменят :)
И кстати, в амазон я отменил onsite интервью (они не конкурентно способны по зарплатам), но они все же настаивают и в течении недели возможно полечу в Сиэтл.
Странно как-то, а чего такого можно в mp4 демуксере затолкать чтоб сломать парсер? Ведь там нужно каждое поле проверять на ошибки полюбому и все.
Ну и еще интересно было бы если линк на код в статью вставили чтоб можно было полюбоваться

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность