All streams
Search
Write a publication
Pull to refresh
95
0
allex @allex

User

Send message
Э-хе-хе… Было время, компьютер под себя собирали. А теперь галочки на сайте расставляем :)

Хорошая машинка. Удобно, когда по дому перемещаться можно.
Правил для PMD писать не приходилось, но общий принцип понятен. Самое главное — JavaCC практически ни при чем. Вы имеете дело с готовым деревом (AST), в котором надо найти узел, соответствующий вызову метода, проверить, что имя метода «prepareStatement» и в этом случае выполнить необходимую проверку типа параметра.
Судя по примеру
pmd.sourceforge.net/howtowritearule.html
Вызову метода соответствует PrimaryExpression с детьми PrimaryPrefix и PrimarySuffix. Объект и имя метода сидят в префиксе, а аргументы — в суффиксе.
Удобного описания дерева я что-то сходу не нашел (даже исходного *.jj в дистрибутиве не вижу), так что проще пользоваться предлагаемым дизайнером, который показывает дерево входного файла).
Если вопросы останутся — пишите ICQ 740187 или allex@all-x.net
Извините, что поломал :) Такой я читатель.
Проимпортировал, пробую зайти — показывает кота. Полдня уже. Кому жаловаться? Имя такое же.
Мы очень любим наших пользователей, но иногда возникают непервиденные обстоятельства…
Так это писалось не один год и не одним человеком :) Я ещё могу ответить на конкретные вопросы, но всё прокомментировать нереально.

Главное отличие lex/yacc от antlr — вид используемой грамматики. regexp/LR(1) (или точнее LALR(1), если я правильно помню) vs LL(k)/LL(k). Да, для сканеров на antlr используется та же грамматика, что и для парсеров. k — произвольный размер lookahead, причем в отдельных сложных местах его можно увеличивать задавая синтаксические предикаты (а еще есть семантические!). LL парсеры похожи на те, которые пишутся руками — рекурсивные. Сгенерированный код легко читать и отлаживаться по нему.

Disclaimer: моё плотное знакомство с antlr закончилось на 2й версии, 3я может отличаться.
Гораздо больше возможностей и удобства для программиста. В частности, поддерживается работа с деревом, которое является результатом разбора. Впрочем, я предпочитаю пользоваться своим инструментом TreeDL. Также есть поддержка кодогенерации.

Извините за некоторую резкость, «ревную» близкую мне тему :) Давайте лучше дополню статью примерами из реальной жизни. Вот наши фронтенды для расширений С и Java, написанные на JavaCC+TreeDL и Antlr/Java+TreeDL соответственно:
сканер+парсер расширенного С
дерево расширенного С
сканер Java
Неужели следующая статья будет про yacc? Настоятельно не рекомендую.
Вернее так — Вы определитесь, про какой подход рассказывать. Можно долго делать очень быстрый компилятор, а можно в разы быстрее сделать компилятор, который будет работать с приемлемой скоростью. Так вот lex/yacc для второго подхода использовать не советую — отлаживать замучаетесь. К тому же в больших языках всегда есть какие-нибудь исключительные ситуации, когда возможностей генератора сканеров/парсеров не хватает и приходится выкручиваться. В этой ситуации я тоже предпочту какой-нибудь antlr.

В общем, задача настолько хорошо изучена, что есть смысл рассказывать только про современные технологии её решения, которые охватывают все этапы разработки. И тестирование, кстати.
Конвертнуть в ascii art? :)
Передать на него куки, а в следующий раз запросить. Уж прям совсем 100% тут не надо.
В первоначальной формулировке дырка есть, я добавил уточнение, которое её закрывает. Других дырок не вижу.
Для успешного брутфорса надо много попыток беспрепятственного ввода логина/пароля. Того, что для каждого логина пароль можно ввести не более одного раза — недостаточно. Если есть много попыток, успехи будуть статистически. Конечно, взломают скорее тех, у кого пароли простые, но мы ведь и о них заботимся, верно?
Опечатка. Следует читать:
А для брутфорса в общем-то всё равно, один и тот же логин вводить или разные :)
Я в затруднении, в какой именно?
По-моему, собрать базу логинов для хабра труда не составляет. А для брутфорса в общем-то всё равно, один и тот же пароль вводить или разные :)
Можно и логины перебирать, не только пароли, чтобы логины не очень часто повторялись.
В чём проблема-то? Я ж не регистрируюсь заново, а ввожу пароль к своему аккаунту.
И прошу только одну попытку без капчи, для брутфорса это явно недостаточно.
Гениально, потому что просто :)
У меня такая серебристая была. Свистит, зараза :( Так и не смог ночью пользоваться без лампы.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity