|
|
|
Железный канал: «LPC bus I/O под linux» |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
Есть очень нестандартный (как минимум внешне)маленький комп на Атоме.
Долгое время комп работал под виндой, появилась необходимость использовать его под линуксом.
Залочена включалка вайфая, wlan0 неподнимается отсылая к RFKILL.
rfkill list all
говорит что присутствует девайс
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
попыткa rfkill unblock all ни к чему не приводит
жезленого свича (в виде кнопки) у компа точно нет, ну или как минимум под виндой вайфай включался утилиткой работающей через ntport.dll
вернув винду я смогу проследить что там и куда записывается.
вопрос: как подступиться к Intel(SCH Poulsbo)LPC bridge (rev 07) из под линукса?
Либо возможно есть куча других более функциональных и информативных утилит подобных rfkill ?
заранее благодарю
PS: Конкретней
LPC мост там LPC47N227
Надо манипулировать его GP47 ногой
чтоб включить/выключить RF_ALL_OFF_unlock сигнал.
_________________ Quaere Vērum
------------------------
Последний раз редактировалось: _RAZAAR_ (14:26 02-02-2019), всего редактировалось 3 раз(а) |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
_RAZAAR_ : |
из под линукса?
|
Из под какого линукса?
Если из под винды эта штука заводится, и под "линуксом" возникает надпись "Hard blocked: yes" то возможно используется несовместимый драйвер.
И еще куча всяких причин, например, в init.d есть скрипт, который вайфай настраивает не так как нужно.
_________________ Сосиска в хлебе |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
БулерМэн : |
_RAZAAR_ : |
из под линукса?
|
Из под какого линукса?
|
В частности debian jessie
БулерМэн : |
Если из под винды эта штука заводится, и под "линуксом" возникает надпись "Hard blocked: yes" то возможно используется несовместимый драйвер.
И еще куча всяких причин, например, в init.d есть скрипт, который вайфай настраивает не так как нужно.
|
С linux драйвером iwlwifi (под Intel 5100 Wireless LAN) всё нормально
при попытке поднять интерфейс
~# ip link set wlan0 up
RTNETLINK answers: Operation not possible due to RF-kill
Яж сказал что из под винды она хоть и заводится но также необычным образом
в компе есть отдельный хард свич доступный софтверным образом для включения выключения всех RF устройств разом.
В стандартных мобильных компах так никогда не делается.
с компом поставлялась виндовс утилитка с неглубокомысленным названием
DevicePowerManager.exe работающая с LPC I/O bus напрямую через ntport.dll
если она в авторане не стоит ни вайфай ни GSM, GPS, BT модули не включаются и не работают, от компа есть схемы потому про
LPC мост LPC47N227 и GP47 ногу знаю наверняка, вопрос только в том как до неё добраться програмным возможно низкоуровневым образом, отрезать и подвесить в нужный уровень всегда можно хоть и геморно.
_________________ Quaere Vērum
------------------------ |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
_RAZAAR_ : |
DevicePowerManager.exe работающая с LPC I/O bus напрямую через ntport.dll
|
Погоди, так ты говоришь, что тебе известна нога, то есть драйвер-менеджер просто переводит состояние в другое и все?
_________________ Сосиска в хлебе |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
БулерМэн : |
_RAZAAR_ : |
DevicePowerManager.exe работающая с LPC I/O bus напрямую через ntport.dll
|
Погоди, так ты говоришь, что тебе известна нога, то есть драйвер-менеджер просто переводит состояние в другое и все?
|
такточно, считывает текущее состояние и если команда была противоположной инвертирует этот бит и записывает в порт необходимое значение, и микрухa моста переключает ногу GP47 в другое состояние.
также DevicePowerManager.exe следит если питание от батареи и зарад ёё на исходе то отключаются все лишние потребители по приоритетам, радио девайсы в первую очередь, причем BT и GPS может быть отключен по отдельности, а вайфай только общим со всеми сигналом почемуто.
_________________ Quaere Vērum
------------------------ |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Погуглил чип. Да, определенно, программа DevicePowerManager управляет состоянием пинов. Первое что приходит в голову - отследить, какие данные отправляет данное приложение в этот драйвер ntport.dll
Попробуй из под винды послушать работу приложения при помощи данной утилиты:
https://technet.microsoft.com/ru-ru/sysinternals/bb896645
Сейчас запускал на ХР, работает. Правда придется повозиться с фильтрами, чтобы выводилось только то, что нужно, а не все что есть, типа services.exe и т.п.
добавлено спустя 9 минут:
Например, задать фильтр Include для выбранного процеса:
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
Единственное что, я так понимаю, этого не достаточно, нужны именно данные...
Где-то я находил возможность перехвата данных через одноименную библиотеку...
добавлено спустя 10 минут:
Вот такой еще есть вариант отловить данные, как я понимаю:
http://jacquelin.potier.free.fr/winapioverride32/
добавлено спустя 6 минут:
Там даже названия функций будут написаны и что именно отправляется.
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (00:27 03-02-2019), всего редактировалось 4 раз(а) |
|
|
AnrDaemon
864 EGP
        Рейтинг канала: 8(796) Репутация: 37 Сообщения: 12322
Зарегистрирован: 17.10.2004
 |
|
_RAZAAR_ : |
Hard blocked: yes
|
Либо в BIOS, либо кнопкой заблокировано устройство.
добавлено спустя 1 минуту:
А тупо перемычку там куда-то поставить нельзя?
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (16:32 04-02-2019), всего редактировалось 1 раз |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
AnrDaemon : |
_RAZAAR_ : |
Hard blocked: yes
|
Либо в BIOS, либо кнопкой заблокировано устройство.
добавлено спустя 1 минуту:
А тупо перемычку там куда-то поставить нельзя?
|
Б биосе опции нет
Кнопки ограниченое количество на корпусе машинки есть но все какие возможно комбинации перенажимал не срабатывает ни одна
комп собран в довольно компактном корпусе примерно 150х60х40мм ударовлагопылезащищенного исполнения (похоже военного образца)
разбирать его хочется в последнюю очередь
потому хочется както проследить порты куда виндовая утилитка тыкает чтоб включить wifi, идеальный вариант былбы какойто PC I/O порт сниффер под винду, чегото ничего толком немогу найти.
всё что мог узнать пока это при нажатии кнопки утилитки происходит обмен данными в 24 байта.
а ещё более идеальный узнать чего этому RFKILL надо что он неможет общаться с LPC мостом на предмет включения радио модулей
Cкрытый текст (кликните здесь для просмотра)
Feb 4 18:08:51 nar1gw1 kernel: [ 9.501024] Intel(R) Wireless WiFi driver for Linux, in-tree:
Feb 4 18:08:51 nar1gw1 kernel: [ 9.501032] Copyright(c) 2003- 2014 Intel Corporation
Feb 4 18:08:51 nar1gw1 kernel: [ 9.501298] iwlwifi 0000:01:00.0: can't disable ASPM; OS doesn't have ASPM control
Feb 4 18:08:51 nar1gw1 kernel: [ 9.501468] iwlwifi 0000:01:00.0: irq 40 for MSI/MSI-X
Feb 4 18:08:51 nar1gw1 kernel: [ 9.537029] iwlwifi 0000:01:00.0: firmware: direct-loading firmware iwlwifi-5000-5.ucode
Feb 4 18:08:51 nar1gw1 kernel: [ 9.537512] iwlwifi 0000:01:00.0: loaded firmware version 8.83.5.1 build 33692 op_mode iwldvm
Feb 4 18:08:51 nar1gw1 kernel: [ 9.544138] floppy0: no floppy controllers found
Feb 4 18:08:51 nar1gw1 kernel: [ 9.544160] work still pending
Feb 4 18:08:51 nar1gw1 kernel: [ 9.616549] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUG disabled
Feb 4 18:08:51 nar1gw1 kernel: [ 9.616558] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
Feb 4 18:08:51 nar1gw1 kernel: [ 9.616564] iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
Feb 4 18:08:51 nar1gw1 kernel: [ 9.616571] iwlwifi 0000:01:00.0: Detected Intel(R) WiFi Link 5100 AGN, REV=0x54
Feb 4 18:08:51 nar1gw1 kernel: [ 9.617333] iwlwifi 0000:01:00.0: L1 Disabled - LTR Disabled
Feb 4 18:08:51 nar1gw1 kernel: [ 9.617744] iwlwifi 0000:01:00.0: RF_KILL bit toggled to disable radio.
Feb 4 18:08:51 nar1gw1 kernel: [ 9.672209] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
|
_________________ Quaere Vērum
------------------------
Последний раз редактировалось: _RAZAAR_ (21:49 04-02-2019), всего редактировалось 1 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
_RAZAAR_ : |
происходит обмен данными в 24 байта.
|
Ну так а что мешает попробовать отправить те же байты в тот же адрес и посмотреть на результат?
добавлено спустя 6 минут:
_RAZAAR_ : |
идеальный вариант былбы какойто PC I/O порт сниффер под винду
|
http://pascal.sources.ru/hardware/pci.htm
Вот такую штуку пробовал использовать? по описанию правда не понятно, что в логах содержаться будет, позже сам попробую...
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (20:08 06-02-2019), всего редактировалось 1 раз |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
БулерМэн : |
_RAZAAR_ : |
происходит обмен данными в 24 байта.
|
Ну так а что мешает попробовать отправить те же байты в тот же адрес и посмотреть на результат?
|
Зарегистрирован факт про 24 байта
Ни значения байтов ни адреса куда они ортправляются и откуда приходят
пока не извесны, 24 байта это транзакция I/O, там и посылка и ответ.
БулерМэн : |
добавлено спустя 6 минут:
_RAZAAR_ : |
идеальный вариант былбы какойто PC I/O порт сниффер под винду
|
http://pascal.sources.ru/hardware/pci.htm
Вот такую штуку пробовал использовать? по описанию правда не понятно, что в логах содержаться будет, позже сам попробую...
|
По описанию понятно что эта штука 2002 ого года сканирует PCI, AGP и 32бит PCMCI, и в те времена всё что находится сейчас в одном LPC чипе до которого мне надо добраться было раскидано по всей материнке в виде отдельных микрух.
Запускаемое под XP сей музейный експонат отвечает следующее
PCI Halted:
No PCI BIOS was detected! (NB: I don't work under Windows NT & Windows 2000!)
Process monitor при нажатии кнопки Wireless Lan в окне DevicePowerManager регистрирует изменение ключа реестра HKCU\Software\CReTE\WirelessManager\WLAN_ON\ - 32битное слово с нуля на единицу и обратно.
Опыта в реверсе ПЦ програм у меня чуть больше чем минимум
если у когото из тут следящих есть возможность помочь пишите в личку пожалуйста , надо ковырнуть этот Device Power Manager (есть его Setup Pakcage Data.msi) который устанавливаться под wine(om) не желает а из под виртуалбокса установленного на этой машинке естественно никакой вайфай не включает, и могу дать линукс консоль машинки чтоб непосредственно было видно что к чему там.
_________________ Quaere Vērum
------------------------
Последний раз редактировалось: _RAZAAR_ (21:33 06-02-2019), всего редактировалось 1 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
_RAZAAR_ : |
Зарегистрирован факт про 24 байта
|
Не обязательно реверс делать для PC программы.
Достаточно написать библиотеку прослойку.
Если у тебя есть данные о том, что данное приложение отправляет 24 байта в ntport.dll то следует сделать заменитель данной библиотеки, и подсунуть приложению под видом оригинала - свою, переименовать оригинальную версию файла в ntport_orig.dll
Подложная версия библиотеки будет перенаправлять вызовы в оригинальную версию, или можно даже ничего не перенаправлять, а просто посмотреть, что передается
Тогда, подложная библиотека, на все обращения к ней будет выдавать в файл все данные, что ей были отправлены.
Данная библиотека - не стандартная, автор: http://www.zealsoft.com/ntport/index.html
Но, автор дает примеры работы с данной библиотекой, то есть "сдает с потрохами" формат вызова функций.
Сейчас покопаюсь в примерах, скажу, могу написать тебе "подложную" библиотеку или нет.
добавлено спустя 43 минуты:
Ну в принципе, можно, вызовы известны. Ради спортивного интереса
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (01:54 07-02-2019), всего редактировалось 3 раз(а) |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Реализовал несколько функций, пока всех функции не напишу - смысла нет пробовать на реальном железе с твоей программой DevicePowerManager, так как обязательно что-то подвиснет
Фишка вся в том, что когда будет весь функционал - всю инфу ты сможешь собрать, что и куда пересылается.
После этого, если я правильно понял - тоже самое реализовать под линукс, чтобы была некая программка которая дернет порт в нужное положение. В принципе, если не застряну на некорректных данных от библиотеки, и при переносе на GCC для линукса, то какой-нибудь демон можно писнуть
Вот скриншоты теста прослойки под винду XP:
Так как у меня не реганная версия, библиотека показывает свое модальное окно:
Cкрытый текст (кликните здесь для просмотра)
|
После нажатия кнопки ОК
Cкрытый текст (кликните здесь для просмотра)
|
Не совсем понятно, правда, на счет LPT, хотел этой функцией проверить работоспособность, а она принимает номер порта и выводит номер порта... И версия 640 какая-то странная
_________________ Сосиска в хлебе |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
Проще зареверсить идой выковрнув что там идет и в какие порты.
По поводу LPC это шина по сути мост, которая транслирует обращение к портам I/O(но может вообще и к памяти) в свой протокол, поэтому простая запись в нужные порты будет автоматом прокинута на эту шину.
добавлено спустя 4 минуты:
Выложите DevicePowerManager.exe куда нить для анализа.
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
Последний раз редактировалось: VBKesha (12:47 07-02-2019), всего редактировалось 1 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
VBKesha : |
Проще зареверсить идой выковрнув что там идет и в какие порты.
|
ида тоже есть, но я не умею ей пользоваться...
_________________ Сосиска в хлебе |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
Оо это стоит освоить, очень помогает иногда...
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
на счет библиотеки прослойки не сказать что проще, просто мне интересно и возможно будет полезно для других целей
Если DevicePowerManager.exe состоит из пары функций, одна в цикле, вторая выполняет действие - то наверное в дизассэмбле работы по поиску не много будет. Но что тут гадать, нужен исходник.
_________________ Сосиска в хлебе |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
БулерМэн : |
на счет библиотеки прослойки не сказать что проще, просто мне интересно и возможно будет полезно для других целей
|
Так взять h файл от библиотеки этой(я с ней когда то работал там функций кот наплакал) и по ним сделать свою.
БулерМэн : |
то наверное в дизассэмбле работы по поиску не много будет
|
Если она ничем не пожата, то можно использовать HexRays и работа по поиску упростится до минимума.
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
VBKesha : |
Так взять h файл от библиотеки этой
|
Дело в том, что готовая библиотека содержит конкретную рабочую реализацию, а если делать свою - придется изобретать велосипед, хоть и с теми же входными данными
В этом случае, проще написать сам DevicePowerManager с нуля Но я подозреваю, что там дерганьем одного порта точно дело не ограничится.
Вообще, _RAZAAR_ просил написать ему в личку
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (22:30 07-02-2019), всего редактировалось 2 раз(а) |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
БулерМэн : |
Дело в том, что готовая библиотека содержит конкретную рабочую реализацию, а если делать свою - придется изобретать велосипед, хоть и с теми же входными данными
|
Я имеел ввиду прокси так написать, в библиотеки свои функции с такими же прототипами, и из неё дергать вызовы оригинальной либы.
БулерМэн : |
Вообще, _RAZAAR_ просил написать ему в личку
|
Пусть экзешник выкладывает, а там видно будет.
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
_RAZAAR_
62 EGP
  Рейтинг канала: 2(11) Репутация: -13 Сообщения: 2854 Заблокирован Откуда: РАЗААРЪ - 40Лы от Лаве Зарегистрирован: 15.04.2008
 |
|
отдельно экзешних и длл ничего как минимум мне недаёт
полный сетaп пак установленный на виртуалбоксе разворачивает кое какое поле деятельности, я пользуюсь оледебагом, но плохому танцору любые припарки плохо помогают
Cкрытый текст (кликните здесь для просмотра)
|
после попытки атача ругается на модуль нтпорт.длл таким образом
Cкрытый текст (кликните здесь для просмотра)
|
соответственно вероятность достоверного отслеживания ухудшается
что дальше делать пока непойму
клики на кнопочку создают лог про нажатие отжатие кнопки
проходя по линку лога открывается кусок ядра как я понимаю
как поставить фильртры на брейк на обращении к ntport.dll незнаю
Cкрытый текст (кликните здесь для просмотра)
|
вроде брейк поставить получилось
далее будет привычней наверно
Cкрытый текст (кликните здесь для просмотра)
|
пока машинка всё ещё под линуксом, но нализ оледебагом на виртуалке подталкивает его делать не на виртуалке а на реальной машинке, соответственно хочу вернуть винду обратно и трейсить непосредственно на ней.
Проведённый анализ и интуиция подсказывает что необнаружив на виртуалке необходимых физических доступных портов, код не желает даже пытаться общаться с несуществующими портами, хотя картинку переключает отменно.
Стоит мне переводить машинку на винду или комуто понадобится доступ к ней пока она ещё под линуксом?
Добавил в атач пдф LPC моста
там достаточно информации для того чтоб манипулировать ногой но я не нашел как сам чип адресовать чтоб производить эту манипуляцию.
lpc47n227.pdf |
Описание: |
|
Имя файла: |
lpc47n227.pdf |
Размер файла: |
657.99 KB |
Скачано: |
438 раз(а) |
_________________ Quaere Vērum
------------------------
Последний раз редактировалось: _RAZAAR_ (13:04 08-02-2019), всего редактировалось 10 раз(а) |
|
|
|
|
|
Железный канал: «LPC bus I/O под linux» |
|