Суббота, 23.11.2024, 05:46
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: vikctc  
v120d02s v2
RW9UAOДата: Четверг, 24.01.2013, 21:58 | Сообщение # 31
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
а еще по хорошему надо грохнуть папку с примерами в библиотеке libopencm3. это в ней глюк.
 
RW9UAOДата: Пятница, 01.02.2013, 16:58 | Сообщение # 32
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
блеаааать, я походу подобрал метод как вскрывать зашифрованные прошивки для валкеровских поделок. например, обновление прошивки для моей вальки. там все настолько просто.....
 
vikctcДата: Пятница, 01.02.2013, 17:31 | Сообщение # 33
Генерал
Группа: Модераторы
Сообщений: 1745
Репутация: 1
Статус: Offline
К спектруму привязать можно?

 
RW9UAOДата: Пятница, 01.02.2013, 18:30 | Сообщение # 34
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
Цитата (vikctc)
К спектруму привязать можно?
пока нет =)
 
RW9UAOДата: Пятница, 01.02.2013, 19:13 | Сообщение # 35
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
итак. хочется для какой-нибудь поделки сделать модификацию, например, написать свой софт для мелкого квадрика, добавить привязку к спектруму. но существует шанс свой софт не дописать, а родной угробить. валкера выкладывает прошивки для некоторых своих поделок. например, для моей "new v120d02s" есть обновление прошивки. но они зашифрованы. а bootloader мы уже потерли своими экспериментами и не можем прошить зашифрованный бинарник. решил я на досуге посмотреть чего можно сделать.
смотрим в шифрованный бинарник, в начале файла много повторяющихся байт. это JMP table. значит файл зашифрован слабо.
внутри стоит хмега32а4, собираем компилятором winAVR любой код под этот процессор. в начале бинарника идет таблица JMP для прерываний. т.е. если примем байт в УАРТ, то процессор сделает переход по этой таблице.
первые байты представляют из себя jmp _reset_vector, который ведет в код начальной инициализации. остальные, если вектор не используется, то по идее тоже на вектор сброса. смотрим код и рядом дизасм его:
Код
00: 0C 94 BC 00 jmp 0x00BC
02: 0C 94 DD 00 jmp 0x00DD

теперь смотрим в шифрованный бинарь, видны повторяющиеся строки в jmp table. предположим, что используется обычный оператор XOR, получим начальные байты ключа. т.к. первые байты команды будут гарантировано 0C 94. адреса пока оставим как есть. наполняем табличку которой будем построчно XOR файл.
Код
XOR[16]={0x89, 0xc7, 0, 0, 0xdf, 0x65, 0, 0, 0xb7, 0xca, 0, 0, 0x70, 0x33, 0, 0};

дизассемблируем полурасшифрованный бинарник. таблица переходов расшифровалась, но адреса пока в виде мусора и часть команд в виде мусора. значит идея работает. надо получить остаток ключа.
смотрим в код сгенереный компилятором. точнее в точку куда ведет jmp reset_vector
Код
+000000BC:   2411        CLR       R1             Clear Register
+000000BD:   BE1F        OUT       0x3F,R1        Out to I/O location
+000000BE:   EFCF        SER       R28            Set Register
+000000BF:   E2DF        LDI       R29,0x2F       Load immediate
+000000C0:   BFDE        OUT       0x3E,R29       Out to I/O location
+000000C1:   BFCD        OUT       0x3D,R28       Out to I/O location
+000000C2:   BE18        OUT       0x38,R1        Out to I/O location
+000000C3:   BE19        OUT       0x39,R1        Out to I/O location
+000000C4:   BE1A        OUT       0x3A,R1        Out to I/O location
+000000C5:   BE1B        OUT       0x3B,R1        Out to I/O location
+000000C6:   E211        LDI       R17,0x21       Load immediate
+000000C7:   E0A0        LDI       R26,0x00       Load immediate
+000000C8:   E2B0        LDI       R27,0x20       Load immediate
+000000C9:   E2E0        LDI       R30,0x20       Load immediate
+000000CA:   E0FF        LDI       R31,0x0F       Load immediate

опа, среди мусора нашлись похожие команды, ведь кроме части таблицы расшифровалась и часть кода. и даже команда CLR R1 видна. записываем адрес этой команды 0x00E4.
теперь поищем куда ведет переход с неиспользуемого прерывания. у нас это адрес 0x00DD
Код
+000000D6:   3EAD        CPI       R26,0xED       Compare with immediate
+000000D7:   07B1        CPC       R27,R17        Compare with carry
+000000D8:   F7E1        BRNE      PC-0x03        Branch if not equal
+000000D9:   940E018B    CALL      0x0000018B     Call subroutine
+000000DB:   940C078E    JMP       0x0000078E     Jump
+000000DD:   940C0000    JMP       0x00000000     Jump
+000000DF:   94F8        CLI                      Global Interrupt Disable
+000000E0:   E8E1        LDI       R30,0x81       Load immediate

в мусорном коде находим последовательность байт 94 через нужное нам расстояние, это очень похоже на то, что надо. и даже видим 00 00, это адрес куда будет совершен переход. записываем адрес этой команды, 0x0105.
дописываем адреса
Код
00: 0C 94 E4 00 jmp 0x00E4
02: 0C 94 05 01 jmp 0x0105
04: 0C 94 05 01 jmp 0x0105
06: 0C 94 05 01 jmp 0x0105
08: 0C 94 05 01 jmp 0x0105

и так всю строку до конца. получаем оставшиеся ключи
Код
unsigned char XOR[16]={0x89, 0xc7, 0x26, 0xb4, 0xdf, 0x65, 0x26, 0xa1, 0xb7, 0xca, 0x5f, 0x0c, 0x70, 0x33, 0xb9, 0xba};

обрабатываем зашифрованный файл и суем его в дизассемблер.
ага. таблица переходов расшифровалась, код куда ведут эти jmp тоже похож на скомпилированный. проверяем куда ведут jmp векторов прерываний, убеждаемся, что в начале этих процедур стоит много push register, а в конце pop register и IRET.
вуаля.


Сообщение отредактировал RW9UAO - Пятница, 01.02.2013, 19:41
 
RW9UAOДата: Пятница, 01.02.2013, 19:44 | Сообщение # 36
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
опять же, опыт и везение. не так много компиляторов с поддержкой xmega, а бесплатных всего 1 =)
метод проверен еще на паре валкеровских прошивок. работает.
IDApro 6.1 бинарник прожевал, но он не знает хмегу. прийдется таблицу переходов и адреса векторов руками поправить.


Сообщение отредактировал RW9UAO - Пятница, 01.02.2013, 20:13
 
LeoДата: Пятница, 15.02.2013, 09:18 | Сообщение # 37
Генерал
Группа: Проверенные
Сообщений: 2012
Репутация: 1
Статус: Offline
Гля, что продають, красава просто.



С уважением, Захаров Л.С.
 
RW9UAOДата: Пятница, 15.02.2013, 09:51 | Сообщение # 38
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
ога. только дево 7 - унылый совсем передатчик. альтернативная прошивка на него не делается.
 
KuznetsДата: Пятница, 15.02.2013, 10:23 | Сообщение # 39
Генерал
Группа: Модераторы
Сообщений: 2136
Репутация: 2
Статус: Offline
Серег, у тебя ведь почти такой? 
Расскажи, как оно в плане надежности, шестерни держатся?


я не флужу, я реализую свой анлим. ;)
 
RW9UAOДата: Пятница, 15.02.2013, 10:33 | Сообщение # 40
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
что значит почти. совсем такой. валька она и в африке валька. нормальный верт. Витя не даст соврать, я при нем с 7ми метров падал.
я правда и не летал особо. на коптерХ мозгах немного полетал, глюки достали, а к родным мозгам передатчик только едет.
запчасти на него на бангуде есть по нормальным ценам, но там с доставкой проблемы, месяца по два посылка идет.
 
LeoДата: Пятница, 15.02.2013, 11:03 | Сообщение # 41
Генерал
Группа: Проверенные
Сообщений: 2012
Репутация: 1
Статус: Offline
Ну ладно, тогда так 
без передатчика
передатчик с приемышем и кейсом и доставкой
побюджетнее передатчик
или вотИли побольше вертолет?


С уважением, Захаров Л.С.
 
RW9UAOДата: Пятница, 15.02.2013, 11:16 | Сообщение # 42
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
от себя советую брать devo8S, она точно телеметрийная. и поддерживается альтернативной прошивкой, после которой получите дсм2/дсмХ.
вот 8ка http://www.oomodel.com/walkera....38.html
вот 6-ка http://www.oomodel.com/walkera....73.html особо разницы не заметите по идее
если не смущают меньшие размеры передатчика, чем привычная аппаратура, то вот http://www.oomodel.com/walkera....73.html еще проще. к ней в "девиации" добавили еще пару тумблеров.
просто погуглите модель вертолета, может еще где-то распродажи остались. на бангуде дорого. на али надо отзывы смотреть.
чемодан - по моему баловство.
валкеру вообще надо брать ртф, сильно дешевле, там с цены передатчика снимают долларов 100 легко.
в дево 10 - _НЕТ_ не было и не будет телеметрии. продаван врет. если только там не установлен ВЧ модуль от 8S и не прошита допиленная девиация
http://www.deviationtx.com/


Сообщение отредактировал RW9UAO - Пятница, 15.02.2013, 11:19
 
RW9UAOДата: Пятница, 15.02.2013, 11:21 | Сообщение # 43
Генерал
Группа: Проверенные
Сообщений: 2085
Репутация: 3
Статус: Offline
сравните доставку с этим еще http://www.rc711.com/shop....292_294
кста, а чем мотивирован выбор 120-го размера? может вам на Mini-CP еще посмотреть? он меньше и падает не больно.
 
LeoДата: Пятница, 15.02.2013, 11:45 | Сообщение # 44
Генерал
Группа: Проверенные
Сообщений: 2012
Репутация: 1
Статус: Offline
да, блин, вроде как смотришь в магазине, а не покупаешь. В принципе сыну охота подарить комнатный (тсс!), а на аппу жалко тратиться, их и так 2 у меня. А те, что на спектрум биндятся - дорого стоят.

С уважением, Захаров Л.С.
 
KuznetsДата: Пятница, 15.02.2013, 12:00 | Сообщение # 45
Генерал
Группа: Модераторы
Сообщений: 2136
Репутация: 2
Статус: Offline
Цитата (RW9UAO)
...devo8S, она точно телеметрийная.
телеметрия на комнатной вертушке? Смысл, как в грелке для пупка с дистанционным управлением, вспомним Задорного wink
Да и на большой это скорее дань моде и излишество несексуальное. На верте летать надо, а не цыферки смотреть
Взялся за штурвал, будь пилотом (бл...! wink ), а не бортинженером.


я не флужу, я реализую свой анлим. ;)

Сообщение отредактировал Kuznets - Пятница, 15.02.2013, 12:01
 
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: