Gammu + Bluetooth

Gammu – софт для работы с телефоном (синхронизация, бэкап данных, доступ к камере телефона, радио и т.д.)
Для получения свежих версий ПО советую добавить репозиторий разработчика:

1
2
deb http://ppa.launchpad.net/nijel/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/nijel/ppa/ubuntu lucid main

В моем случае это версия Ubuntu 10.04 – Lucid. (меняете на свою).
Приведу пример конфига gammu при подключении по bluetooth (тип соединения Serial Port): Читать далее

Posted in Linux | Tagged , , , , | Комментариев нет

DharmaEncoder

dharmaencoder

dharmaencoder


Хочу обратить внимание на этот новый проект под названием DharmaEncoder. Очень удобный энкодер/декодер написанный на python с использованием PyGtk, который в данный момент поддерживает:
- URL
- Full Url
- Base64
- Hex
- MD5 Hash
- SHA1 Hash
- SQL Char String
- Unicode %u00
- и т.д.

Posted in Linux, Программирование | Tagged , | Комментариев нет

Nautilus: конвертируем изображения в JPEG или PNG

topng

topng

Иногда приходится конвертировать изображения с одного формата в другой, основные это JPEG и PNG.
Добавим сценарии в контекстное меню Nautilus при клике правой кнопки на файле.
Читать далее

Posted in Linux, Программирование | Tagged , , , | Комментариев нет

Получаем местонахождение через GPS-инфо в изображении

gps_exif

gps_exif

Многие мобильные телефоны оснащенные GPS навигаторами вставляют информацию о местонахождении в фотографию(т.е. в EXIF).
На написание этого скрипта подвигло выступление одного хакера создавшего сайт мониторинга местоположения через сервис Twitter’a.
В общем для работы скрипта необходимо установить модуль Image::EXIF (sudo cpan -i Image::EXIF), возможно, также придется установить и другой пакет, если первый не будет собираться (sudo cpan -i YAML возможно еще и sudo apt-get install libexif-dev), на выходе получаем собственно сами координаты и название места, где было сделано фото. Читать далее

Posted in Программирование, Уязвимости | Tagged , , , | Комментариев нет

Подключение мобильного интернета в Ubuntu

Для этого нам понадобится bluetooth manager – blueman.
Консольная звонилка wvdial – есть в пакетах sudo apt-get install wvdial.

Первое что делаем – это подключаем телефон в режиме DUN (Dial-Up Network). Пропущу всякие мелочи типа ввода PIN’a, разберетесь сами, ничего сложного.
Далее нам понадобиться создать простой конфиг для wvdial.

1
2
3
4
5
6
7
8
9
[Dialer Defaults]
Modem = /dev/rfcomm0
Init1 = ATZ
Init2 = AT+CGDCONT=1,\"IP\",\"www.djuice.com.ua\"
Phone = *99***1#
Username = 1111
Password = 1111
ISDN = no
New PPPD = yes

Конфиг для ОПСОСа DJuice. Настройки своего оператора думаю найти не сложно на официальном сайте. Читать далее

Posted in Linux | Tagged , , , , , , , | Комментариев нет

Mocp & Conky и обложка к альбому

Chapter [0x01] Для затравки.

mocp conky

mocp conky

Вот к такому виду мы придем в конце этого руководства, как немного облагородить свой рабочий стол (на любителя).
Читать далее

Posted in Linux, Программирование | Tagged , , , | Комментариев нет

RIPS – сканер уязвимостей в PHP приложениях

RIPS-сканер уязвимостей

Сканер предназначен для отслеживания «узких» мест, статичного кода PHP, которые могут быть потенциально опасны,
и использованы для взлома приложения.
RIPS – аббревиатура от pRocess of Identifying Potential Security, что в вольном переводе означает «процесс выявления потенциальной бреши».

Основные возможности сканера RIPS:
- обнаружения XSS, SQL-инъекций, локального и удаленного инклюдинга файлов
- 5 уровней вывода отладочной информации при сканировании
- подсветка уязвимого участка кода
- создание эксплоитов в пару кликов (на основе CURL)
- семь различных цветовых тем для подсветки синтаксиса

Скачать сканер можно здесь -> http://sourceforge.net/projects/rips-scanner/

Posted in Программирование, Уязвимости | Tagged , , , | Комментариев нет

API ПриватБанка: Получаем список банкоматов

Написал небольшую функция для получения списка банкоматов ПриватБанка в конкретном городе. Делаем запрос на получение XML списка, который содержит в себе название объекта и его местоположение (улицу), потом парсим это дело и загоняем все в массив для дальнейших каких-то действий(каких зависит от ваших потребностей).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
// get_atm.php //
function get_atm($city) {
   
        $city = urlencode($city);
        $url = "https://privat24.privatbank.ua/p24/accountorder?oper=prp&atm&address=&city=$city&PUREXML=";
       
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);       
        $rez = curl_exec($ch);
        curl_close($ch);
       
        $dom = new DomDocument('1.0','UTF-8');
        $dom->loadXML($rez);
        $xpath = new DOMXPath($dom);
       
        $result = $xpath->query('//atm');
       
        $rezl = array();
       
        for ($i=0;$i<$result->length;$i++) {
            $atm = $result->item($i);
            $atm_mas = array();
            $atm_mas['name'] = $atm->getAttribute('name_RU');
            $atm_mas['address'] = $atm->getAttribute('address_RU');
            $rezl[] = $atm_mas;
        }
       
        return $rezl;      
}
print_r(get_atm($argv['1']));
?>

Писал под консольный вариант, поэтому чтоб запустить пример запускаем с параметром, а именно так:

1
php get_atm.php 'Киев'
Posted in Программирование | Tagged , , , , , | Комментариев нет

Комплексные числа: основные мат. действие на C(Си)

Другу дали задание написать простенькую программку на любом языке программирования, которая будет делать основные математические действия с комплексными числами (сложение, вычитание, умножение и деление двух чисел), т.к. ему немного было лень писать, то попросил меня, благо делов 5 минут.
Для этого создадим первый файл (complex.h) который будет содержать объявления нового типа данных и его структуру.

1
2
3
4
typedef struct
    {
     double a,b;
    } complex_t;

Вот такой вот простенький хидер.
Теперь создадим основной файл и назовем его complex.c, в который поместим описание функций основным математических действий, над комплексными числами, в коде даны комментарии, так что тут больше описывать нечего.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include "complex.h" // заголовочный файл для работы с к.ч

complex_t add(complex_t x, complex_t y) // ф-ция сложения к.ч.
 {
     complex_t t;
     t.a = x.a + y.a;
     t.b = x.b + y.b;
     return t;
 }
 
complex_t sub(complex_t x, complex_t y) // ф-ция вычитания к.ч.
 {
     complex_t t;
     t.a = x.a - y.a;
     t.b = x.b - y.b;
     return t;
 }
 
 complex_t mul(complex_t x, complex_t y) // ф-ция умножения к.ч.
 {
     complex_t t;
     t.a = x.a * y.a - x.b * y.b;
     t.b = x.a * y.b + x.b * y.a;
     return t;
 }
 
 complex_t div(complex_t x, complex_t y) // ф-ция деления к.ч.
 {
     complex_t t;
     t.a = (x.a * y.a + x.b * y.b)/(y.a*y.a+y.b*y.b);
     t.b = (x.a * y.b - x.b * y.a)/(y.a*y.a+y.b*y.b);
     return t;
 }

 
int main()
 {
     double a1,b1,a2,b2;
     printf ("Введите 4 числа: \n");
     while(scanf ("%lf%lf%lf%lf", &a1,&b1,&a2,&b2) == 4) {
     complex_t x = {a1,b1}; // первое к.ч.
     complex_t y = {a2,b2}; // второе к.ч.
     complex_t a = add(x,y); // сумма к.ч.
     complex_t s = sub(x,y); // вычитание к.ч.
     complex_t m = mul(x,y); // умножение к.ч.
     complex_t d = div(x,y); // деление к.ч.
     printf ("a = (%5.2lf, %5.2lfi)\n", a.a, a.b ); // результат суммирования
     printf ("s = (%5.2lf, %5.2lfi)\n", s.a, s.b ); // результат вычитания
     printf ("m = (%5.2lf, %5.2lfi)\n", m.a, m.b ); // результат умножения
     printf ("d = (%5.2lf, %5.2lfi)\n", d.a, d.b ); // результат деления
        return 0;  
     }
     return 0;
 }

Код простой, но может пригодиться какому-то ленивому студенту-заочнику, потому что на дневном такое должны знать как моряк азбуку Морзе :) .
Удачи в программирование.

Posted in Программирование | Tagged , | Комментариев нет

Ubuntu 10.04 на ноутбуке (Die Hard Mode OFF)

Имея ноут DELL Vostro 1015 с Ubuntu на борту, стал замечать треск жесткого диска (hard driver) при работе от батареи, после обновления на 10.04.

Вызвано тем что был включен мод контроля жесткого диска в режиме работы от аккумулятора.

Отключаем эту фичу совсем, потому что убьет жесткий диск намного быстрей.

Открываем файлик в любом текстовом редакторе под рутом /etc/laptop-mode/laptop-mode.conf, находим следующую строку

ENABLE_LAPTOP_MODE_ON_BATTERY и присваиваем ей значение равное 0 (нулю).

В итоге должна иметь следующий вид:

1
ENABLE_LAPTOP_MODE_ON_BATTERY=0
Posted in Linux | Tagged , , , , , , | Комментариев нет

3Proxy – Анонимный прокси!

3Proxy – очень хороший, маленький прокси-сервер. Делаем его полностью анонимным, легким движением руки (можно все задать и через опции, но мне как то, так спокойней), подкорректировав proxy.c в дире src/.
Задав значение переменной anonymous.

1
2
int anonymous = 1;                 //(222 строка)
//anonymous = param->srv->singlepacket;  //(238 строка)

Теперь нужно только собрать все.

1
make -f Makefile.Linux

После этого смело заходим, к примеру, на http://www.leader.ru/secure/who.html и смотрим, что идет «прямое» соединение и никаких прокси.

Posted in Linux, Программирование | Tagged , , , | Комментариев нет

C++ & PCRE & Вконтакте + Музыка

Набросок парсера для получения ссылок на музыкальные произведения и их названия, в социальной сети ВКонтакте.
Возможно будет в дальнейшем использован в VKFS (Файловая Системы Вконтакте.)
Читать далее

Posted in Программирование | Tagged , , , | Один комментарий