Comments 43
Теги доставляют
UFO just landed and posted this here
У них весь функционал внутри бинарника web-сервера (goahead), соответственно и различия тоже только там. Он не GPL, поэтому предоставлять вам его исходники они не обязаны (хотя иногда они случайно попадают в архивы).
На исходники goahead я не претендую. При сборке образа прошивки эти не GPL куски попадают в виде бинарников. Так вот возникает вопрос — где патченный и откомпилированный D-Link'ом goahead бинарник с закрытой уязвимостью (сравнение файлов не показывает отличий)?
Бинарника goahead может и не быть — не обязаны. Судя по всему — его там и нет.
Они вообще не обязаны вам выдавать исходники, из которых можно собрать прошивку; только исходники, из которых можно собрать компоненты прошивки, распространяемые по GPL.
То есть в принципе — они могут вам дать отдельно исходники ядра, отдельно библиотек, отдельно всяких разных используемых GPL-утилит.
Они вообще не обязаны вам выдавать исходники, из которых можно собрать прошивку; только исходники, из которых можно собрать компоненты прошивки, распространяемые по GPL.
То есть в принципе — они могут вам дать отдельно исходники ядра, отдельно библиотек, отдельно всяких разных используемых GPL-утилит.
есть исходники goahead
Листинг goahead-2.1.4
mips-toolchain:/opt/_compare# ls -la 1.08/GPL_Di524up/user/goahead-2.1.4/
итого 976
drwxr-xr-x 12 root root 4096 2014-08-07 12:11.
drwxr-xr-x 32 root root 4096 2014-08-07 12:11…
-rwxr--r-- 1 root root 7102 2014-08-07 12:11 asp.c
-rwxr--r-- 1 root root 25243 2014-08-07 12:11 balloc.c
-rwxr--r-- 1 root root 4415 2014-08-07 12:11 base64.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 CE
-rwxr--r-- 1 root root 10437 2014-08-07 12:11 cgi.c
-rwxr--r-- 1 root root 10831 2014-08-07 12:11 default.c
-rwxr--r-- 1 root root 132760 2014-08-07 12:11 DeviceManagementFramework.pdf
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 ECOS
-rwxr--r-- 1 root root 1422 2014-08-07 12:11 ej.h
-rwxr--r-- 1 root root 7277 2014-08-07 12:11 ejIntrn.h
-rwxr--r-- 1 root root 14608 2014-08-07 12:11 ejlex.c
-rwxr--r-- 1 root root 36542 2014-08-07 12:11 ejparse.c
-rwxr--r-- 1 root root 22834 2014-08-07 12:11 emfdb.c
-rwxr--r-- 1 root root 2818 2014-08-07 12:11 emfdb.h
-rwxr--r-- 1 root root 4055 2014-08-07 12:11 form.c
-rwxr--r-- 1 root root 10268 2014-08-07 12:11 handler.c
-rwxr--r-- 1 root root 4278 2014-08-07 12:11 h.c
-rwxr--r-- 1 root root 13605 2014-08-07 12:11 license.txt
drwxr-xr-x 2 root root 4096 2014-09-16 09:41 LINUX
-rwxr--r-- 1 root root 0 2014-08-07 12:11 log
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 LYNX
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 MACOSX
-rwxr--r-- 1 root root 439 2014-08-07 12:11 Makefile
-rwxr--r-- 1 root root 10545 2014-08-07 12:11 md5c.c
-rwxr--r-- 1 root root 1565 2014-08-07 12:11 md5.h
-rwxr--r-- 1 root root 4090 2014-08-07 12:11 mime.c
-rwxr--r-- 1 root root 16791 2014-08-07 12:11 misc.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 NW
-rw-r--r-- 1 root root 0 2014-08-07 12:11 original
-rwxr--r-- 1 root root 502 2006-03-17 11:38 original Makefile
-rwxr--r-- 1 root root 145612 2014-08-07 12:11 output.c
-rwxr--r-- 1 root root 3032 2014-08-07 12:11 page.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 QNX4
-rwxr--r-- 1 root root 146 2014-08-07 12:11 readme.txt
-rwxr--r-- 1 root root 14560 2014-08-07 12:11 release.htm
-rwxr--r-- 1 root root 13846 2014-08-07 12:11 ringq.c
-rwxr--r-- 1 root root 4161 2014-08-07 12:11 rom.c
-rwxr--r-- 1 root root 6432 2014-08-07 12:11 security.c
-rwxr--r-- 1 root root 17856 2014-08-07 12:11 sock.c
-rwxr--r-- 1 root root 22768 2014-08-07 12:11 sockGen.c
-rwxr--r-- 1 root root 10892 2014-08-07 12:11 sym.c
-rwxr--r-- 1 root root 6046 2014-08-07 12:11 uemf.c
-rwxr--r-- 1 root root 31218 2014-08-07 12:11 uemf.h
-rwxr--r-- 1 root root 31002 2014-08-07 12:11 um.c
-rwxr--r-- 1 root root 4616 2014-08-07 12:11 um.h
-rwxr--r-- 1 root root 16617 2014-08-07 12:11 umui.c
-rwxr--r-- 1 root root 4652 2014-08-07 12:11 url.c
-rwxr--r-- 1 root root 24265 2014-08-07 12:11 value.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 VXWORKS
-rwxr--r-- 1 root root 4540 2014-08-07 12:11 webcomp.c
-rwxr--r-- 1 root root 347 2014-08-07 12:11 webrom.c
-rwxr--r-- 1 root root 72378 2014-08-07 12:11 webs.c
-rwxr--r-- 1 root root 5222 2014-08-07 12:11 websda.c
-rwxr--r-- 1 root root 1101 2014-08-07 12:11 websda.h
-rwxr--r-- 1 root root 10208 2014-08-07 12:11 webs.h
-rwxr--r-- 1 root root 14288 2014-08-07 12:11 websSSL.c
-rwxr--r-- 1 root root 1710 2014-08-07 12:11 websSSL.h
-rwxr--r-- 1 root root 4557 2014-08-07 12:11 websuemf.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 WIN
-rwxr--r-- 1 root root 8616 2014-08-07 12:11 wsIntrn.h
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 www
итого 976
drwxr-xr-x 12 root root 4096 2014-08-07 12:11.
drwxr-xr-x 32 root root 4096 2014-08-07 12:11…
-rwxr--r-- 1 root root 7102 2014-08-07 12:11 asp.c
-rwxr--r-- 1 root root 25243 2014-08-07 12:11 balloc.c
-rwxr--r-- 1 root root 4415 2014-08-07 12:11 base64.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 CE
-rwxr--r-- 1 root root 10437 2014-08-07 12:11 cgi.c
-rwxr--r-- 1 root root 10831 2014-08-07 12:11 default.c
-rwxr--r-- 1 root root 132760 2014-08-07 12:11 DeviceManagementFramework.pdf
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 ECOS
-rwxr--r-- 1 root root 1422 2014-08-07 12:11 ej.h
-rwxr--r-- 1 root root 7277 2014-08-07 12:11 ejIntrn.h
-rwxr--r-- 1 root root 14608 2014-08-07 12:11 ejlex.c
-rwxr--r-- 1 root root 36542 2014-08-07 12:11 ejparse.c
-rwxr--r-- 1 root root 22834 2014-08-07 12:11 emfdb.c
-rwxr--r-- 1 root root 2818 2014-08-07 12:11 emfdb.h
-rwxr--r-- 1 root root 4055 2014-08-07 12:11 form.c
-rwxr--r-- 1 root root 10268 2014-08-07 12:11 handler.c
-rwxr--r-- 1 root root 4278 2014-08-07 12:11 h.c
-rwxr--r-- 1 root root 13605 2014-08-07 12:11 license.txt
drwxr-xr-x 2 root root 4096 2014-09-16 09:41 LINUX
-rwxr--r-- 1 root root 0 2014-08-07 12:11 log
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 LYNX
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 MACOSX
-rwxr--r-- 1 root root 439 2014-08-07 12:11 Makefile
-rwxr--r-- 1 root root 10545 2014-08-07 12:11 md5c.c
-rwxr--r-- 1 root root 1565 2014-08-07 12:11 md5.h
-rwxr--r-- 1 root root 4090 2014-08-07 12:11 mime.c
-rwxr--r-- 1 root root 16791 2014-08-07 12:11 misc.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 NW
-rw-r--r-- 1 root root 0 2014-08-07 12:11 original
-rwxr--r-- 1 root root 502 2006-03-17 11:38 original Makefile
-rwxr--r-- 1 root root 145612 2014-08-07 12:11 output.c
-rwxr--r-- 1 root root 3032 2014-08-07 12:11 page.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 QNX4
-rwxr--r-- 1 root root 146 2014-08-07 12:11 readme.txt
-rwxr--r-- 1 root root 14560 2014-08-07 12:11 release.htm
-rwxr--r-- 1 root root 13846 2014-08-07 12:11 ringq.c
-rwxr--r-- 1 root root 4161 2014-08-07 12:11 rom.c
-rwxr--r-- 1 root root 6432 2014-08-07 12:11 security.c
-rwxr--r-- 1 root root 17856 2014-08-07 12:11 sock.c
-rwxr--r-- 1 root root 22768 2014-08-07 12:11 sockGen.c
-rwxr--r-- 1 root root 10892 2014-08-07 12:11 sym.c
-rwxr--r-- 1 root root 6046 2014-08-07 12:11 uemf.c
-rwxr--r-- 1 root root 31218 2014-08-07 12:11 uemf.h
-rwxr--r-- 1 root root 31002 2014-08-07 12:11 um.c
-rwxr--r-- 1 root root 4616 2014-08-07 12:11 um.h
-rwxr--r-- 1 root root 16617 2014-08-07 12:11 umui.c
-rwxr--r-- 1 root root 4652 2014-08-07 12:11 url.c
-rwxr--r-- 1 root root 24265 2014-08-07 12:11 value.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 VXWORKS
-rwxr--r-- 1 root root 4540 2014-08-07 12:11 webcomp.c
-rwxr--r-- 1 root root 347 2014-08-07 12:11 webrom.c
-rwxr--r-- 1 root root 72378 2014-08-07 12:11 webs.c
-rwxr--r-- 1 root root 5222 2014-08-07 12:11 websda.c
-rwxr--r-- 1 root root 1101 2014-08-07 12:11 websda.h
-rwxr--r-- 1 root root 10208 2014-08-07 12:11 webs.h
-rwxr--r-- 1 root root 14288 2014-08-07 12:11 websSSL.c
-rwxr--r-- 1 root root 1710 2014-08-07 12:11 websSSL.h
-rwxr--r-- 1 root root 4557 2014-08-07 12:11 websuemf.c
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 WIN
-rwxr--r-- 1 root root 8616 2014-08-07 12:11 wsIntrn.h
drwxr-xr-x 2 root root 4096 2014-08-07 12:11 www
О.
grep-ните по ним, есть ли там dlink-специфичные ф-ции. У них бывают исходники одни, а бинарник совсем другой.
grep-ните по ним, есть ли там dlink-специфичные ф-ции. У них бывают исходники одни, а бинарник совсем другой.
Ещё кстати видел когда-то половину исходников.
Поясните пожалуйста, какие вхождения искать?
Попробуйте фрагменты URL.
Если есть информация по уязвимости — попробуйте поискать уязвимый код.
Если есть информация по уязвимости — попробуйте поискать уязвимый код.
Да, похоже все есть.
less /opt/_compare/1.08/GPL_Di524up/user/goahead-2.1.4/www/upnp.asp
less /opt/_compare/1.08/GPL_Di524up/user/goahead-2.1.4/www/upnp.asp
Скрытый текст
UPnP
UPnP Configuration
UPnP Service
<input type=checkbox name=enable value=1 <% asp_upnp(); %> >Enable
UPnP Configuration
UPnP Service
<input type=checkbox name=enable value=1 <% asp_upnp(); %> >Enable
Кстати, вполне может лежать старая версия goahead. Формально — всё соблюдено.
У них это нигде не оговорено. Вот тут есть реальный судебный прецедент. Бинарники должны соответствовать исходному коду.
Правильно, исходники GPL-компонентов должны соответствовать бинарникам. Конкретно по ссылке — у них в плеере изменения в ядры были.
Это, увы, не тот случай.
Это, увы, не тот случай.
Кстати там не только устранение уязвимости было. Взято из Release Note v1.08b2
Note:
1. This FW update is for solving the reported issue from www.devttys0.com
Problems Resolved:
1. Fixed the potential security issue.
2. Fixed the minor PPPoE dial up issue.
По пункту 2 ничего не нашел. Тоже в их бинарниках?
Note:
1. This FW update is for solving the reported issue from www.devttys0.com
Problems Resolved:
1. Fixed the potential security issue.
2. Fixed the minor PPPoE dial up issue.
По пункту 2 ничего не нашел. Тоже в их бинарниках?
А если грепнуть именно alpha_auth_check или xmlset_roodkcableoj28840ybtide?
Да, есть! В не вычищенных логах сборки в опциях.
Вот это меня окончательно убеждает в том, что это не исходники версии 1.08b2 и имеет место подлог.
Лог сборки
/opt/_compare/1.08/GPL_Di524up/user/xsupplicant-1.2.2/config.log:ac_cv_env_CFLAGS_value='-Os -mips1 -msoft-float -fPIC -Dlinux -D__linux__ -Dunix -DEMBED -I/opt/20051017/RealTek865x_062/include -nostdinc -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062 -idirafter /opt/toolchain_mips_nofpu/usr/bin/../lib/gcc-lib/mips-linux-uclibc/3.3.3//include -I/opt/20051017/RealTek865x_062/linux-2.4.x/include -DPRODUCT_NAME="\«DI-724UP+A\»" -DUSB_LED_GPIO_A5 -DDI524UP=1 -DUSER_DEFINE_DAYLIGHT_SAVING=1 -DDONT_TOUCH_TTL -DALOG_NOTICE=224 -DALOG_DROP=216 -DALOG_ATTACK=208 -DALOG_DEBUG=200 -DALOG_SYSACT=192 -DXMLSETC_SEP_CHAR=0x07 -DCONFIG_WIRELESS_CARD_REALTEK=1 -DCONFIG_ALPHA_SMRTNTKY=1 -DUSB_DEVICE=1 -DUSE_PRINTER=1 -DCONFIG_WAN_BIGPOND=1 -I/opt/20051017/RealTek865x_062/user/goahead-2.1.4/LINUX -I/opt/20051017/RealTek865x_062/user/alpha_websrv -I/opt/20051017/RealTek865x_062/user/alpha_websrv/RealTek -I/opt/20051017/RealTek865x_062/user/alpha_websrv/alpha_configapi -DALPHA=1 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_INT64T=1 -DWIRELESS=1 -DPRODUCT_SIGNATURE=0x60420010 -DBACKDOOR_SIGNATURE=0x6042FFFF -DXMLSET_BACKDOOR_USER_AGENT="\«xmlset_roodkcableoj28840ybtide\»" -I.'
/opt/_compare/1.08/GPL_Di524up/user/xsupplicant-1.2.2/config.log:CFLAGS=' -Os -mips1 -msoft-float -fPIC -Dlinux -D__linux__ -Dunix -DEMBED -I/opt/20051017/RealTek865x_062/include -nostdinc -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062 -idirafter /opt/toolchain_mips_nofpu/usr/bin/../lib/gcc-lib/mips-linux-uclibc/3.3.3//include -I/opt/20051017/RealTek865x_062/linux-2.4.x/include -DPRODUCT_NAME="\«DI-724UP+A\»" -DUSB_LED_GPIO_A5 -DDI524UP=1 -DUSER_DEFINE_DAYLIGHT_SAVING=1 -DDONT_TOUCH_TTL -DALOG_NOTICE=224 -DALOG_DROP=216 -DALOG_ATTACK=208 -DALOG_DEBUG=200 -DALOG_SYSACT=192 -DXMLSETC_SEP_CHAR=0x07 -DCONFIG_WIRELESS_CARD_REALTEK=1 -DCONFIG_ALPHA_SMRTNTKY=1 -DUSB_DEVICE=1 -DUSE_PRINTER=1 -DCONFIG_WAN_BIGPOND=1 -I/opt/20051017/RealTek865x_062/user/goahead-2.1.4/LINUX -I/opt/20051017/RealTek865x_062/user/alpha_websrv -I/opt/20051017/RealTek865x_062/user/alpha_websrv/RealTek -I/opt/20051017/RealTek865x_062/user/alpha_websrv/alpha_configapi -DALPHA=1 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_INT64T=1 -DWIRELESS=1 -DPRODUCT_SIGNATURE=0x60420010 -DBACKDOOR_SIGNATURE=0x6042FFFF -DXMLSET_BACKDOOR_USER_AGENT="\«xmlset_roodkcableoj28840ybtide\»" -I. -Wall '
/opt/_compare/1.08/GPL_Di524up/user/xsupplicant-1.2.2/drivers/Makefile:CFLAGS = -Os -mips1 -msoft-float -fPIC -Dlinux -D__linux__ -Dunix -DEMBED -I/opt/20051017/RealTek865x_062/include -nostdinc -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062 -idirafter /opt/toolchain_mips_nofpu/usr/bin/../lib/gcc-lib/mips-linux-uclibc/3.3.3//include -I/opt/20051017/RealTek865x_062/linux-2.4.x/include -DPRODUCT_NAME="\«DI-724UP+A\»" -DUSB_LED_GPIO_A5 -DDI524UP=1 -DUSER_DEFINE_DAYLIGHT_SAVING=1 -DDONT_TOUCH_TTL -DALOG_NOTICE=224 -DALOG_DROP=216 -DALOG_ATTACK=208 -DALOG_DEBUG=200 -DALOG_SYSACT=192 -DXMLSETC_SEP_CHAR=0x07 -DCONFIG_WIRELESS_CARD_REALTEK=1 -DCONFIG_ALPHA_SMRTNTKY=1 -DUSB_DEVICE=1 -DUSE_PRINTER=1 -DCONFIG_WAN_BIGPOND=1 -I/opt/20051017/RealTek865x_062/user/goahead-2.1.4/LINUX -I/opt/20051017/RealTek865x_062/user/alpha_websrv -I/opt/20051017/RealTek865x_062/user/alpha_websrv/RealTek -I/opt/20051017/RealTek865x_062/user/alpha_websrv/alpha_configapi -DALPHA=1 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_INT64T=1 -DWIRELESS=1 -DPRODUCT_SIGNATURE=0x60420010 -DBACKDOOR_SIGNATURE=0x6042FFFF -DXMLSET_BACKDOOR_USER_AGENT="\«xmlset_roodkcableoj28840ybtide\»" -I. -Wall
/opt/_compare/1.08/GPL_Di524up/user/xsupplicant-1.2.2/config.log:CFLAGS=' -Os -mips1 -msoft-float -fPIC -Dlinux -D__linux__ -Dunix -DEMBED -I/opt/20051017/RealTek865x_062/include -nostdinc -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062 -idirafter /opt/toolchain_mips_nofpu/usr/bin/../lib/gcc-lib/mips-linux-uclibc/3.3.3//include -I/opt/20051017/RealTek865x_062/linux-2.4.x/include -DPRODUCT_NAME="\«DI-724UP+A\»" -DUSB_LED_GPIO_A5 -DDI524UP=1 -DUSER_DEFINE_DAYLIGHT_SAVING=1 -DDONT_TOUCH_TTL -DALOG_NOTICE=224 -DALOG_DROP=216 -DALOG_ATTACK=208 -DALOG_DEBUG=200 -DALOG_SYSACT=192 -DXMLSETC_SEP_CHAR=0x07 -DCONFIG_WIRELESS_CARD_REALTEK=1 -DCONFIG_ALPHA_SMRTNTKY=1 -DUSB_DEVICE=1 -DUSE_PRINTER=1 -DCONFIG_WAN_BIGPOND=1 -I/opt/20051017/RealTek865x_062/user/goahead-2.1.4/LINUX -I/opt/20051017/RealTek865x_062/user/alpha_websrv -I/opt/20051017/RealTek865x_062/user/alpha_websrv/RealTek -I/opt/20051017/RealTek865x_062/user/alpha_websrv/alpha_configapi -DALPHA=1 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_INT64T=1 -DWIRELESS=1 -DPRODUCT_SIGNATURE=0x60420010 -DBACKDOOR_SIGNATURE=0x6042FFFF -DXMLSET_BACKDOOR_USER_AGENT="\«xmlset_roodkcableoj28840ybtide\»" -I. -Wall '
/opt/_compare/1.08/GPL_Di524up/user/xsupplicant-1.2.2/drivers/Makefile:CFLAGS = -Os -mips1 -msoft-float -fPIC -Dlinux -D__linux__ -Dunix -DEMBED -I/opt/20051017/RealTek865x_062/include -nostdinc -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062/lib/uClibc/include -I/opt/20051017/RealTek865x_062/lib/libcrypt -I/opt/20051017/RealTek865x_062 -idirafter /opt/toolchain_mips_nofpu/usr/bin/../lib/gcc-lib/mips-linux-uclibc/3.3.3//include -I/opt/20051017/RealTek865x_062/linux-2.4.x/include -DPRODUCT_NAME="\«DI-724UP+A\»" -DUSB_LED_GPIO_A5 -DDI524UP=1 -DUSER_DEFINE_DAYLIGHT_SAVING=1 -DDONT_TOUCH_TTL -DALOG_NOTICE=224 -DALOG_DROP=216 -DALOG_ATTACK=208 -DALOG_DEBUG=200 -DALOG_SYSACT=192 -DXMLSETC_SEP_CHAR=0x07 -DCONFIG_WIRELESS_CARD_REALTEK=1 -DCONFIG_ALPHA_SMRTNTKY=1 -DUSB_DEVICE=1 -DUSE_PRINTER=1 -DCONFIG_WAN_BIGPOND=1 -I/opt/20051017/RealTek865x_062/user/goahead-2.1.4/LINUX -I/opt/20051017/RealTek865x_062/user/alpha_websrv -I/opt/20051017/RealTek865x_062/user/alpha_websrv/RealTek -I/opt/20051017/RealTek865x_062/user/alpha_websrv/alpha_configapi -DALPHA=1 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_INT64T=1 -DWIRELESS=1 -DPRODUCT_SIGNATURE=0x60420010 -DBACKDOOR_SIGNATURE=0x6042FFFF -DXMLSET_BACKDOOR_USER_AGENT="\«xmlset_roodkcableoj28840ybtide\»" -I. -Wall
Вот это меня окончательно убеждает в том, что это не исходники версии 1.08b2 и имеет место подлог.
Если бы для des-3526 сделали открытую прошивку — вот это было бы интересно, но это фантастика :)
Дело даже не в том, что можно добавить функционал — у меня например лежит несколько таких устройств — они при включении загружают прошивку до 100% и висят.
Ну ясное дело, отправлял их в сервис — не ремонтопригодны, правда, пожизненная гарантия, может быть заменили бы… ну в общем разговор не о том.
Можно было бы сделать «отладочную» прошивку и смотреть в логах, на каком этапе происходит сбой запуска свитча.
Дело даже не в том, что можно добавить функционал — у меня например лежит несколько таких устройств — они при включении загружают прошивку до 100% и висят.
Ну ясное дело, отправлял их в сервис — не ремонтопригодны, правда, пожизненная гарантия, может быть заменили бы… ну в общем разговор не о том.
Можно было бы сделать «отладочную» прошивку и смотреть в логах, на каком этапе происходит сбой запуска свитча.
не могу понять автора — в чем принципиальная сложность пересборки ядра альтернативной прошивки против стоковой?
Вы собирали? Можете поделиться опытом??
Да, было такое дело в далеком прошлом (сейчас, в основном, домашним железом занимаюсь по-знакомым в виде «распаковал-включил-сделал настройки из web-ui — пошли на кухню на обмывку», а железок старше 3х лет практически и в глаза не вижу)
Насчет патчей — тут надо смотреть детальнее, почему не собирается как надо… скорее всего просто патчи под очень древнее ядро были заточены (учитывая их дату), а Вы собираете с более новыми.
На самом деле мой вопрос был более риторический — неужели компиляция (если есть из чего) стоковой прошивки устройства проще чем компиляция альтернативной? Я не могу сравнивать, т.к. ни для одной фирменной железки не сталкивался с открытым firmware. Но имел дело с написанием модулей для opensource решений с нуля (от разработки железа)
Кстати, на Хабре есть цикл статей от уважаемого Ariman под названием Миникомпьютер из роутера с OpenWRT, где детально описывается путь от железа до написания драйвера ядра. Немного не по теме, но может будет интересно.
P.S. это задача just for fun или для серьезного применения в рабочем процессе компании? от меня — за рвение к новым знаниям конечно же плюс, но если это для рабочего процесса, то некрофилизм к железу конечно огорчает…
Насчет патчей — тут надо смотреть детальнее, почему не собирается как надо… скорее всего просто патчи под очень древнее ядро были заточены (учитывая их дату), а Вы собираете с более новыми.
На самом деле мой вопрос был более риторический — неужели компиляция (если есть из чего) стоковой прошивки устройства проще чем компиляция альтернативной? Я не могу сравнивать, т.к. ни для одной фирменной железки не сталкивался с открытым firmware. Но имел дело с написанием модулей для opensource решений с нуля (от разработки железа)
Кстати, на Хабре есть цикл статей от уважаемого Ariman под названием Миникомпьютер из роутера с OpenWRT, где детально описывается путь от железа до написания драйвера ядра. Немного не по теме, но может будет интересно.
P.S. это задача just for fun или для серьезного применения в рабочем процессе компании? от меня — за рвение к новым знаниям конечно же плюс, но если это для рабочего процесса, то некрофилизм к железу конечно огорчает…
Спасибо за ссылки на посты, почитаю.
Ядро там версии 2.4, патчи для него. А вот это патчи для 2.6, их тоже пробовал — ошибки при компиляции. Пришлось искать на какую ревизию OpenWRT их накладывать, ибо авторы этого не указывают.
Компиляция стоковой прошивки проще в том смысле, что там кухню для всего этого собирать не надо — есть в комплекте, к тому же какие никакие конфиги ядра и софта прилагаются, не надо их с нуля делать.
По поводу вопроса для чего я это делаю — есть небольшой проект по устройству видео наблюдения на загородном доме, с помощью этого железа хочу реализовать.
Ядро там версии 2.4, патчи для него. А вот это патчи для 2.6, их тоже пробовал — ошибки при компиляции. Пришлось искать на какую ревизию OpenWRT их накладывать, ибо авторы этого не указывают.
Компиляция стоковой прошивки проще в том смысле, что там кухню для всего этого собирать не надо — есть в комплекте, к тому же какие никакие конфиги ядра и софта прилагаются, не надо их с нуля делать.
По поводу вопроса для чего я это делаю — есть небольшой проект по устройству видео наблюдения на загородном доме, с помощью этого железа хочу реализовать.
Есть набор патчей от энтузиастов, добавляющих поддержку железа в OpenWRT, в ветку их не добавили и оно не компилируется так как надо.
UFO just landed and posted this here
Вот кстати интересно, каким образом это все в «правовое русло» вливается? Были же выигранные судебные дела, штрафы, исходники открывали в конечном итоге… Чье внимание на эти проблемы можно обращать?
Драйвера, если это модули ядра, обязаны быть под GPL.
Поэтому, кстати, у nvidia, например, драйвер делится на модуль ядра (который по сути «переходник») и закрытый блоб.
Поэтому, кстати, у nvidia, например, драйвер делится на модуль ядра (который по сути «переходник») и закрытый блоб.
Альтернативные, более функциональные и современные прошивки, такие как OpenWRT или DD-WRT существуют для устройств на таком же процессоре как и у DI-524UP — Realtek RTL8650B
Подскажите, где это дело можно достать. Имеется роутер dlink DIR120 на том-же чипе, но без wifi. Прошивки от DI524UP подходят.
Вот здесь он вроде присутствует в списке поддерживаемых…
У DIR-120 очень много всяких offload-ов в железе. На альтернативных прошивках в плане производительности всё очень грустно.
Вполне себе обычная практика. Allwinner в современных SoC SKD вообще не волнуется, если верить выводам комьюнити для A31 Software-> GPL Violations Ждем такие же SDK для A80 и запасаемся попкорном.
sdk под a80 вышел пару недель назад, там все еще хуже.
http://linux-sunxi.org/A80#GPL_violations
http://linux-sunxi.org/A80#GPL_violations
Спасибо, почитал) Похоже, что pcduino8 и похожие платы будут с blob прошивками на старых linux ядрах и скорее всего без аппаратного ускорения декодирования видео, OpenGL и т.п.
Ну, такой способ апить версии софта очень давно уже известен.
/*Windows '98 source code.*/
/*
TOP SECRET Microsoft© Code
Project: Chicago(tm)
Projected release-date: Summer 1998
*/
#include «win31.h»
#include «win95.h»
#include «evenmore.h»
#include «oldstuff.h»
#include «billrulz.h»
#define INSTALL_HARD
char make_prog_look_big 1600000;
void main()
{
while(!CRASHED)
{
display_copyright_message();
display_bill_rules_message();
do_nothing_loop();
if (first_time_installation)
{
make_50_megabyte_swapfile();
do_nothing_loop();
totally_screw_up_HPFS_file_system();
search_and_destroy_the_rest_of_OS/2();
hang_system();
}
write_something(anything);
display_copyright_message();
do_nothing_loop();
do_some_stuff();
if (still_not_crashed)
{
display_copyright_message();
do_nothing_loop();
basically_run_windows_3.1();
do_nothing_loop();
do_nothing_loop();
}
}
if (detect_cache())
disable_cache();
if (fast_cpu())
{
set_wait_states(lots);
set_mouse(speed, very_slow);
set_mouse(action, jumpy);
set_mouse(reaction, sometimes);
}
/* printf(«Welcome to Windows 3.11»); */
/* printf(«Welcome to Windows 95»); */
printf(«Welcome to Windows 98»);
if (system_ok())
crash(to_dos_prompt);
else
system_memory = open(«a:\swp0001.swp», O_CREATE);
while(something)
{
sleep(5);
get_user_input();
sleep(5);
act_on_user_input();
sleep(5);
}
create_general_protection_fault();
}
/*Windows '98 source code.*/
/*
TOP SECRET Microsoft© Code
Project: Chicago(tm)
Projected release-date: Summer 1998
*/
#include «win31.h»
#include «win95.h»
#include «evenmore.h»
#include «oldstuff.h»
#include «billrulz.h»
#define INSTALL_HARD
char make_prog_look_big 1600000;
void main()
{
while(!CRASHED)
{
display_copyright_message();
display_bill_rules_message();
do_nothing_loop();
if (first_time_installation)
{
make_50_megabyte_swapfile();
do_nothing_loop();
totally_screw_up_HPFS_file_system();
search_and_destroy_the_rest_of_OS/2();
hang_system();
}
write_something(anything);
display_copyright_message();
do_nothing_loop();
do_some_stuff();
if (still_not_crashed)
{
display_copyright_message();
do_nothing_loop();
basically_run_windows_3.1();
do_nothing_loop();
do_nothing_loop();
}
}
if (detect_cache())
disable_cache();
if (fast_cpu())
{
set_wait_states(lots);
set_mouse(speed, very_slow);
set_mouse(action, jumpy);
set_mouse(reaction, sometimes);
}
/* printf(«Welcome to Windows 3.11»); */
/* printf(«Welcome to Windows 95»); */
printf(«Welcome to Windows 98»);
if (system_ok())
crash(to_dos_prompt);
else
system_memory = open(«a:\swp0001.swp», O_CREATE);
while(something)
{
sleep(5);
get_user_input();
sleep(5);
act_on_user_input();
sleep(5);
}
create_general_protection_fault();
}
Sign up to leave a comment.
Как компания D-Link предоставляет исходные коды прошивок