Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как написать переборщик кода?  (Прочитано 13294 раз)
0 Пользователей и 1 Гость смотрят эту тему.
nnaf
Гость
« : 12-09-2010 15:00 » 

Здравствуйте. Не пинайте сильно ногами если вопрос будет некоректным. Так как С проходил только в универе. Работаю с программируемыми контроллерами разных производителей и часто возникает такая проблема. Заказчик просит что то дописать или поправить в программе или просто станок заглючит. Есть программа конфигуратор для контроллера, есть кабель для подключения к компу (обычно USB, RS232, RS485 и тд.), а проект запоролен. Пытаешся подключиться а он просит ввести пароль. Обычно это окошко в которое нужно с клавиатуры компа набрать от 4 до 8 символов. При правильной комбинации, программа позволяет работать с контроллером (скачивать, редактировать программу уже в контроллере). Вопрос следующий как написать программу переборщик кода, чтобы она вводила например 4 символа в это окошко (причем каждый раз разные программы и разные контроллеры) и нажимала Enter, потом следующую комбинацию и так далее. Пока не найдет нужную. Причем очень часто не важно останавливать переборщик, если был введен правильный код. Так как окно ввода пароля закрывается и программа дает доступ к контроллеру.
Записан
nnaf
Гость
« Ответ #1 : 12-09-2010 15:28 » 

Уточню немного свой вопрос. Как сам переборщик написать у меня проблемы нет. А вот как чтобы одна программа вводила символ в окошко другой нажимала Enter. И чтобы эти две программы работали одновременно и друг другу не мешали.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 12-09-2010 17:19 » 

Какая операционная система, где работает программа с окошечком?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Гость
« Ответ #3 : 12-09-2010 18:08 » 

8 символов современный комп средней мощности будет как минимум месяц перебирать в круглосуточном режиме. Имхо, быстрее найти проверку введенного кода в программе и запатчить ее.
Записан
nnaf
Гость
« Ответ #4 : 12-09-2010 21:55 » 

Операционка обычная ХРю. Код в программе найти не удастся, так как сама программа, несколько килобайт в машинных кодах крутится в контроллере. А вход в контроллер прикрывает пароль с окошком. И когда в окно вводится набор символов то проверка валидности происходит не в РС, а в контроллере. В том то вся и проблемма. В свое время многие из таких контроллеров вскрывали считывая программатором дамп с микросхемы памяти контроллера. Снимали дамп с чистого контроллера, потом ставили код и снова снимали дамп. И смотрели по каким адресам и какой алгоритм кодирования пароля применяется. И после этого уже снимали дамп с запароленного контроллера ну а дальше и так все ясно. У этого метода огромный минус. Требуется иметь чистый свободный контроллер, а это не всегда возможно. Так как некоторые контроллеры стоят как десяток хороших ноутбуков. И чем дальше тем сильнее шифруются производители контроллеров. Тем более в последнее время в страну хлынула волна китайских станков с контроллерами собственного разлива. И похоже в каждой китайской деревне выпускают свой контроллер. А так как я плохо понимаю как распределяются приоритеты между программами в Windows у меня и возник вопрос "... как чтобы одна программа вводила символ в окошко другой и нажимала Enter. И чтобы эти две программы работали одновременно и друг другу не мешали. " Возможно ли это?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 12-09-2010 22:10 » 

nnaf, Почему нельзя напрямую с контролером обшаться? И второе, как правило ставят также и зашиту от брутфорса. 3 раза сказал неправильно, на час запирается.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
x128
Интересующийся

ru
Offline Offline

« Ответ #6 : 13-09-2010 06:07 » 

Операционка обычная ХРю. Код в программе найти не удастся, так как сама программа, несколько килобайт в машинных кодах крутится в контроллере. А вход в контроллер прикрывает пароль с окошком. И когда в окно вводится набор символов то проверка валидности происходит не в РС, а в контроллере. В том то вся и проблемма. В свое время многие из таких контроллеров вскрывали считывая программатором дамп с микросхемы памяти контроллера. Снимали дамп с чистого контроллера, потом ставили код и снова снимали дамп. И смотрели по каким адресам и какой алгоритм кодирования пароля применяется. И после этого уже снимали дамп с запароленного контроллера ну а дальше и так все ясно. У этого метода огромный минус. Требуется иметь чистый свободный контроллер, а это не всегда возможно. Так как некоторые контроллеры стоят как десяток хороших ноутбуков. И чем дальше тем сильнее шифруются производители контроллеров. Тем более в последнее время в страну хлынула волна китайских станков с контроллерами собственного разлива. И похоже в каждой китайской деревне выпускают свой контроллер. А так как я плохо понимаю как распределяются приоритеты между программами в Windows у меня и возник вопрос "... как чтобы одна программа вводила символ в окошко другой и нажимала Enter. И чтобы эти две программы работали одновременно и друг другу не мешали. " Возможно ли это?

Может на схеме с контролёром перемычка есть для сброса? Улыбаюсь
Записан
zubr
Гость
« Ответ #7 : 13-09-2010 07:26 » 

Цитата
А так как я плохо понимаю как распределяются приоритеты между программами в Windows у меня и возник вопрос "... как чтобы одна программа вводила символ в окошко другой и нажимала Enter. И чтобы эти две программы работали одновременно и друг другу не мешали. " Возможно ли это?
Криво это, но возможно. Смотри в сторону Windows Management->Windowing: функции FindWindow, FindWindowEx, GetWindowText, SetWindowText, WM_GETTEXT, WM_SETTEXT.
Записан
sss
Специалист

ru
Offline Offline

« Ответ #8 : 13-09-2010 08:18 » 

nnaf, не понятно почему бы не писать код прямо в контроллер, пока не проглотит...
Записан

while (8==8)
nnaf
Гость
« Ответ #9 : 14-09-2010 09:29 » 

nnaf, Почему нельзя напрямую с контролером обшаться? И второе, как правило ставят также и зашиту от брутфорса. 3 раза сказал неправильно, на час запирается.

nnaf, не понятно почему бы не писать код прямо в контроллер, пока не проглотит...

Я возможно сразу немного не правильно обрисовал задачу. Работаю с програмируемыми контроллерами (PLC), а не с микроконтроллерами. Поэтому напрямую связаться с контроллером подчас не возможно, только посредством специального, фирменного кабеля и протокол связи не всегда открытый и известный. В этом и есть сложности. Кстати у контроллеров действительно бывают разные защиты от брутфорса. Например у Siemens Logo после трех неправильных попыток ввода кода, код стирается но вместе с программой и получаешь пустой девственно чистый девайс и бежишь срочно самостоятельно писать программу пока заказчик не казнил за простой оборудования. Но в большинстве случаев контроллеры всеже позволяют атаку брутфорса. Вот для этих контроллеров я пытаюсь что то придумать.


Может на схеме с контролёром перемычка есть для сброса? Улыбаюсь

Задача не сбросить программу в контроллере, а получить к ней доступ для редактирования.
Записан
sss
Специалист

ru
Offline Offline

« Ответ #10 : 15-09-2010 03:48 » 

nnaf, инжектировать в процесс свой поток и вызывать метод в котором происходит подстановка кода... Не понятен Ваш уровень как программиста..
Записан

while (8==8)
nnaf
Гость
« Ответ #11 : 15-09-2010 09:50 » new

nnaf, Не понятен Ваш уровень как программиста..
Я не программист в обычном понимании. Работаю в области промышленной автоматизации (ремонт обслуживание промышленной электроники). Периодически приходится писать проекты с нуля или редактировать уже существующие. Языки програмирования LAD (контактный план) или STL (очень похож на Ассемблер) или вовсе специализированные. В универе были С и Ассемблер. Вроде получалось неплохо. Правда к стандартному программированию после универа больше не возвращался.

Да вот еще добавлю, так для понимания. Программа в контроллере (не во всех, но все же в большинстве) находится в виде исходника, поэтому и возможно редактирование проекта, причем некоторые контроллеры позволяют вносить изменения в программу прямо на работающем станке в режиме реального времени. Не как файлы ехе или сом в обычном программировании.
« Последнее редактирование: 16-09-2010 04:42 от nnaf » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines