Leonardo (эмуляция клавиатуры) + Macbook Air (блокированный)
- Войдите на сайт для отправки комментариев
Чт, 12/02/2015 - 18:06
Собрал устройство для подбора пароля взломанного мошенниками Macbook Air по этой статье
Все отлично заработало при проверке в блокноте на винде.
Включаю Мак с нажатой alt, появляется замочек с полем для ввода пароля. Для проверки, подключаю обычную клавиатуру - она работает. Подключаю свой эмулятор - тишина. Т.е. на индикаторе цифры появляются, но в поле ввода Мака ничего(((
Еще заметил: на винде arduino работает нормально, а при подключения к маку - работа замедляется в 2-3 раза (судя по индикации_.
Мой код
void ledDigitDisplay(float num, float time)
{
unsigned long ltime = millis();
// Настройки
// 6, 8, 9, 12 - GND
int pin[] = {
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; // Пины
int settingsSegments[] = {
pin[10], pin[6], pin[3], pin[1], pin[0], pin[9], pin[4], pin[2] }; // Порядок сегментов
int segments[] = {
0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111, 0b10000000, 0b01000000 }; // 1, 2, 3, 4, 5, 6, 7, 8, 9, '.', '-'
for(int i = 0; i < 12; ++i) pinMode(pin[i], OUTPUT); // Определяем пины как выход
int floatingPoint = 0, minus = 4;
if(num > -1000 && num < 0) // Разбираемся с отрицательными числами
{
minus--;
if(num > -100) minus--;
if(num > -10) minus--;
num = -num;
}
for(int i = 0; num < 1000 && minus == 4; ++i) // Разбираемся с дробными числами
{
if(int(num * 10) != int(num)*10)
{
floatingPoint++;
num *= 10;
}
else
break;
}
for(int i = 0, temp; millis() - ltime <= time * 1000; i++)
{
if(i == 4) i = 0;
temp = int(num / pow(10, i)) % 10; // Цифра которую передадим индикатору
if(num >= 10000 || num <= -10000 || minus == i) // Если минус или переполнение, передаем '-'
temp = 11;
if(i == 3 && (num >= 1000 || floatingPoint == i || minus == i)) pinMode(pin[11], OUTPUT);
else pinMode(pin[11], INPUT); // Работаем с 4 разрядом
if(i == 2 && (num >= 100 || floatingPoint == i || minus == i)) pinMode(pin[8], OUTPUT);
else pinMode(pin[8], INPUT); // Работаем с 3 разрядом
if(i == 1 && (num >= 10 || floatingPoint == i || minus == i)) pinMode(pin[7], OUTPUT);
else pinMode(pin[7], INPUT); // Работаем с 2 разрядом
if(i == 0) pinMode(pin[5], OUTPUT);
else pinMode(pin[5], INPUT); // Работаем с 1 разрядом
for(int j = 0; j < 8; j++) // Передаем число
if(segments[temp] & (1 << j))
digitalWrite(settingsSegments[j], HIGH);
if(floatingPoint && floatingPoint == i) // Передаем точку
digitalWrite(settingsSegments[7], HIGH);
delay(1); // Небольшая пауза, чтобы светодиоды разгорелись
for(int j = 0; j < 8; j++) digitalWrite(settingsSegments[j], LOW); // Выключаем все светодиоды
}
}
void setup()
{
Keyboard.begin();
}
void loop()
{
int j;
for(int j1 = 0; j1 < 10; j1++)
for(int j2 = 0; j2 < 10; j2++)
for(int j3 = 0; j3 < 10; j3++)
for(int j4 = 0; j4 < 10; j4++)
{
j=j1*1000+j2*100+j3*10+j4;
ledDigitDisplay(j, 1);
String s1 = String(j1, DEC);
String s2 = String(j2, DEC);
String s3 = String(j3, DEC);
String s4 = String(j4, DEC);
Keyboard.press(48+j1);
delay(100);
Keyboard.releaseAll();
delay(100);
Keyboard.press(48+j2);
delay(100);
Keyboard.releaseAll();
delay(100);
Keyboard.press(48+j3);
delay(100);
Keyboard.releaseAll();
delay(100);
Keyboard.press(48+j4);
delay(100);
Keyboard.releaseAll();
delay(100);
Keyboard.press(10);
delay(100);
Keyboard.releaseAll();
delay(100);
//delay(2000);
}
}
Подскажите пожалуйста, в какую сторону глядеть.
не пойму зачем ты что то переделываешь если уже дан рабочий код?
или ты просто этот же код запускаешь на леонардо?
Код выше - это найденные мной куски и переделанные под мои реалии. Этот код отлично работает в блокноте на винде. Но на Маке не работает (не работает именно в режиме ввода пароля)
а драйвер? в устройствах появилась клава?
Это невозможно проверить на маке на данном этапе
а начиная с этого момента статьи проверял?
возможно без драйверов просто не заработает. ардуины уно нет?
а начиная с этого момента статьи проверял?
возможно без драйверов просто не заработает. ардуины уно нет?
Все читал. Там делали через ардуино, которая стандартно не умеет эмулировать Клаву. Леонардо умеет это делать в родной прошивке.
да. но драйвера
Это как биос на винде. Не может быть драйверов.
Я так понимаю, что мак не видит Arduino в режиме загрузки. Это можно как то решить?
а биос видит?
Я так понимаю, что в маке нет биоса
да не мас а другой комп с виндой
Так, все это время я проверял arduino на компах, где были установлены драйвера ардуино. Подключил свою "печатную машинку" к компу с виндой, где нет никаких драйверов, и ничего не работает((( Ардуино не определилась как клава и ничего не печатает. светодиод tx тоже не мигает......
ну вот. делай как в статье
A в голову не приходило, что последние 15 лет ID клав и др. разные?
цитирую
специальную прошивку для микросхемы «ATMEL MEGA16U2»
подсказываю эти прошивки готовит сам http://atmel.com и 15 лет все остальные программеры подстариваются под них в своих BIOS&UEFI and etc...
В статье все уже в кучку сложено и как для детей разжевано. А почему вы выбрали не микропроцессора Кипарис или ПИК-и? Нет давайте Леонардо с его чудо 5 секундным переключением из двух режимов прошивания и HID-клавы. Подозреваю что MacbookAir даже не успевает послушать на его единственном порту была ли на порту клавка или нет.
Еще подсказываю
arduino mega или
arduino adk
arduino mega2560
такие-же ID имеют в прошивки эмуляции как и
arduino uno - классика
но я бы решал вопрос с 1800$ покупая только то что проверенно
то есть строго по статье ни шаг влево ни шаг вправо
развлекался прошивками когда-то http://arduino.ru/forum/apparatnye-voprosy/hid-device-i-windows-tolko-leonardo-micro-da-nu-ne-veryu
Автор, у меня точно такая же проблема, нашли решение?
тоже взял леонардо?
Купил UNO - и все проблемы решились! Сразу все заработало. Через 2 часа подбора пароль был найден!
Я вот тоже уже думаю купить уно и сделать под копирку как в статье, однако чертовски не хочется ж покупать при наличии леонардо. )
))) ну давай. дерзай
А какую уно ты купил, позволь узнать? ) Я купил R3 и не могу ввести ее в dfu режим. Может подскажешь?
надо на 16u2 + 328p, а китайцы в основном продают на ch340+328p
Врода она же:
https://yadi.sk/i/Te1VYtEliXBad
значит что то делаешь неправильно
ты в дфу ввел замыканием двух пинов?