avatar_nicomunet123

Программная модификация контроллеров KU63 и прочих контроллеров на базе X8M06-x

Автор nicomunet123, 08 Июль 2016 в 19:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

peat

Цитата: nicomunet123 от 12 Авг. 2016 в 14:06
Пытаюсь понять, что делает вот эта вот программа ( http://pan.baidu.com/s/1qWDvYyC ) и не понимаю:
раньше я думал, что это просто программа для скидывания прошивки в программатор...
А оказалось она может спрашивать логин/пароль. Зачем-то еще есть TClientSocket.... Т.е. она зачем-то в инет выходит. (за апдейтами? за прошивкой МК...)

Существует ли эмулятор FDTI устройства? Просто очень бы тут пригодился!

На FTDI можно сварганить самому переходник и зашить его VID/PID. В реестре надо смотреть что прописано в конфиге этого девайза подключив оригинал  и тоже самое запрогать в свой чип. Тогда софт начнет видеть ваш чип как свой. Единственное может быть то что на этих микрухах делают защиту железа и софта. Там есть область памяти для ключа который уникален для каждого чипа FTDI. Если этот ключ прописан в софте , то ничего не выйдет. Но не думаю что китайцы будут прописывать в своих софтах каждый прогоамматор.

nicomunet123

[user]peat[/user], китайцы дали к программе вот такие вот драйвера
Вот ftdibus.inf
; FTDIBUS.INF
; Copyright (c) 2000-2009 FTDI Ltd.
;
; USB serial converter driver installation for Windows 2000, XP, Server 2003, Vista, Server 2008 (x86 and x64).
;
; Modify: Tsinming
; Email: elohimlake@yahoo.com.cn

[Version]
Signature="$Windows NT$"
DriverPackageType=PlugAndPlay
DriverPackageDisplayName=%DESC%
Class=USB
ClassGUID={36fc9e60-c465-11cf-8056-444553540000}
Provider=%FTDI%
CatalogFile=ftdibus.cat
DriverVer=04/01/2010,2.04.16

[SourceDisksNames]
1=%DriversDisk%,,,

[SourceDisksFiles]
ftdibus.sys = 1,i386
ftbusui.dll = 1,i386
ftd2xx.dll = 1,i386
FTLang.Dll = 1,i386

[SourceDisksFiles.amd64]
ftdibus.sys = 1,amd64
ftbusui.dll = 1,amd64
ftd2xx64.dll = 1,amd64
ftd2xx.dll = 1,i386
FTLang.Dll = 1,amd64

[DestinationDirs]
FtdiBus.NT.Copy = 10,system32\drivers
FtdiBus.NT.Copy2 = 10,system32
FtdiBus.NTamd64.Copy = 10,system32\drivers
FtdiBus.NTamd64.Copy2 = 10,system32
FtdiBus.NTamd64.Copy3 = 10,syswow64


[Manufacturer]
%Ftdi%=FtdiHw,NTamd64

[FtdiHw]
%USB\VID_8516&PID_2911.DeviceDesc%=FtdiBus.NT,USB\VID_8516&PID_2911
%USB\VID_1983&PID_0528.DeviceDesc%=FtdiBus.NT,USB\VID_1983&PID_0528
%USB\VID_1983&PID_0416.DeviceDesc%=FtdiBus.NT,USB\VID_1983&PID_0416
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001

[FtdiHw.NTamd64]
%USB\VID_8516&PID_2911.DeviceDesc%=FtdiBus.NTamd64,USB\VID_8516&PID_2911
%USB\VID_1983&PID_0528.DeviceDesc%=FtdiBus.NTamd64,USB\VID_1983&PID_0528
%USB\VID_1983&PID_0416.DeviceDesc%=FtdiBus.NTamd64,USB\VID_1983&PID_0416
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6001

[ControlFlags]
ExcludeFromSelect=*

[FtdiBus.NT]
CopyFiles=FtdiBus.NT.Copy,FtdiBus.NT.Copy2
AddReg=FtdiBus.NT.AddReg

[FtdiBus.NTamd64]
CopyFiles=FtdiBus.NTamd64.Copy,FtdiBus.NTamd64.Copy2,FtdiBus.NTamd64.Copy3
AddReg=FtdiBus.NT.AddReg

[FtdiBus.NT.Services]
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService

[FtdiBus.NTamd64.Services]
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService

[FtdiBus.NT.AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\ftdibus.sys
LoadOrderGroup = Base
AddReg = FtdiBus.NT.AddService.AddReg

[FtdiBus.NT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,ftdibus.sys
HKR,,EnumPropPages32,,"ftbusui.dll,FTBUSUIPropPageProvider"

[FtdiBus.NT.AddService.AddReg]
;HKR,Parameters,"LocIds",1,31,00,00,00,32,00,00,00,00
;HKR,Parameters,"RetryResetCount",0x10001,50


[FtdiBus.NT.Copy]
ftdibus.sys

[FtdiBus.NT.Copy2]
ftbusui.dll
ftd2xx.dll
FTLang.dll

[FtdiBus.NTamd64.Copy]
ftdibus.sys

[FtdiBus.NTamd64.Copy2]
ftbusui.dll
ftd2xx.dll,ftd2xx64.dll
FTLang.dll

[FtdiBus.NTamd64.Copy3]
ftd2xx.dll

[Strings]
Ftdi="Tsinming"
DESC="CDM Driver Package"
DriversDisk="FTDI USB Drivers Disk"
USB\VID_8516&PID_2911.DeviceDesc="XCM-FP1"
USB\VID_1983&PID_0528.DeviceDesc="JYS-W01_NEC Programmer"
USB\VID_1983&PID_0416.DeviceDesc="JYS-W02_NEC Programmer"
USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"
SvcDesc="USB Serial Converter Driver"
ClassName="USB"

Соответственно у программаторов должны быть вот такие вот VID/PID
(VID_8516&PID_2911 или VID_1983&PID_0528 или VID_1983&PID_0416)

Цитата: peat от 12 Авг. 2016 в 21:57
Там есть область памяти для ключа который уникален для каждого чипа FTDI. Если этот ключ прописан в софте , то ничего не выйдет. Но не думаю что китайцы будут прописывать в своих софтах каждый прогоамматор.

Я надеюсь что этого не будет требовать... А пока у Apple есть чему поучиться у этих китайцев. (Я про DRM)
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

tehnik


nicomunet123

Худшее предположение подтвердилось: программе нужен серийник чипа. Программа тупо не реагирует на подключенный FTDI (в моем случае это был VAG-COM шнурок  :-) ). При этом VID/PID менял в MProg'e.

Так что декопилировать надо этот делфишкод. И еще я думаю, что оно еще на сайте сверяет серийник (кстати: а что там на наклеичке на контроллере, а?).

Смешно получается:
С английского на китайский слово копирайт не переводится... Однако с китайского на английский очень даже переводится, свое с------ не дадут. Упс, нарушаем правила форума.
Apple точно может поучиться у XCM.  :-D

Завтра буду пробовать с серийником играться и разбирать китайский код.

[user]tehnik[/user],  Огромное Вам спасибо. Я теперь понял, что прошивка МК берется в интернете (так вот зачем там сокет был) и к нему присобачиваются настройки (*.bin файл, который генерирует программа на Java).
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

peat

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

---
Потхорошему нужно искать эмулятор ftdi чипа на уровне драйвера чтобы по обрашению к чипу драйвер подставлял ответку с вашим серийником. Или это делать на уровне ответа от сервака. Вот этот вариант более реализуем. Не думаю что в теле программы зашиты все серийники.
Или сломать сам код который обращается к чипу с проверкой серийника. Толкнуть проге левую dll с этой функцией, если там именно так сделано.

Еще я бы не спешилтс выводами на счет запроса серийника. Нужно собрать свой usb 2 com на оригинальном ftdi и зашить ему пид вид...На рынке очень много подделок этих чипов и они не обязаны прошиваться мпрогом.
Далее перепоставить драйвера , заранее убедившись что следов старого драйвера нет.
После того как втыкаем запргонаный свой чип , винда полезет ставить дрова из инета не смотря на то  что vid будет ваш. Винде нужно подсунуть китайские драйвера. После их установки должен появится девайз в списке устройств под именем которое прописано в китайском inf файле с дровами.
Далее лезем в реестр и смотрим какой номер сом порта винда присвоила вашему чипу. Желательно чтобы номер был в пределах 4 порта. А лучше 1.
Бывает что софт написан на какомнить старом дерьме или использовались древние компоненты которые дальше 4 сом порта не видят...


nicomunet123

Занялся дизассемблингом (без знания ассемблера, методом тыка  :-))
Пока только достал пароль от архива с прошивкой программатора (который я как-то извлек без пароля): dycmcu83310926
Зачем он нужен - не знаю, но он подошел к архиву!
Спойлер
А вообще это позор: сами украли у NECа контроллер, так еще теперь ставят какие-то защиты от копирования. Вообще это как-то не по поняниям.
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

peat

ЦитироватьА вообще это позор: сами украли у NECа контроллер, так еще теперь ставят какие-то защиты от копирования. Вообще это как-то не по поняниям.

Тут все просто. Чтобы доказать факт воровства прошивки или кода или его части необходимо продемонстрировать собственно оригинальный код и сравнить его с украденным.
Делает это заявитель. Чтобы сравнить , необходимо заполучить ворованное. Чтобы заявитель заполучил ворованный код и доказал факт воровства  , требуется взломать запаролленый софт. Любая декомпиляция чужого кода даже с целью выявления паролей является нарушением авторских прав разработчика. Получается заявитель сам нарушает авторские права чтобы доказать что его код находится в теле запароленной чужой  программы.
Парол в данном случае - некая защита от владельца кода или программы.
Примерно как-то так.

nicomunet123

Справиться с программой, написанной на Delphi - не смог, ассемблер мне еще не по зубам.  (тыц)
Но я нашел другую программу (тыц), написанную на C#, а как мы знаем, C# декомпилируется вплоть до названий переменных...

Так же я заметил, что обе программы должны выходить в интернет sj.xcmmcu.com (судя по конфигам), и они вроде бы должны оттуда качать прошивку контроллера без настроек. Но это пока предположение только.

P.S. Я мог перепутать программы. Та, что с глобусом - на паскале прошивальшик,  та, что с монитором - на сишарпе скачиватель?
Но сегодня сил заниматься этим уже совсем нет
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

horrorlv


nicomunet123

[user]horrorlv[/user], дык отсюда я все программы и скачал.
(Сайт производителя xcmmcu.com пересылает как раз сюда)

А проблема в том, что прошивку без программатора не скачать. (То есть даже прошить нельзя будет).
А программатор для программирования NEC (XCM) вроде не нужен. (там нужен только USB-UART + простой инвертер на транзисторе для ресета)
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

horrorlv

Тогда USB стик-ом пробовать или программатор в Китае может найти.

С Лео я так понял ты уже говорил на Али.
Можешь с Кевином попробовать пообщаться, он клепает свои моторы/контроллеры zlmotor@foxmail.com

nicomunet123

[user]horrorlv[/user], от Лео я хотел получить фотки контроллера, не более. Из-за глюка на али он долго не понимал, что фотки не доходят. Кое-как в скайпе договорились...
Про прошивку я его не спрашивал (на форуме endless-sphere уже половина пользователей его спрашивала, он не отвечал. А мне контроллер нужен был.)

Кстати, а кто такой Кевин?

А так да, прошивать буду USB-UARTом. Но если вдруг найду программатор - проблем уже меньше будет
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

horrorlv


nicomunet123

Как получу контроллер (а он уже в РФ) - начну опыты с прошивкой. И перевод программ.
Просто нет смысла наугад тыкать.

И да, кто-то тут писал, что на Tao видели программатор очень похожий на XCMовский, можете ссылку дать?
(Я понимаю, что NEC можно прошить с помощью USB-TTL, но китайские программы именно требуют программатор. А как эти программы работают - не понял)

И да, контроллер теперь избавился от LM317, теперь там стоит какая-та DC-DC.
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

nicomunet123

Я немного познал дзен...
Все, что я пытался переводить предназначено для плат контроллера с процессором X8M06-K (там еще больше портов).
А у меня-то X8M06-C.

Что делать - не ясно. На endless sphere проскакивала другая программа, попробую с ней что-нибудь сделать.
Ну или снять дамп (если ридонли не стоит). Не знаю...

Но контроллер действительно с импульсным преобразователем! Наконец-то ничего греться не будет!
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

nicomunet123

Исследование остановилось...
Я не могу запустить программу (как мне сказали на Endless-Sphere) для X8M06-C.
https://drive.google.com/open?id=0BwLYzaYJowBLalpSeTl4cTRtWEE

Вообще никак. Попробуйте запустить. Я просто уже нееьу что я делаю не так
Так же я не понимаю, что делать дальше...

Да и в самокат лезть не хочется. Совсем. Уже просто надоело, боюсь еще что-нибудь сломать.
А провода (розетки) для МК у меня нет. (запасная батарея есть)
Пока прогресса никакого нет. Извините.
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash

tpc

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

Как вы собираетесь с помощью всех этих телодвижений заполучить E-TWOW-скую прошивку ?
Залить её думаю не особо сложно просто внимательно почитав документацию к контроллеру.
Там двунаправленный последовательный порт на одном выводе TX и RX. Как правильно пишут,
можно, наверное просто подключить адаптер USB-UART. Нужно только знать бодрейт.
Вопрос в другом. Где вы планируете найти прошивку ? Надеетесть, что она чудесным образом
скачается из интернет ? На сайтах ренесанса и xmmcu есть даже документация как писать прошивки
и исходные коды референсной реализации. Из этого они секрет не делают. Ну дык это не
прошивка E-TWOW. E-TWOW, судя по всему, прошивку делают сами, т.к. у них там на плате
подтягивающий резистор нештатный, поведение мотора меняется от версии к версии контроллера
при том же железе.

И таки да, думаю, что к бабке не ходи, security code там установлен.
Хотя, на самых старых контроллерах я бы всё равно проверил.

nicomunet123

Цитата: tpc от 02 Окт. 2016 в 23:01
Как вы собираетесь с помощью всех этих телодвижений заполучить E-TWOW-скую прошивку ?
Пока никак. Надо попробовать прошить подопытный контроллер любой измененной прошивкой
E-TWOW Eco -> Kugoo -> Ninebot ES1 -> Ninebot ES-Trash