Автор | Сообщение |
---|---|
Заголовок сообщения: lenovo g50-70 Не включается.
|
|
|
Привет всем! Помогите друзья, уже не знаю что делать с этим ноутом. |
Вернуться к началу |
|
Сергей Лоскутов (Serge_L) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
||
|
Вы источник питания свой (другой) используйте. |
||
Вернуться к началу |
|
||
min |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
новый мульт в этой модели флешуется сам. проверить защитный диод на пине id jdcin1 |
Вернуться к началу |
|
Maxim Skridonenko |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
min писал(а): новый мульт в этой модели флешуется сам. спорить не буду, но не уверен в Вашей правоте gevorg-x писал(а): на центральный пин подали 19в. Нажимаю на кнопку, ноут молчит, хотел прошить другую прошивку, и опять программатор не видит мульт. блок питания хоть отобрали убогий ? _________________ |
Вернуться к началу |
|
Лишенко Александр |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
min писал(а): новый мульт в этой модели флешуется сам. раз 5 приходилось менять мульт на этой материнке — приходилось именнно шить прогером. _________________ Кто хочет — ищет способ |
Вернуться к началу |
|
Maxim Skridonenko |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
нет _________________ |
Вернуться к началу |
|
Сергей Лоскутов (Serge_L) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
||
|
Да всё объяснимо))) |
||
Вернуться к началу |
|
||
min |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Во всех aclu (кроме 0-9) НОВЫЕ мульты прошиваются автоматом. И это научный факт |
Вернуться к началу |
|
Maxim Skridonenko |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
min писал(а): Во всех aclu (кроме 0-9) НОВЫЕ мульты прошиваются автоматом. И это научный факт я продолжу _________________ |
Вернуться к началу |
|
gevorg-x |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Сергей Лоскутов (Serge_L) писал(а): Вы источник питания свой (другой) используйте. И с другим БП ветет себя так же. если подать 3.3 в с лбп (не раз так прошил мульт), тоже выдоет ошибку! |
Вернуться к началу |
|
gevorg-x |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Вообщем прошил флешку биоса с другой прошивкой, плата подала признаки жизни. стал гореть индикатор питания. мульт уже мог прошить. сейчас плата ведет себя по другому: при потключении бп плата самапризвольно включается и через 2 секунды отключается и так безконечно… изо отсуствует. на эти 2 секунды напряжение поднемаются. кз на плате нигде не наблюдается! с другими биосамы все идентично! |
Вернуться к началу |
|
gevorg-x |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
|
Вернуться к началу |
|
Сергей Лоскутов (Serge_L) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
||
|
Сегодня делал аналогичную Ленову. Мульт 8586Е брал на Али, т.к. вокруг меня не было в последний раз. |
||
Вернуться к началу |
|
||
kropotkin |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Сергей Лоскутов (Serge_L), а что значит шлифовка, что реально видно? И как определили, что FXS с FXA? ИМХО, Китаеси любят и умеют деньги заробатовать, но не до такой степени, чтоб мульты по $2 за штучку шлифовать и перемаркировывать. Беру только с алика, все б/у шные, все зашитые, после перепрошивки — все работают. Дешево и практично. Это ж не чипы AMD Руку на отсечение, конечно, не дам, но по моим представлениям на компалах механизм самопрошивки мультов не реализован. Ну, на практике, имеется ввиду, так же с таким не сталкивался. Есть там в основном дампе участок kbc вообще? |
Вернуться к началу |
|
Сергей Лоскутов (Serge_L) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
||
|
Под микроскопом четко видно, что на что менялось.))) |
||
Вернуться к началу |
|
||
Maxim Skridonenko |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
первые буква должны совпадать _________________ |
Вернуться к началу |
|
Сергей Лоскутов (Serge_L) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
||
|
Макс, это понятно! |
||
Вернуться к началу |
|
||
Andrey Bogdanov (Doc) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Потому что о том, что должна совпадать только первая буква знает только 1% покупателей (хорошо если), а значит продажи потенциально могут вырасти вдвое если половину перемаркировать ) |
Вернуться к началу |
|
Maxim Skridonenko |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Andrey Bogdanov (Doc) писал(а): Потому что о том, что должна совпадать только первая буква знает только 1% покупателей (хорошо если), а значит продажи потенциально могут вырасти вдвое если половину перемаркировать ) я и не подумал _________________ |
Вернуться к началу |
|
Grigoriy Mosin(gmosin) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
CLU1/ACLU2 UMA NM-A272 Rev:1.0 поскажите на PJ303 12ом процу тапки? |
Вернуться к началу |
|
[ruv] Юрий Рогачевский |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
на рабочей 500 Ом-попугаев) _________________ Пока Вы продолжаете делать то, что Вы делали, Вы продолжаете получать, что получали… |
Вернуться к началу |
|
Grigoriy Mosin(gmosin) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
[ruv] Юрий Рогачевский писал(а): на рабочей 500 Ом-попугаев) скидывал перемычку , в сторону нагрузки, подал 3.3 в потребление 0.34 а…. |
Вернуться к началу |
|
Grigoriy Mosin(gmosin) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
нагрелась сетевуха — снял её , соединил PJ303 там 5.6кома и 0.375 на звонке…. |
Вернуться к началу |
|
Grigoriy Mosin(gmosin) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
Подключите адаптер и продолжайте! Number of VCOM ports found on the machine: 2 |
Вернуться к началу |
|
Grigoriy Mosin(gmosin) |
Заголовок сообщения: Re: lenovo g50-70 Не включается.
|
|
FXA оказался нерабочим, FXS поставил прошил и полетело…. |
Вернуться к началу |
|
Кто сейчас на конференции |
Зарегистрированные пользователи: [ruv] Юрий Рогачевский, Andrey2019, Burago, byvn, dru, erikalov, fetisov, Google [Bot], Kes, kvvost, Mail.ru [Bot], slhud1, staker, t74f, Yandex [Bot] |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
Текущее время: 09 фев 2023, 12:00 |
Сообщения без ответов | Активные темы
Страница 1 из 1 [ Сообщений: 10 ] |
Показать сообщения за: Поле сортировки
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Страница 1 из 1 [ Сообщений: 10 ] |
|
||||||||||||||||||||||||||||||||||||||
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
- Статус темы:
-
Закрыта.
-
- Модель ноутбука:
-
X751LB-TY201T
- Платформа:
-
X751LD REV 2.5
Прошил основной биос. Мигает зеленый светодиод . Ноутбук автостартует, периодическая перезагрузка потребление максимум до 200мА поднимается и отпускается. Вместе с ним и дежурка 3.39В и 5В(Похоже дежурные напряжения не ALW,после нажатия кнопки только появляются и настораживает 3.39В вместо 3.33В). Напряжения на дросселях в момент максимальной амплитуды тока на лбп(элементы буду указывать по ревизии 2.0): PL8301= 1.37В(Питание оперативки cоответствует номинальной 1.35В), PL8003= 1.4В(Питание процессора ), PL8501 и PL8502 =0,7В(Питание видеочипа ), PL8200=1.05В( питание VSUS соответствует номинальной 1.05В) и PL8801= 2,35В(идет с чарджера BQ24735 c 19 ноги). На похожей рабочей плате X751MD rev.2.0 питание PL8801 около 12В. Также отличаются PL8003, PL8501 и PL8502. В рабочей плате 1В, 1.08В и 1.08В соответственно.Кстати мульт отдельно не удалось прошить выскакивает сообщение «BUSY error при получении ID!
Плата уже побывала по чужим рукам,возможно и недостают элементы.
Поменял чарджер. Светодиод перестал мигать,появилось питание на PL8801 16В. Ноутбук запустился напряжения до 500мА поднимаются(не успел проверить на инициализацию) ,выключил принудительно с кнопки во второй раз уже не запускается. Думал чарджер бракованный попался поменял на другую такая же картина. Плата странно ведет себя, понял что после нагрева чарджера плата запускается как остывает не запускается(точнее потребление до 200мА доходит и сразу вырубается )
Несколько раз пересадил чарджер и прошелся феном по вокруг стоящим элементам(резисторы,конденсаторы, мосфеты).Также после остывания запуска нет. Когда горячий инициализация есть.Находит только встроенную видеокарту , а основную 940 не видит вообще, даже не показывает диспетчере как неизвестное устройство.
Голову ломаю в чем может быть причинаВложения:
-
2.jpg
- Размер файла:
- 1,4 МБ
- Просмотров:
- 18
-
не тебе отвечали на vlab по поводу этого ноутбука , плюс у тебя там было кз ты его у брал ,
Вы не можете просматривать внешние ссылки, вам необходимо зарегистрироваться или войти
-
zamena_led, случайно греешь не рядом с хабом и флехой ?
-
поменяй входные ключи для начало, потом посмотри вход чарджера +19 нормально напруги ее проверь, по B+ скачет напруга или нет и вообще на каких скачет, биос прошить ОБЯЗАТЕЛЬНО, не шьется , меняй флешку, проблема считывание если, убери галочки чтение ID и будет норм
-
- Мой мир
- Вконтакте
- Одноклассники
- Статус темы:
-
Закрыта.
;
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
brettatoms opened this issue
Nov 27, 2021
· 4 comments
· Fixed by #88
Comments
Bug report
When running supabase db remote set <url>
it prints the following error:
Describe the bug
See above.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:
- cd <existing project created with supabase 0.12.4>
- Run
supabase start
- Run
supabase db remote set postgresql://...
- Should see error message
Expected behavior
The local database should be linked to the remote database
System information
- OS: macOS
- Version of supabase-js: 1.28.2
- Version of Node.js: 14.16.0
brettatoms
changed the title
Get «Error: conn busy» when running remote set with 0.13.0
Get «Error: conn busy» when running db remote set with 0.13.0
Nov 27, 2021
I am experiencing the same behavior. Thank you for reporting.
I have the same problem; thanks for reporting too.
Context
With an existing project initialized with an older version, trying to upgrade the CLI
What I tried
I tried to remove my supabase
directory and running supabase init
then supabase db remote set
.
I got the same error
Version information
Using v0.15.1
Thanks for reporting! Turns out this happens irrespective of which CLI version the project was initialized with. Let me know if the issue persists.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
brettatoms opened this issue
Nov 27, 2021
· 4 comments
· Fixed by #88
Comments
Bug report
When running supabase db remote set <url>
it prints the following error:
Describe the bug
See above.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:
- cd <existing project created with supabase 0.12.4>
- Run
supabase start
- Run
supabase db remote set postgresql://...
- Should see error message
Expected behavior
The local database should be linked to the remote database
System information
- OS: macOS
- Version of supabase-js: 1.28.2
- Version of Node.js: 14.16.0
brettatoms
changed the title
Get «Error: conn busy» when running remote set with 0.13.0
Get «Error: conn busy» when running db remote set with 0.13.0
Nov 27, 2021
I am experiencing the same behavior. Thank you for reporting.
I have the same problem; thanks for reporting too.
Context
With an existing project initialized with an older version, trying to upgrade the CLI
What I tried
I tried to remove my supabase
directory and running supabase init
then supabase db remote set
.
I got the same error
Version information
Using v0.15.1
Thanks for reporting! Turns out this happens irrespective of which CLI version the project was initialized with. Let me know if the issue persists.
#1
Отправлено 17 декабря 2018 — 16:12
-
- Прохожий
-
Добавил скрипт pawnbots, первая проблема — в игре не работает команда .pbots, в admin.ini себя прописал, вторая проблема — выдаёт кучу ошибок в логе
[16:01:11] [PB] error busy nick 'Santiago_Holloway' [16:01:21] [PB] error busy nick 'Chris_Stalham' [16:01:21] [PB] error busy nick 'Haruma_Takeshi' [16:01:21] [PB] error busy nick 'SneJok_Boss' [16:01:53] [PB] error busy nick 'Tommaso_Orfano' [16:01:53] [PB] error busy nick 'Jora_Sokolov' [16:01:53] [PB] error busy nick 'Tyler_Foretti' [16:01:53] [PB] error busy nick 'Barry_Robles' [16:01:53] > Игрок Aleksandr_Pavlov был кикнут с сервера. [ID: 1][IP: 85.117.111.12] [16:02:14] [connection] 178.206.72.17:64223 requests connection cookie. [16:02:14] [PB] error busy nick 'Enrique_Western' [16:02:14] [PB] error busy nick 'Aptem_Vasilaki' [16:02:15] [connection] incoming connection: 178.206.72.17:64223 id: 3 [16:02:16] [join] Leon_Watson has joined the server (3:178.206.72.17) [16:02:16] OnPlayerConnect [16:02:16] > Игрок Leon_Watson подключился к серверу. [ID: 3][IP: 178.206.72.17] [16:02:35] [PB] error busy nick 'Alex_Shumilovo' [16:02:35] [PB] error busy nick 'Mickey_Desezy' [16:02:35] [PB] error busy nick 'Forrest_Flower' [16:02:45] [PB] error busy nick 'Federico_Wilson' [16:03:04] OnPlayerRequestClass [16:03:07] [PB] error busy nick 'Adrian_Mackenzie' [16:03:07] [PB] error busy nick 'Mike_Oldfild' [16:03:17] [PB] error busy nick 'Angelo_Baldocchi' [16:03:17] [PB] error busy nick 'Nikolay_Dolgonosov' [16:03:18] > Игрок Leon_Watson был кикнут с сервера. [ID: 3][IP: 178.206.72.17] [16:03:28] [PB] error busy nick 'Taylor_Miller' [16:03:28] [PB] error busy nick 'Sergey_Kyporosov' [16:03:38] [PB] error busy nick 'Claudio_Mancini' [16:03:38] [PB] error busy nick 'Sanya_Doms' [16:03:59] [PB] error busy nick 'Cody_Brayan' [16:03:59] [PB] error busy nick 'Radrigis_son' [16:03:59] [PB] error busy nick 'Kevin_Onil' [16:03:59] [PB] error busy nick 'Max_Svarog' [16:04:01] Ошибка сохранёния. [16:04:01] [part] Leon_Watson has left the server (3:0) [16:04:20] [PB] error busy nick 'Timofey_Goncharov' [16:04:31] [PB] error busy nick 'Roberto_Phillips' [16:04:41] [PB] error busy nick 'Ramses_Flipsize' [16:04:52] [PB] error busy nick 'Alexander_Richards' [16:04:52] [PB] error busy nick 'Misha_Sjorak' [16:05:13] [PB] error busy nick 'Mario_Luchano' [16:05:13] [PB] error busy nick 'Lilia_Porter'
Может кто знает решение данных проблем ? Нигде найти не могу.
Сообщение отредактировал azotgen1: 17 декабря 2018 — 16:26
0
#2
Отправлено 17 декабря 2018 — 17:23
-
- Даун какой-то
-
0
#3
Отправлено 17 декабря 2018 — 17:26
-
- Прохожий
-
mxINI (17 декабря 2018 — 17:23) писал:
Ну, такое. Думаю не стоит такие сообщения писать ибо они показывают все ваши знания)
-1
- ← Предыдущая тема
- Вопросы по скриптингу
- Следующая тема →
- Вы не можете создать новую тему
-
Тема закрыта
1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей
[12:39:46] [PB] error busy nick ‘Alexey_Boyko’
[12:40:08] [PB] error busy nick ‘Warrior_Cassado’
[12:40:08] [PB] error busy nick ‘Matteo_Rivero’
[12:40:19] [PB] error busy nick ‘Jack_Backer’
[12:40:29] [PB] error busy nick ‘Rodrigo_Below’
[12:40:29] [PB] error busy nick ‘Jonh_Shakur’
Спойлер
public OnPlayerConnect(playerid)
{
if(ServerRestart[1])
{
SendClientMessage(playerid,0xffcc00ff,»Ñåé÷àñ ïðîèñõîäèò ðåñòàðò ñåðâåðà!»);
SendClientMessage(playerid,0xffcc00ff,»Ïîæàëóéñòà, äîæäèòåñü åãî çàâåðøåíèÿ»);
return KickEx(playerid);
}
SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
for(new pInfo:i; i < pInfo; i ++) PlayerInfo[playerid] = 0;
for(new tempInfo:i; i < tempInfo; i ++) pTemp[playerid] = 0;
PreloadAllAnims(playerid);
GetPlayerName(playerid, PlayerInfo[playerid][pNames], 24);
format(string,sizeof(string),»[A] Èãðîê %s [%i] çàøåë íà ñåðâåð», PlayerInfo[playerid][pNames],playerid);
foreach(Player, i) if(PlayerInfo[bAdmin] >= 1 && GetPVarInt(i, «ConnectInfo»)) SCM(i, COLOR_GREY, string);
GetPlayerIp(playerid,PlayerInfo[playerid][pIP],16);
LoadPlayerDraws(playerid);
Show_RaceTDLocal(playerid);
NewTextDrawsLoad(playerid);
PlayerInfo[playerid][pTime] = unix;
ObjectRemovedBuilding(playerid);
ClearAnimations(playerid);
SetPlayerDataToDefault(playerid);
return 1;
}
Время прочтения
6 мин
Просмотры 44K
Всем доброго времени суток, наверняка многие уже слышали про недавнюю уязвимость в роутерах Mikrotik, позволяющую извлечь пароли всех пользователей. В этой статье я бы хотел подробно показать и разобрать суть данной уязвимости.
Весь материал предоставляется лишь в ознакомительных целях, поэтому кода, эксплуатирующего уязвимость, тут не будет. Если вам не интересно узнать о причинах и внутреннем устройстве той или иной уязвимости, можете не читать дальше.
Начнём
Первое, с чего стоит начать, это анализ трафика между клиентом Winbox и устройством
Winbox — приложение для ОС WIndows, которое в точности повторяет веб-интерфейс и предназначено для администрирования и конфигурирования устройства с Router OS на борту. Поддерживается 2 режима работы, по протоколу TCP и UDP
Перед началом стоит отключить шифрование трафика в Winbox. Делается это следующим образом: нужно включить галочку Tools -> Advanced Mode. После этого интерфейс изменится следующим образом:
Снимаем галочку Secure Mode. Запускаем Wireshark и пробуем авторизоваться на устройстве:
Как можно заметить ниже, после авторизации идёт запрос файла list и затем его содержимое нам полностью передаётся, может показаться, что всё хорошо, но взглянем на самое начало этой сессии:
В самом начале Winbox отправляет точно такой же пакет с запросом файла list:
Рассмотрим его структуру:
- 37010035 — размер пакета
- M2 — константа, обозначающая начало пакета
- 0500ff01 — переменная 0xff0005 в значении True
- 0600ff09 01 — переменная 0xff0006 в значении 1 (Номер передаваемого пакета)
- 0700ff09 07 — переменная 0xff0007 в значении 7 (Открыть файл в режиме чтения)
- 01000021 04 6с967374 — переменная 0x01000001 строка list размером 4 байта (Обычно данная переменная отвечает за название файла)
- 0200ff88 02… 00 — массив 0xff0002 размером 2 элемента
- 0100ff88 02… 00 — массив 0xff0001 размером 2 элемента
В результате реверса протокола, и соответствующих бинарных файлов на стороне клиента и сервера, удалось в большей степени восстановить и понять структуру протокола, по которому Winbox общается с устройством.
Описание протокола NvMessage
Типы полей (Название: Цифровое обозначение)
- u32: 0x08000000
- u32_array: 0x88000000
- string: 0x20000000
- string_array: 0xA0000000
- addr6: 0x18000000
- addr6_array: 0x98000000
- u64: 0x10000000
- u64_array: 0x90000000
- true: 0x00000000
- false: 0x01000000
- bool_array: 0x80000000
- message: 0x28000000
- message_array: 0xA8000000
- raw: 0x30000000
- raw_array: 0xB0000000
- u8: 0x09000000
- be32_array: 0x88000000
Типы ошибок (Название: Цифровое обозначение)
- SYS_TO: 0xFF0001
- STD_UNDOID: 0xFE0006
- STD_DESCR: 0xFE0009
- STD_FINISHED: 0xFE000B
- STD_DYNAMIC: 0xFE0007
- STD_INACTIVE: 0xFE0008
- STD_GETALLID: 0xFE0003
- STD_GETALLNO: 0xFE0004
- STD_NEXTID: 0xFE0005
- STD_ID: 0xFE0001
- STD_OBJS: 0xFE0002
- SYS_ERRNO: 0xFF0008
- SYS_POLICY: 0xFF000B
- SYS_CTRL_ARG: 0xFF000F
- SYS_RADDR6: 0xFF0013
- SYS_CTRL: 0xFF000D
- SYS_ERRSTR: 0xFF0009
- SYS_USER: 0xFF000A
- SYS_STATUS: 0xFF0004
- SYS_FROM: 0xFF0002
- SYS_TYPE: 0xFF0003
- SYS_REQID: 0xFF0006
Значения ошибок (Название: Цифровое обозначение)
- ERROR_FAILED: 0xFE0006
- ERROR_TOOBIG: 0xFE000A
- ERROR_EXISTS: 0xFE0007
- ERROR_NOTALLOWED: 0xFE0009
- ERROR_BUSY: 0xFE000C
- ERROR_UNKNOWN: 0xFE0001
- ERROR_BRKPATH: 0xFE0002
- ERROR_UNKNOWNID: 0xFE0004
- ERROR_UNKNOWNNEXTID: 0xFE000B
- ERROR_TIMEOUT: 0xFE000D
- ERROR_TOOMUCH: 0xFE000E
- ERROR_NOTIMP: 0xFE0003
- ERROR_MISSING: 0xFE0005
- STATUS_OK: 0x01
- STATUS_ERROR: 0x02
Структура полей в пакете
В начале любого поля идёт его тип — 4 байта (3 байта — назначение переменной, об этом позже, 1 байт — непосредственно тип этой переменной) затем длина 1-2 байта и непосредственно значение.
Массивы
Образно массив можно описать следующей структурой:
struct Array {
uint32 type;
uint8 count;
uint32 item1;
uint32 item2;
...
uint8 zero;
}
Тип (4 байта) / Кол-во элементов (1 байт) / Элементы (4 байта) / В завершении байт x00
Строки
Строки не нуль-терминированны, а имеют четко заданную длину:
struct String {
uint32 type;
uint8 length;
char text[length];
}
Числа
Самый простой тип в пакете, его можно представить как тип-значение:
struct u* {
uint32 type;
uint8/32/64 value;
}
В зависимости от типа, значение имеет соответствующую размерность бит.
Булевый тип
Размер поля 4 байта, старший байт отвечает за значение (TrueFalse), младшие 3 байта за назначение переменной
Дополнительно каждый пакет содержит:
- специальные маркеры для обозначения начала пакета
- размер пакета
- маркеты, отвечающие за контроль больших пакетов
Найденные константы
- 0xfe0001 — Содержит идентификатор сессии (1 байт)
- 0xff0006 — Номер отправляемого пакета (1 байт)
- 0xff0007 — Режим доступа к файлу (1 байт)
Режимы доступа к файлу
- 7 — открыть для чтения
- 1 — открыть для записи
- 6 — создание директории
- 4 — выполнить чтение
- 5 — удалить
Теперь зная, как устроен протокол, мы можем произвольно генерировать нужные нам пакеты и смотреть, как на них реагирует девайс.
На стороне устройства, за обработку пакетов отвечает исполняемый файл /nova/bin/mproxy. Так как названия функций не были сохранены, я назвал функцию, которая обрабатывает пакет и принимает решения о том что делать с файлом file_handler(). Взглянем на саму функцию:
P.S. Код который нас будет интересовать отмечен стрелочками.
Шаг 1
При получении пакета на открытие файла для чтения, он начинает обработку с этого блока:
В самом начале из пакета, с помощью функции nv::message::get<nv::string_id>() извлекается название файла.
Далее функция tokenize() разбивает полученную строку на отдельные части, используя в качестве разделителя символ «/«.
Полученный массив строк передаётся в функцию path_filter(), которая проверяет полученный массив строк на наличие «..«, и в случае ошибок возвращает ошибку ERROR_NOTALLOWED (0xFE0009)
P.S. ERROR_NOTALLOWED так же будет получен в ответе, если нет прав доступа к файлу
Если же всё нормально, то к началу названия файла конкатенируется путь, к директории webfig или pckg
Шаг 2
Если всё прошло успешно, открывается файл и его дескриптор сохраняется в глобальный объект.
Если файл открыть не удалось, то в ответе мы получаем ошибку: cannot open source file.
Таким образом, чтобы получить содержимое файла, должно быть соблюдено 3 условия:
- Путь к файлу не содержит «..«;
- Имеются права на доступ к файлу;
- Файл существует и может быть успешно открыт.
Теперь давайте попробуем отправить несколько пакетов для проверки работоспособности этой функции:
$ ./untitled.py -t 192.168.88.1 -f /etc/passwd
Error: SYS_ERRNO => ERROR_FAILED
Error: SYS_ERRSTR => cannot open source file
$ ./untitled.py -t 192.168.88.1 -f /../../../etc/passwd
Error: SYS_ERRNO => ERROR_NOTALLOWED
$ ./untitled.py -t 192.168.88.1 -f //./././././../etc/passwd
Error: SYS_ERRNO => ERROR_FAILED
Error: SYS_ERRSTR => cannot open source file
Так! А вот это уже странно… Мы помним, что ERROR_NOTALLOWED появляется если не прошла проверка в path_filter(), иначе мы бы ещё получили сообщение об отсутствии прав доступа, но в последнем случае, получается, что поиск файла производился в директории верхнего уровня?
Попробуем такой способ:
$ ./untitled.py -t 192.168.88.1 -f //./.././.././../etc/passwd
xvM2����� � 1Enobody:*:99:99:nobody:/tmp:/bin/sh
root::0:0:root:/home/root:/bin/sh
И это сработало. Но почему? Давайте взглянем на код функции path_filter():
По коду отлично видно, что действительно происходит поиск вхождения «.. «, в полученный массив строк. Но дальше самое интересное, я выделил красным этот фрагмент.
Суть этого кода в том, что: Если предыдущий элемент так же является «..«, то проверка считается проваленной. В противном случае — считать, что всё хорошо.
Т.е. чтобы всё сработало, нужно просто чередовать «/./» и «/../» чтобы успешно перемещаться по любым каталогам и спускаться на любой уровень ФС.
Давайте посмотрим, как разработчики Mikrotik это исправили:
Сравнение псевдо-С кода
Теперь выход из цикла проверки происходит при первом же обнаружении «.. «. Правда мне не совсем понятно, зачем добавили проверку вхождения одной точки. А из-за изменения механизма активации пользователя devel, к сожалению, нет возможности посмотреть это в динамике.
Подведём итог
- Router OS без проблем обрабатывает входящие пакеты ещё до авторизации пользователя
- Из-за некорректного фильтра мы получаем доступ к любому файлу
Учитывая предыдущие пункты, мы без проблем можем: создавать, удалять, читать, и записывать файлы, а так же создавать произвольные директории
Так что не удивительно, что имея доступ на чтение любых файлов без авторизации, первым что было сделано, это чтение файла с паролями пользователей. Благо в сети предостаточно информации о том, где он расположен, и как извлечь из него данные.
Так же данная уязвимость может стать отличной заменой для известной ранее возможности активации режима разработчика, ведь перезагружать устройство, делать backuprestore файла конфигурации теперь не нужно.
Как и любая проблема с доступом к интернет-ресурсам, ошибка 503 Service Unavailable («Сервис недоступен») может быть вызвана сбоями как на стороне пользователя, так и на стороне сервера, на котором находится сайт. Поэтому первое, что нужно сделать, если вы столкнулись с таким сообщением при посещении веб-ресурса, попробовать устранить сбой своими силами. Это намного проще и быстрее, чем пытаться донести информацию о возникших сложностях до владельца сайта.
Процедура устранения проблемы со стороны администратора веб-ресурса более сложная, но в большинстве случаев именно неправильные настройки на уровне хостинга или настроек сайта в панели управления CMS приводят к появлению ошибки сервера с кодом 503.
Мощный хостинг в подарок при заказе лицензии 1С-Битрикс
Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год мощного хостинга – специально для сайтов на 1С-Битрикс.
Заказать
Устранение ошибки 503 пользователем
Возникает резонный вопрос: почему бы просто не покинуть проблемный сайт, пусть сами разбираются со своими багами? Это решение очевидное, но не совсем верное. Во-первых, вам может быть очень необходимо посетить именно этот веб-ресурс. Во-вторых, появление сигнала об ошибке доступа может говорить о том, что с вашим браузером, программным обеспечением, компьютером или другими устройствами что-то не в порядке. И тогда это уже ваша проблема, которая может повторяться систематически и при посещении других сайтов. Рассмотрим, что можно сделать самому, чтобы исправить ошибку 503, двигаясь от простого к сложному.
- Обновите вкладку браузера. Это покажется странным, но зачастую такое простое действие приводит к положительному результату. Нажмите клавишу F5 или воспользуйтесь специальной кнопкой в меню браузера.
- Закройте и откройте браузер. Таким образом вы произведете сброс текущей сессии соединения и обновите его. При новом подключении скрипт браузера может не обнаружить ошибку 503, если она была воспринята им ошибочно.
- Стоит убедиться, что сбой не связан именно с вашим компьютером. Это особенно актуально, если ошибки соединения с веб-ресурсами повторяются регулярно и возникают с разными кодировками на других сайтах. Для этого необходимо посетить проблемную страницу с другого устройства и желательно через новое интернет-соединение.
- Зайдите на страницу, выдавшую ошибку 503, используя другой браузер. Вполне вероятно, что дефект возникает из-за некорректных настроек текущего. Если это подтвердится, стоит в них покопаться и найти источник возникновения проблемы. Самое простое, это восстановить настройки по умолчанию.
- Перезагрузка компьютера. Как и любой программный сбой на уровне операционной системы или другого программного обеспечения, он может быть исправлен автоматически при новой загрузке системы.
- Очистка кэша и удаление файлов cookies. В зависимости от настроек конкретного браузера в них может сохраняться много «лишней» информации при обмене web-данными. Операция довольно несложная, но стоит предварительно посмотреть help по данному вопросу, т.к. в каждом браузере она проводится по-разному.
- Перезагрузка сетевого оборудования. Часто сложности при соединении с интернет-ресурсами возникают из-за некорректного поведения ПО на внешних устройствах, через которые вы получаете трафик. Это может быть роутер, раздающий интернет как по кабелю, так и через Wi-Fi. Необходимо отключить соответствующую железку по питанию, т.е. полностью обесточить ее примерно на одну минуту. Если провайдер выдает вам динамический ip-адрес, то произойдет его смена, что тоже может привести к устранению появления ошибки 503.
- Смена DNS-адреса на сервере. Это решение является наиболее сложным для обычного пользователя. В большинстве интернет-соединений используется общедоступный DNS-адрес Google. Изменить его можно через «Панель управления компьютера» в «Центре управления сетями и общим доступом». Данные манипуляции довольно критичны для устойчивой работы интернета на вашем компьютере. Поэтому производить их стоит только тогда, когда вы абсолютно уверены в своей IT-подготовке.
Если ни один из вышеприведенных способов не помог, а достучаться до сайта ну очень нужно, пишите о проблеме в техподдержку данного ресурса, приложив скриншот страницы с кодом и описанием ошибки.
Ошибка 503 может отображаться в разных форматах с дополнительными информативными сообщениями. Появление страницы «503 Service Temporary Unavailable – Сервис временно недоступен» говорит о том, что проблема носит временный характер. В этом случае пользователю рекомендуется не предпринимать никаких действий и просто дождаться, когда доступ восстановится автоматически.
Решение проблем с ошибкой 503 администратором веб-ресурса
При возникновении ошибки 503 Service Unavailable в любом ее проявлении администратор web-ресурса в первую очередь должен разобраться в причине ее появления. Игнорирование данной процедуры по принципу «само пройдет» может привести к тому, что сайт понесет глобальные потери в объеме пользовательского трафика и, как следствие, конверсии. Посетители, регулярно сталкивающиеся с проблемами доступа к определенному ресурсу, очень быстро занесут его в «игнор».
В зависимости от конкретного тарифного плана хостинга каждый сайт имеет ограничения по одновременной обработке запросов, поступающих на сервер от конечных пользователей. Более простые запросы браузеров обрабатываются практически мгновенно, сложные ожидают очереди в порядке их поступления. Количество отложенных запросов лимитировано, при превышении нормы каждый следующий отклоняется. В этом случае посетитель сайта видит на экране сообщение с кодировкой error 503.
Наиболее частые причины возникновения ошибки 503 на стороне сервера
- При получении запроса от пользователя конкретная страница сайта не может установить соединение с базой данных MySQL.
- Некорректная работа плагинов и расширений из-за внутренних ошибок или конфликта между собой.
- Использование недорого хостинга и маломощного сервера приводит к тому, что оборудование не справляется с обработкой входящего трафика.
- Ресурсоемкие скрипты создают дополнительную нагрузку на сервер.
- Задействован почтовый сервис, выполняющий автоматическую рассылку сообщений в большом объеме.
- Соединение с удаленным сервером может привести к замедлению обработки запросов.
- Передача файлов большого объема при помощи PHP-скрипта.
- Значительное количество нерабочих модулей конкретной CMS.
Как видим, решение практически всех проблем, приводящих к появлению ошибки 503, достигается использованием более мощных серверов и высокоскоростного качественного хостинга. Отрицательная сторона этого способа в его затратности. Распределение пользовательского трафика неравномерно по времени, и банальный апгрейд железа не поможет полностью исключить сбои в моменты пиковых нагрузок.
Как избежать появления ошибок 503
Для начала рекомендуется провести статистический анализ через административную панель (снять логи), чтобы понять, какие процессы создают максимальную нагрузку на сервер, и произвести определенные изменения в настройках.
Уменьшение нагрузки на базу данных можно добиться следующими способами:
- Регулярное обновление CMS, которое позволяет оптимизировать работу движка, уменьшить количество багов.
- Установка защиты от ботов и парсеров, которые часто запускаются вашими конкурентами, чтобы создать дополнительную нагрузку на ресурс и тем самым вывести его частично или полностью из строя.
- Уменьшение размера и, если это возможно, количества графических файлов на сайте, а также «тяжелых» таблиц.
- Ввод ограничений на количество одновременных участников в чате.
Оптимизация работы скриптов
- Отключите все лишние плагины и дополнения, кроме тех, которые реально необходимы для бесперебойной работы сайта (кэширование, оптимизация базы данных, создание бэкапов, сжатие изображений).
- Осуществляйте передачу файлов большого объема через FTP, т.к. использование других способов передачи данных приводит к созданию отдельного процесса.
- Осуществляйте массовую почтовую рассылку в моменты отсутствия пиковой нагрузки на сайт, например, ночью или ранним утром.
- При использовании удаленного сервера минимизируйте время ответа и оптимизируйте канал соединения.
- Проверьте наличие проблемных запросов к базе MySQL в файле mysql-slow.log.
Дополнительную нагрузку на сервер, приводящую к появлению ошибки 503, могут создать DDoS-атаки. Защита от них с помощью фильтрации относится к отдельной теме обсуждения.
Следует отметить, что ошибка 503, вызванная перегрузкой серверных мощностей, может пройти сама собой, без внешнего вмешательства. Чтобы понять, произошло ли исправление ситуации, достаточно периодически перезагружать сайт.
Заключение
Ошибка 503 Service Unavailable может возникнуть на любом сайте, управляемом одной из наиболее популярных CMS – WordPress (Вордпресс), Joomla (Джумла), DLE (ДЛЕ) и любой другой, использующей базы данных MySQL. Способов ее решения много, начиная от самых простых на уровне пользователя и заканчивая довольно сложными процедурами, которые должен выполнить администратор сайта.
Буду благодарен, если вы нашли нестандартный подход к устранению сбоя с кодировкой 503 и готовы поделиться своим опытом в комментариях!