Сейчас на форуме: _MBK_, Adler, asfa, bartolomeo (+9 невидимых)

 eXeL@B —› Вопросы новичков —› Реверсинг программы, управляющей включением WI-Fi
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 10:24
· Личное сообщение · #1

Имеется ноутбук, RoverBook Voyager B514. В нем есть вай-фай, оный врубается кнопкой, расположенной отдельно. вторая кнопка управляет питанием процессора (включает выключает тротлинг). Для того чтоб эти кнопки работали есть утилита Power manager and wireless lan RF OnOff. --> Link <--
Грубо говоря утилитка управляет известной в мире Линух штукой под названием RF_Kill (аппаратно включает выключает вай фай). Вот уже 5 ый год, как я не могу победить этот RF_kill под Линуксом. Пытался выйти на авторов утилиты дабы исходники дали или портировали на Линух - почили авторы видать уже.
Вот и пришла мне в голову идея провести реверсинг этой утилиты, с целью узнать каким макаром включается вай-фай. А потом под линух свою утилитку забацать.
Что выяснил?
Дизассемблер Qllydbg.
Программа написана на Visual C++, для определения нажатия кнопки включения используется хук. Скан-код нужной кнопки 0x6D.
У меня дальше затык.
Что дальше искать? Какие-то специфические API функции?
На аппаратном уровне как работает RF_kill не представляю. То ли это это отдельный ключ в шине питания адаптера на материнке, то ли это фишка самого адаптера (intel 2200bg). В программном представлении это должно быть как запись определенного значения по какому то адресу. Хе-хе это то и ежу понятно.
Так вот я и хочу выцепить эту запись определенного значения по какому то адресу.
Путешествия по F7 пока ничего не дали, стараюсь смотреть повнимательнее.
Да и еще иметтся библиотека для этой проги. Назначение ее пока не выяснил. Опыта маловато.

336f_01.10.2012_EXELAB.rU.tgz - PM.exe




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 октября 2012 10:41
· Личное сообщение · #2

а зачем вам исходники? мисье программист?
ну так IDA + hexrays = исходники




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 01 октября 2012 11:00 · Поправил: KingSise
· Личное сообщение · #3

reversecode, так он вроде все нашел. Нужно нажать 0x6D, если я правильно понял?

Тогда так:

Code:
  1. Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  2.  
  3. Call keybd_event(0x6D, 0, 0, 0) 'Hажимаем 0x6D
  4. Call keybd_event(0x6D, 0, KEYEVENTF_KEYUP, 0) отпускаем 0x6D


не?

-----
-=истина где-то рядом=-




Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 11:08
· Личное сообщение · #4

Я конечно буду и дальше рыть. И IDA подключу если поможет.
Я прошу помощь методологическую. Поскольку реверсинг не является моими основным занятием. А так когда припрет немного кодю на С++, да микроконтроллеры как хобби.



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 11:18
· Личное сообщение · #5

Вот библиотека

7c1a_01.10.2012_EXELAB.rU.tgz - WinIo.dll



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 11:19
· Личное сообщение · #6

А еще блин драйвер, чет его я сразу не заметил

6dd9_01.10.2012_EXELAB.rU.tgz - WinIo.sys



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 01 октября 2012 11:34 · Поправил: Veliant
· Личное сообщение · #7

Запускай в olly и ставь брекпойнт на SetPortVal из winio и смотри какие параметры передает при нажатии клавиш.
По ходу все передачи по нажатию клавиш начинаются вот тут 4031E0 а точнее 401CF0 (Throttling) для F7(0x41 = 65) и 4032B0 для F12 (0x58= 88)



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 11:57
· Личное сообщение · #8

Хех, надыбал участок кода включающий светодиод))).
Code:
  1. 100014E7   66:8B5424 0C     MOV DX,WORD PTR SS:[ESP+C]
  2. 100014EC   8A4424 10        MOV AL,BYTE PTR SS:[ESP+10]
  3. 100014F0   EE               OUT DX,AL                                              ; I/O command


Значится где то рядом и включение питания))).
Остается разобраться со всеми этими регситрами, адресацией, смещениями и прочим.
Такс отойти надо. Ближе к вечеру еще подойду за советом. Спасибо Veliant.



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 13:46
· Личное сообщение · #9

KingSise пишет:
reversecode, так он вроде все нашел. Нужно нажать 0x6D, если я правильно понял?

Тогда так:

Code:
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
 
Call keybd_event(0x6D, 0, 0, 0) 'Hажимаем 0x6D
Call keybd_event(0x6D, 0, KEYEVENTF_KEYUP, 0) отпускаем 0x6D


не?


нет.

В линухе от сканкода толка нет. ему по барабану.

Надо привязать этот сканкод к записи какого то числа по какому то адресу. как то так.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 01 октября 2012 13:52 · Поправил: reversecode
· Личное сообщение · #10

не глядя внутрь дров и прог:

wifi карты не работают с прямыми IO портами,
только отмаплеными в адресс спейс и доступ там по смешению в память как к массиву.
поэтому какие то outb dx,al - это смешно

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



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 01 октября 2012 13:55 · Поправил: Veliant
· Личное сообщение · #11

WinIo пишет в порты/шлет IoControl. Все что нужно сделать - заменить в листинге хексрея GetPortVal на inb/inw , а SetPortVal на outb/outw. Либо заменить эти функции чтением/записью в /dev/port



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 октября 2012 14:30
· Личное сообщение · #12

Хех, покурю ка я про хексрей - когда последний раз ломал прогу (лет 7 назад) под свои нужды такого чет не слышал.



Ранг: 47.6 (посетитель), 15thx
Активность: 0.030.02
Статус: Участник

Создано: 02 октября 2012 19:55 · Поправил: mdscorp
· Личное сообщение · #13

reversecode
софт кнопки подключены напрямую к порту IO, вайфай подключен к югу




uhuhuh пишет:

В линухе от сканкода толка нет. ему по барабану.

сканкод нужен для определения факта нажатия, в обратную сторону не работает

uhuhuh
в дллке есть импорт "DeviceIoControl" подцепись и посмотри что он шлёт
вообще управление идёт по SMB шине туда записывается массив в память выделенное твоей карте
как сказал reversecode пишет: и доступ там по смешению в память как к массиву.

--> Link <--





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 02 октября 2012 21:09
· Личное сообщение · #14

mdscorp
у вас плохое представление какие бывают IO

outb нельзя делать для IO отмапленых девайсов,
к ним идет обращение через отмапленую память, и насколько мне неизменяет память нельзя обращатся к этой памяти через сторонние драйвера,

поскольку в топике прозвучал обычный драйвер для доступа к портам через outb,
то скорее всего есть участи памяти карты которые возможно отмаплены ниже для доступка из биоса

нужно смотреть ресурсы используемые картой в винде,
итд итп, долго и нудно обьяснять, но думаю разберетесь когда вникните сами



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 октября 2012 13:29
· Личное сообщение · #15

Таааак-с.
Спасибо за предоставленную информацию к размышлению. Я пока еще не совсем понимаю как из виртуальностей операционки достучаться до реальной железяки. Но активно работаю над этим. Завтра на ночное дежурство, буду сам вкуривать всю эту бодягу. Для начала попробую в среде ХР утилитку создать. А то в Линухе еще ни разу не кодил. Так что завтра буду вопросы задавать, если гуру не против)))



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 октября 2012 00:35
· Личное сообщение · #16

reversecode пишет:
outb нельзя делать для IO отмапленых девайсов,к ним идет обращение через отмапленую память, и насколько мне неизменяет память нельзя обращатся к этой памяти через сторонние драйвера,


Нашел такую штуку как giveio.sys, которая как раз маппит для приложения адреса портов ввода вывода. Уж больно похоже название моего драйвера - winio.sys. Хехе, роем дальше.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 октября 2012 01:07 · Поправил: reversecode
· Личное сообщение · #17

вам для реверса только PM.exe нужен+спецификация работы PCI+порты IO PCI+порты IO BIOS+ я хз чьи это порты 0x68

в драйвер и dll, лезть без нет нужды

там доступ к портам итд железке представлен через доступ к PCI портам(как это обычно делается в OS)
вам нужно только спецификацию PCI перечитать, или найти и посмотреть как это сделано в др OS




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 04 октября 2012 01:11
· Личное сообщение · #18

а кто мешает найти uhuhuh пишет:
winio.sys





470b_03.10.2012_EXELAB.rU.tgz - WinIo.zip

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 12:12
· Личное сообщение · #19

Так и не удалось позаниматься этим вопросом
Code:
  1. 100014E7   > 66:8B5424 0C   MOV DX,WORD PTR SS:[ESP+C]               ; Case 1 of switch 100014B6
  2. 100014EC   . 8A4424 10      MOV AL,BYTE PTR SS:[ESP+10]
  3. 100014F0   . EE             OUT DX,AL                                ; I/O command
  4.  

Единственное сейчас выяснил, что этими командами включается и выключается вай-фай и светодиод.
Содержание регистров.

Вафля вкл.
Code:
  1. EAX 00000012
  2. ECX 00000012
  3. EDX 0000118F
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0


Светик вкл
Code:
  1. EAX 00000080
  2. ECX 00000012
  3. EDX 0000118E
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0


Вафля выкл\
Code:
  1. EAX 00000010
  2. ECX 00000000
  3. EDX 0000118F
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0


Светик выкл
Code:
  1. EAX 00000000
  2. ECX 00000000
  3. EDX 0000118E
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0


Драйвер WINIO.SYS на включение выключение не влияет. Я его в диспетчере устройств отключаю и все фурычит. Хотя при повторном запуске программы он снова загружается.

Блина, туплю не по детски.
Прошу придать нужное направление.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 октября 2012 12:27
· Личное сообщение · #20

причем здесь диспетчер устройств? удалите его с системы и теоретически вайфай перестанет управлятся этой прогой



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 12:59
· Личное сообщение · #21

Угу, так и есть. Значится при запуске программы этот драйвер создает I/O Permission Map, открывает доступ к нужным портам. а дальше уже не нужен.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 октября 2012 13:16
· Личное сообщение · #22

ставте брек поинты на SetPort/GetPort
жмите вкл фавля, и записывайте стек вызовов,
наверняка там по несколько раз идет обращение к Get/Set Port
и точно так же выкл фавля итд

потом стек вызовов сюда



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 13:53
· Личное сообщение · #23

Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401C81   Includes WINIO.GetPortVal             PM.00401C7F                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15



Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401C8F   Includes WINIO.GetPortVal             PM.00401C8D                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15


Вот тут происходит непросредственное включение вафли
Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401CD3   Includes WINIO.SetPortVal             PM.00401CD1                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15


А тут Светодиода.
Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401CE1   Includes WINIO.SetPortVal             PM.00401CDF                   0012FC20
  4. 0012FBA0   004032FD   PM.00401C50                           PM.004032F8                   0012FC20
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15                   0012FC20
  6. 0012FC24   0041055E   Includes PM.00410A17                  PM.00410558                   0012FC20
  7. 0012FC44   0040364C   PM.0041053C                           PM.00403647                   0012FC40
  8. 0012FC78   0040F60C   Includes PM.0040364C                  PM.0040F606
  9. 0012FCD8   0040F815   ? PM.0040F57C                         PM.0040F810


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure / arguments                 Called from                   Frame
  3. 0012FC6C   00401C81   Includes WINIO.GetPortVal             PM.00401C7F                   0012FD0C
  4. 0012FC88   004036ED   ? PM.00401C50                         PM.004036E8
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure / arguments                 Called from                   Frame
  3. 0012FC6C   00401C8F   Includes WINIO.GetPortVal             PM.00401C8D                   0012FD0C
  4. 0012FC88   004036ED   ? PM.00401C50                         PM.004036E8
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure / arguments                 Called from                   Frame
  3. 0012FC6C   00401CD3   Includes WINIO.SetPortVal             PM.00401CD1                   0012FD0C
  4. 0012FC88   004036ED   ? PM.00401C50                         PM.004036E8
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5
  6.  


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FC6C   00401CE1   Includes WINIO.SetPortVal             PM.00401CDF                   0012FD0C
  4. 0012FC88   004036ED   PM.00401C50                           PM.004036E8                   0012FD0C
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5                   0012FD0C
  6. 0012FD10   0041055E   Includes PM.004109A7                  PM.00410558                   0012FD0C
  7. 0012FD30   0040364C   PM.0041053C                           PM.00403647                   0012FD2C
  8. 0012FD64   0040F60C   Includes PM.0040364C                  PM.0040F606
  9. 0012FDC4   0040F815   ? PM.0040F57C                         PM.0040F810




Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 14:01
· Личное сообщение · #24

Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401C81   Includes WINIO.GetPortVal             PM.00401C7F                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401C8F   Includes WINIO.GetPortVal             PM.00401C8D                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15


Выключение вафли
Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401CD3   Includes WINIO.SetPortVal             PM.00401CD1                   0012FC20
  4. 0012FBA0   004032FD   ? PM.00401C50                         PM.004032F8
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15


выключение светодиода
Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FB84   00401CE1   Includes WINIO.SetPortVal             PM.00401CDF                   0012FC20
  4. 0012FBA0   004032FD   PM.00401C50                           PM.004032F8                   0012FC20
  5. 0012FBA8   00410A17   Includes PM.004032FD                  PM.00410A15                   0012FC20
  6. 0012FC24   0041055E   Includes PM.00410A17                  PM.00410558                   0012FC20
  7. 0012FC44   0040364C   PM.0041053C                           PM.00403647                   0012FC40
  8. 0012FC78   0040F60C   Includes PM.0040364C                  PM.0040F606
  9. 0012FCD8   0040F815   ? PM.0040F57C                         PM.0040F810


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FC6C   00401C81   Includes WINIO.GetPortVal             PM.00401C7F                   0012FD0C
  4. 0012FC88   004036ED   ? PM.00401C50                         PM.004036E8
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5


Code:
  1. Call stack of main thread
  2. Address    Stack      Procedure                             Called from                   Frame
  3. 0012FC6C   00401CD3   Includes WINIO.SetPortVal             PM.00401CD1                   0012FD0C
  4. 0012FC88   004036ED   ? PM.00401C50                         PM.004036E8
  5. 0012FC98   004109A7   Includes PM.004036ED                  PM.004109A5





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 октября 2012 14:01 · Поправил: reversecode
· Личное сообщение · #25

пять части стеков, четыре коментария,
какой к какому?
коментарий как заголовок или как подпись под действиями?

вы бы уже тогда и значения Set/Get Port залогировали и тогда и без меня сами бы справились

| Сообщение посчитали полезным: KingSise

Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 14:11
· Личное сообщение · #26

коментарий как заголовок или как подпись под действиями?

Как заголовок




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 октября 2012 14:21
· Личное сообщение · #27

включение/выключение ваЙфли по одному вызову Set/Get Port ? я правильно понял?
да вы смеетесь)) сами бы их уже посмотрели эти значения

кстати первый стек вызова тогда к какому действию? там заголовка к нему нету



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 14:33
· Личное сообщение · #28

Set и Get по таймеру работают, постоянно. Поэтому то не с первого раза получается в паузах между бряками успеть нажать кнопку пуска вафли.
Да и я не совсем понял нафига я выложил столько колл-стэков.
Регистры выложенные выше: EAX и EDX. В ЕАХ передается параметр вкл выкл.
Мну беспокоит как вычислить физический адрес. Чтоб я мог его в Линухе использовать.
Здеся непосредственное управление вафлей
Code:
  1. 100014E7   > 66:8B5424 0C   MOV DX,WORD PTR SS:[ESP+C]               ; Case 1 of switch 100014B6
  2. 100014EC   . 8A4424 10      MOV AL,BYTE PTR SS:[ESP+10]
  3. 100014F0   . EE             OUT DX,AL


Здеся значения регистров при включении вафли
Code:
  1. EAX 00000012
  2. ECX 00000012
  3. EDX 0000118F
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0

Здеся регистры при выключении вафли
Code:
  1. EAX 00000010
  2. ECX 00000000
  3. EDX 0000118F
  4. EBX 00403690 PM.00403690
  5. ESP 0012FC64
  6. EBP 0012FD0C
  7. ESI 10001490 WINIO.SetPortVal
  8. EDI 100013D0 WINIO.GetPortVal
  9. EIP 100014F0 WINIO.100014F0





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 октября 2012 14:37 · Поправил: reversecode
· Личное сообщение · #29

ннда, причем здесь значение регистров?
моментальный снимок регистров не интересует вообще, значение переданые в Set/Get порт скорее всего идут через стек.

есть понятие стека вызовов, если вы не понимаете в чем разница... пойду погуляю

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

а если там по одному Set/Get для вкл и выкл, то сами глянте какие значение передаются в Set/Get Port

если там IO порты биоса то значит wifi через биос вкл-выкл и нужно биос реверсить,
если порты IO PCI, значит разбиратся где там pci_config read/write потому что они составные там по несколько обращений идет к апертуре PCI прежде чем достучится до самого wifi



Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 октября 2012 14:52
· Личное сообщение · #30

мда, наверное не понимаю.
Я все микроконтроллерными категориями мыслю. Вижу, что в порт уходит число и происходит включение устройства. Казалось бы все, ан нет.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Реверсинг программы, управляющей включением WI-Fi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати