Pull to refresh
3
0
Send message
Это всё полная туфта. Когда тебя взломают, ты вспомнишь, что я тебе говорил.
И я не вижу атаки, при которой можно подменить бинарь на сайте.

Потому что ты не знаешь нихрена, и вас таких тут большинство.
Для критично важных приложений должны быть не md5 или другие чексуммы, а gpg-подписи (криптостойкие).

Ну, засунули тебе gpg-подпись, дальше что? Как ты читаешь gpg-попись? У тебя даже приём этой gpg-подписи никак не контролируется. Ты даже с уверенностью сказать не можешь, что тебе пришла по https та gpg-подпись, которую ты на сайте запрашивал. Почему? Потому что ты их не сравниваешь.
Пароль нет смысла подбирать, потому что его поменяют. Ты подбирал их две недели, а их поменяли за один день — и ты просто идёшь лесом со всей проделанной работой двухнедельной. Если бы ты этим занимался когда-нибудь, ты бы через это прошёл один раз и больше бы никогда не подбирал бы ничего.

В данном случае сразу две проблемы — нарушение принципа Керкго́ффса

Теоретик виден сразу.
Он === KeePass, и он постоянно следит за своей базой — при открытии, при закрытии и т.д.

Я имею в виду, что это всё можно изобразить. А то, что CRC там проверяешь, это тоже легко ломается. Типа «дорогой пользователь, у нас вышла новая версия KeePass, приглашаем вас её скачать», ты такой «ой, что-то я ссылку не помню на сайт их, а открою-ка я вот эту» — и всё, и пошёл ты и скачал то, что тебе зарядили. Там даже тебе повесят md5 на «сайте», чтобы ты проверил, что всё правильно и CRC себе новую сделал, но уже сам (об этом даже знать не надо, вот в чём фишка-то).
Если целевая атака и предварительно уже разведано, что там внутри, то, конечно, никакого запуска эксплоита тупого не произойдёт. А то, что оно разведывается сначала, — это 100%. По случайным взломам, когда кто-то просто сканирует сеть на поиск любой жертвы, можно вообще минимально защищаться, так как вероятность проникновения довольно мала. В современном мире ты уже получаешь дистрибутив системы с настроенной минимальной защитой и даже не узнаёшь об этом. Это раньше было всё открыто, но сейчас есть талмуды по дырам, автоматическое ПО для тестирования на дыры и прочие фишки. Не так просто сейчас проникнуть в свежую систему, поставленную неспециалистом.
Шифрация в него прямо и встроена. Кроме того он постоянно проверяет консистентность базы.
Не верите — посмотрите исходники — они лежат в открытом доступе.

Речь о том, что никто не проверяет, что там куда сохраняется. Есть файл — значит, всё нормально. Он говорит «я вот в KeePass сохраню всё и оно будет защищено», а ты думаешь он проверяет целостность постоянно? Нет, он один раз при скачивании проверил (и то, если понимает), а потом на автомате по окну делает вывод, что перед ним всё та же проверенная программа (и то, если он проверял вообще). Любые известные программы (массовые), они все под прицелом.
Я долго думал, как сделать у себя, в итоге пришёл к выводу, что надо комбинировать и то и это. А пароли не в программе хранятся, а в голове. Просто их надо помнить и для усложнения просто транслировать в сложную последовательность через какой-нибудь алгоритм (секретный), по которому в случае компрометации не поймёшь, как он составлен. Но, как известно, пароли сейчас не являются самым слабым звеном, потому что они легко тырятся, какие бы сложные они ни были, через сторонние дыры. Поэтому важно, чтобы при их получении в количестве десяти штук нельзя было понять, как они получены, иначе тогда откроются все неизвестные пароли сразу. Да и пароли уже не крадут, а крадут сразу данные, используемые для аутентификации, для получения которых и используются пароли. Так что вот эти все вещи типа брутфорса и прочая фигня уже давно устарели и считаются непрофессиональными.
Такую базу паролей можно вести с помощью бесплатной утилиты KeePass. Сама база паролей конечно же шифруется, но для дополнительной защиты можно ее записать на надежный внешний носитель и работать с данными только на нем.

Во-во, вот на эту KeePass и надо проводить атаку, dll-шку подменить, чтобы она шифровать перестала, а пользователь будет думать, что он защищён. Активности никакой, просто база вся в открытом виде лежит.

А ещё на Excel, который помогает ему вычислять планы рисков и гипотезы, — самое то для прослушки. Или просто ради прикола программка типа Punto Switcher будет вносить изменения в эти планы.
Так она разместила, типа никто не будет читать, как она сама. Я думаю, надо вас отправить на Марс на космическом корабле, а прошивку его автопилота поручить ей написать. Думаю, тогда мы больше никогда не увидимся. А после этого уже можно дать ей новое задание, но уже в фартучке, и там, где надо.
Во-первых, стандарт допускает implementation-defined сигнатуру main (С99 5.1.2.2.1), у конкретных компиляторов может быть и void, шовинист вы наш.

void main — это неправильно, и она написала неправильно. Поэтому борщ, только борщ.

шовинист вы наш

У тебя просто глюки, речь идёт конкретно о ней, тогда как шовинизм — это генерализованное отношение ко всем.

Во-вторых, докапываться до кода на КДПВ (на левой картинке из интернета

Левая картинка виновата в её некомпетентности. Мы поняли твою позицию. Ты будешь всё что угодно отмазывать, лишь бы она обратила на тебя внимание. Для тебя неважно программирование, ты можешь просто допустить неправильный код, исходя только из личной заинтересованности в чём-то. Поэтому я даже могу угадать, какой у тебя код.
Там на картинке
void main() {

а должно там быть
int main(void) {

Так что борщ, только борщ. С картошечкой.
В mail.ru, конечно, у тебя будет сногсшибательная карьера, потому что там уже давно всё само работает. Я-то помню, когда оно только появилось со своим слоном и двухмеговым ящиком (когда у всех ящики были на пять мегов), но русскоязычных сервисов не было, на этом оно и выросло — типа сервис для тех, у кого с английским проблемы.
Понятный код хотя бы можно понять. А вот копипаст с неправильным выравниванием («умные» однострочники) даже понять невозможно, да и смысл? понимать то, что тебе не нужно, чтобы понять то, что тебе нужно — сложно замотивироваться на такое, особенно когда есть, чем заняться, более интересным и полезным.
Там пример про лису как раз это и делает — вычисляет корень на месте.
он её позволяет прогнать до нужного момента и пошагать

Отладчик шагает по чему? Правильно, по коду (по строкам или по вызовам функций). Если там мегабайт кода, который тебе не нужен вообще (даже если он хорошо написан, что обычно не так), то это хороший способ пройти к нужному участку КОДА. Ты просто физически его не прочитаешь, не говоря уже о том, что писал его какой-то тяп-ляп копипастер лишь бы работало.
Есть код, который просто нет времени читать. Недавно хотел отредактировать плагин к Firefox'у (исправить ошибку), так когда распаковал, там такой быдлокодище. И как в нём искать этот единственный фрагмент, который мне нужен? Вот для этого и нужен дебаггер — чтобы в него загрузить всё по-быстрому и пройти до нужного куска.
Но обратите внимание, что он избыточный. Если первый символ не является черточкой '-', то не важно, что это за символ. Всё равно, терминальный там ноль или любой другой символ. Поэтому мы можем упросить код следующим образом:

Не надо его так упрощать. Проверяются разные условия для выхода, и сливание двух разных условий в одно — плохая привычка. Где это вылезет? Когда захочешь убрать чёрточку, потому что так надо, то забудешь вернуть обратно проверку на пустую строку, потому что нигде не видно, что она там вложена. А если это будешь делать вообще не ты, то тем более.

Явный код лучше подразумеваемого.
Я ходил на PyPI, вот твоя ссылка https://pypi.python.org/pypi/f и там Python 2.7 выставлен. Не можешь заполнить информацию о пакете правильно? А зачем выкатил тогда?
Я работал в компаниях, чей бизнес крутится исключительно на втором питоне.

Да всем пофиг, где ты там работал. Тебе говорят про питон вообще. Ну, сдохнет твоя библиотека вместе со вторым питоном. Да она даже не оживёт, нечему подыхать будет.

я этого не предлагал, где вы увидели?

Ты занял имя, вместо того чтобы сделать, как все делают — уникальное имя, а дальше, кому надо, тот сократит до f.

линтеры pylint и flake8 гибко настраиваются.

Не, глупая идея. Предлагаешь из-за одного твоего модуля перенастраивать их и коснуться из-за этого всего остального. С какой стати? В том-то и дело, что ты выбрал имя неправильно.
Предлагаешь делать каждый раз
import f as fun


Примеры накладок
def f(x):
    return x * x + 1

f = open('lalala')
f.close()


Да и python-pylint реагирует на такие имена, говорит «нужно прорефакторить имя, слишком короткое».

Написал бы программу чисто на ФП, чтобы можно было посмотреть на читаемость (на соответствие Zen'у).

И да, ещё напишу: мы уже похоронили второй питон. Так что смотреть на этот дурацкий raw_input() в примерах, который вообще появился известно, по какой причине, было не очень комфортно.
Одно только не понял: что ты написал в итоге и на чём?
Я пользуюсь своими программами каждый день на протяжении лет. Дорабатываю их точно так же, периодически выделяя по несколько недель, чтобы не отвлекать мозги.
И мой путь был C -> Python -> Asm с самого начала, исходя только из практических задач. На рынок и рейтинг TIOBE мне абсолютно наплевать. Для меня важно взять хороший инструмент и сделать с его помощью то, что надо для работы.

Почему мне нравится C — потому что на нём очень коротко можно записать.
Почему мне нравится Python — потому что на нём очень быстро можно записать.
Asm — инструмент для ковыряния в уже готовых программах (когда нужно вклинить своё что-то).

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity