Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
cjey

cjey

  • 35
    вклад
  • 0
    вопросов
  • 75
    ответов
  • 20%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • В каком виде хранится PIN-код SIM-карты?

    cjey
    cjey @cjey
    Нельзя

    В очень приближенной модели можно рассматирвать сим-карту как отдельный компьютер с фиксированным набором возможных действий.
    Одно из действий пройти авторизацию.
    В алгоритме проверки пин кода после трех неправильных попыток ключ хранящийся внутри катры стирается и ни один из возможных входящих пин кодов больше не подходит.

    Чтобы взломать такую систему есть два пути:

    1) Найти ошибку в алгоритме проверки. Возможные вектора атаки: используя набор доступных методов, их комбинации, либо вызовов методов в неправильными входными данными, либо не завершая посделовательность действий заставить карту (компьютер) работать неправильно. Требует огромных заний во внутреннем устройсте сим карт, алгоритме проверок и т.д. Знания можно получить либо из секретной внутренней документации либо путем реверс инджинеринга внутреннего устройства. Если алгоритм реализован правильно - этот путь взлома не даст результата

    2) Физическая атака на сим карту. Грубо говоря разобрать компьютер и прочитать данные в обход стандартных методов. В данном случае неважно что будет прочитано хеш или сам пароль. Если есть физический доступ в память можно восстанавливать состояние памяти после каждой проверки пин кода и тогда алгоритм будет думать что это каждый раз первая попытка ввода. Но это безумно сложный и дорогой путь для влома. Грубо говоря потребуется
    сканирующий туннельный микроскоп для взаимодействия

    В общем случае реальные шансы взломать ничтожно малы, а сам взлом безумно дорог.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Сложно ли сделать свой гибридный компилятор?

    cjey
    cjey @cjey
    Сложно )

    Начните с реализации интерпретатора. Возьмите самый простой из языков, например лого или кукарачу, не знаю что нынче в школе преподают.
    Напишите лексический, синтаксический и семантические анализаторы.
    Когда заработает попробуйте добавить языковых конструкций: новые операции, функции и т.д.

    Я думаю полгода - год у вас на это уйдет.

    Потом возьмите какой-нибудь простой знакомый язык, basic / подмножество Java. Напишите интерпретатор.
    Потом переделаете интерпретатор в генератор промежуточного кода.
    Потом сделаете компилятор промежуточного кода под одну конкретную платформу.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Как просмотреть обработанный sql код после внесения параметров на C#?

    cjey
    cjey @cjey
    SQL Profiler
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • ПО для финансового планирования небольшой организации?

    cjey
    cjey @cjey
    fingrad.com
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как расшарить usb порт через интернет (3 вопроса)?

    cjey
    cjey @cjey
    https://www.google.ru/search?q=usb+other+ethernet

    Но не взлетит. 3 840 * 2 180 * 24 кадра / с * 3 байта = 574,80 МБ/с
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Где найти примеры очень сложных работ на Javascript/React/Angular/Vue?

    cjey
    cjey @cjey
    https://pyrus.com

    Можно посмотреть на редакторы шаблона и маршрутизации в настройках форм.
    fe14cc9051ae49d5a192197c844d8442.pnge4f0a6c2638143feab4f6aca779680cc.png
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • ReactJS - медленный рендеринг смонтированного компонента -?

    cjey
    cjey @cjey
    Мой опыт разработки фроненда всего месяц, так что возможно сморожу глупость.
    Рискну предположить что тормозит не отрисовка как таковая, а вычисление изменений между VirtualDOM и DOM для внесения изменений.
    Мне кажется можно поиграться с параметром key у компонентов карточки, чтобы в одном случае он был постоянным между отрисовками, а во втором случае уникальным, чтобы он считал, что все изменилось и просто выкинул все дерево и добавил новое и сравнить результаты.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как передать данные из консоли?

    cjey
    cjey @cjey
    Какой Web Shell выбрать?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Где купить радиоконструктор fm-жучок?

    cjey
    cjey @cjey
    Осторожнее с таможней. Были случаи, когда за часы со скрытой камерой или ручку с микрофоном заказанные в Китае, люди получали большие проблемы с законом.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Существует ли алгоритм поиска кратчайшего пути в графе с указанием нескольких точек?

    cjey
    cjey @cjey
    С вашими ограничениями подойдет решение полным перебором.

    Сначала алгоритмом Флойда ищем все кратчайшие расстояния между выбранными вершинами.

    Потом перебираем все последовательности обхода и считаем минимум. Таких последовательность будет 10! = 3,6 * 10^6 даже на самом простом компьютере должно перебираться не более секунды.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Можете объяснить зачем в параметрах this у функции?

    cjey
    cjey @cjey
    Пусть есть массив Product[] products;
    Если вы объявляете просто функцию(без this), то для её вызова вам бы пришлось написать:
    MyExtensionMethods.TotalPrices(products);

    Если вы объявлете метод расширения (с this), тогда вы можете писать так:
    products.TotalPrices();
    Особенно удобно использовать с LINQ
    decimal stuffPrice = products.Where(x => x.Price < 100).TotalPrices();

    За подробностями в google
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как динамически создать новые кнопки?

    cjey
    cjey @cjey
    private static int n = 0;
    
            private void button1_Click(object sender, EventArgs e)
            {
                var newButton = new Button()
                {
                    Name = "btn" + n,
                    Text = n.ToString(),
                    Location = new Point(10, 10 + n*30),
                    Size = new Size(50, 25),
                    TabIndex = 100 + n,
                };
                n++;
                this.Controls.Add(newButton);
            }


    Созданные кнопки можно хранить в статическом массиве. Для удаление используйте this.Controls.Remove(obj);
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как сделать ввод даных через консоль?

    cjey
    cjey @cjey
    Ввод четырех чисел через пробел
    var s = Console.ReadLine();
                var arr = s.Split(' ');
    
                if (arr.Length == 4)
                {
                    var a1 = Convert.ToDouble(arr[0]);
                    var a2 = Convert.ToDouble(arr[1]);
                    var a3 = Convert.ToDouble(arr[2]);
                    var a4 = Convert.ToDouble(arr[3]);
    
                    Console.Write("{0} {1} {2} {3}", a1, a2, a3, a4);
    
                    Console.ReadKey();
                }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • C# или ActionScript?

    cjey
    cjey @cjey
    Оцените стоимость и скорость разработки. Если на ActionScript нужно 3 человека на проект и 3 месяца, а для C# на тот же проект 2 человека и 2 месяца, то выгода очевидна. А если ActionScript использовать для несвойственных задач, то скорость разработки будет небольшой.

    В качестве аргумента попробуйте сравнить сложность поиска новых специалистов для ActionScript и C#. Кол-во соискателей, средняя зарплата, и т.д. В том числе тенденцию через 3, 5 лет когда нужно будет поддерживать сегодняшние проекты.

    Упирайте на финансовую выгоду, это будет интересовать начальство в 100500 раз больше технических деталей :)
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как решить проблему с ListBox в C#?

    cjey
    cjey @cjey
    Чтобы обработать события отрисовки windows в длинном цикле используйте Application.DoEvents().

    for (int i = 0; i < 100; i++)
    {
                    listBox1.Items.Add(i);
                    Application.DoEvents();
                    System.Threading.Thread.Sleep(1000);
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как изменить имя выбранного элемента в ListBox?

    cjey
    cjey @cjey
    private void button1_Click(object sender, EventArgs e)
    {
        listBox1.Items[0] = ((String)listBox1.Items[0]).Replace('e','!') + "_Clicked";
    }
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как восстановить от форматированый жёсткий диск?

    cjey
    cjey @cjey
    Большинство данных можно восстановить. Самое главное - ничего на этот диск не записывать.

    Вам нужен отдельный компьютер, или отдельную операционную систему на другом жестком диске.
    Подключаете к этому компьютеру свой очищенный диск (желательно в режиме только для чтения) и запускаете утилиту восстановления. Файлы обязательно восстанавливать на другой (не ваш) диск.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Проекты на С#?

    cjey
    cjey @cjey
    https://www.google.ru/?q=c%23+sql+site:github.com#...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Играю в Дота1(WarCraft3) через wine на Linux, и обновил драйвера для видеокарты Nvidia(331). Как узнать сколько fps выдает моя игра?

    cjey
    cjey @cjey
    в чате /fps ???
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Примеры классов в программировании?

    cjey
    cjey @cjey
    Классы нужны для реализации объектно ориентированного подхода в программировании.
    Поэтому правильнее сравнивать ООП и Процедурное или модульное программирование.
    У всех подходов есть свои плюсы и минусы, где-то удобнее один подход, где-то другой.

    В вкратце плюсы ООП:
    * Инкапсуляция. Проверка прав доступа данных на уровне языка. Нельзя случайно испортить чужую переменную. Объединение данных и методов работы с данными в одну сущность.
    * Абстракция. Можно работать с объектами как с черным ящиком, не задумываясь как оно устроено внутри.
    * Наследование. Можно породить сущность на основе уже существующей, немного ее изменив. Нет необходимости полного описания новой сущности, достаточно описать только различия.
    * Полиморфизм. Можно работать с группой разных сущностный через общий интерфейс.
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • russeljo
    • 19 ответов
    • 0 вопросов
  • Drno
    • 11 ответов
    • 1 вопрос
  • rPman
    • 9 ответов
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 8 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 8 ответов
    • 0 вопросов
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации