• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus и Jabber

  • Автор темы motogarri
  • Дата начала
M

motogarri

Привет. Может сталкивался кто... Есть ли библиотеки для работы с XMPP, которые можно было бы заюзать в лотусскрипте? Нашел одно jabberCom, но что-то не заработала у меня. Кто-нибудь использовал?
Или может есть проще способы программной отправки сообщений на жабер из виндовса?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
я уж и не знаю - что делать, чтобы достучаться до сознания виндолюбов!? :D
может хватит уже мыслить категориями одной системы и начать пользоваться поиском и разумом? ;)

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

после недолгого раздумья и анализа существующих ср-в интеграции и удобства (простоты) использования - выбрать либу...
выполняем link removed
получаем сцылко
удивляемся но недолго..., наличие java в платформе LDN наталкивает на мысль..., не ну - если на сях и виндовз-онли, шобы потомки плевались - можно извращаться, или прикручивать КОМу на кажном клиенте - тоже есть любители нетрадиционного секаса (причём - с неодушевлённой виндой)

Для вторичного анализа либ надо задуматься об их "свежести" - ну типа пройтись по цайтам (сцылкам, как это и рекомендовано - черным по англицки)
ну например вот попалась
там всё с шахматами и поэтессами... и ужос как сложное подключение
 
M

motogarri

Был в гугле)) Два дня потратил на изучение и попытки прикрутить jabberCom.dll. Плюнул. За ссылки спасибо, буду копаться, потом отпишу, что и как, если кому еще пригодиться.

может хватит уже мыслить категориями одно системы
Пока некуда деватсо))
 
C

Caspiy

Тема интересная, тоже собирался заморочиться в скорости!!
Вопрос пару месяцев назад штудировал, из бесплатных ИМХО самоя норм библиотека - это как и писал lmike - Java'вский SMACK.
Но учитывая качество их клиента (Spark), кажется, что продукт ОЧЕНЬ сырой.
Зато есть и радостные обстоятельства - этот же разработчик выпускает один из самых популярных Jabber серверов - Open Fire
 
M

motogarri

Более-менее разобрался с smack. Подходит для моих целей (отправка сообщений), нормально работает. Делал так:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Java-библиотека</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>import javax.swing.JFrame;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.packet.Message;

public class MessageTo {

public void NotesMain(String sendTo, String bodyOfMessage) {

Chat chat = null;
String[]arrSendTo = sendTo.split("~");

try {
SASLAuthentication.supportSASLMechanism("PLAIN");

ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.1", 5222, "jabber.ru");
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
connection.login("name", "pass");

Thread.currentThread();
Thread.sleep(2000);

for(int i = 0; i <= arrSendTo.length - 1; i++)
{
chat = connection.getChatManager().createChat(arrSendTo, new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("Received message: " + message);
}
});

chat.sendMessage(bodyOfMessage);
}

} catch(Exception e) {
e.printStackTrace();
}
}
}[/CODE]
И использование из
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">агента на Lotusscript</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='ls'>Option Public
Option Declare

UseLSX "*javacon"
Use "MessageTo"

Sub Initialize()

Dim javaSession As JavaSession
Dim messageTo As JavaClass
Dim messageObject As JavaObject

Dim a As Variant
Dim strNames() As string

'Инициализация Java-класса
Set javaSession = New JavaSession()
Set messageTo = javaSession.GetClass("MessageTo")
Set messageObject = messageTo.CreateObject

'Передается строка с именами через разделитель для сплита в джава-коде
strNames = "name1@jabber.ru" & "~" & "name2@jabber.ru"
a = messageObject.NotesMain(arrNames, "Сообщение из лотусскрипта")

End Sub[/CODE]
Товарищи, совсем все плохо у меня с жавой, подскажите плиз, как в моем случае передать массив строк в жава-класс. И как сделать паузу между коннектом к серверу и отправкой сообщения? Без этого не работает. Я так понимаю, сообщение отправляется быстрее, чем происходит авторизация на сервере.
 
M

motogarri

Сейчас, при попытке передать массив выскакивает ошибка "LS2J Error: Parameter mismatch calling java method. NotesMain". Когда передаю строку, то все нормально проходит.
 
N

nvyush

как в моем случае передать массив строк в жава-класс
См. в справке дизайнера JavaClass class -> CreateObject и GetMethod
Например:
JNI Signature Description Examples Constructor requires
[<sigtype> Array of <sigtype> ([I)V An int array

Также можно передать в агент NoteID служебного документа с необходимыми данными.

Добавлено
И использование из агента на Lotusscript
А не проще ли и агента написать на Java?
 
M

motogarri

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

Из справки понял только то, что кроме (I)V An int array других массивов не передать. Так и есть или я не так понял?
 
N

nvyush

Переписать приведённого Вами LS агента на Java — 5 минут, причём половину кода сгенерит сам Lotus. Передать из LS в Java можно только массив простых типов. В принципе ничто не мешает Вам объединить элементы массива в одну строку через разделитель, а в Java разбить обратно.
 
M

motogarri

Ну этот агент, что здесь это просто тест)) Вот блин засада с массивами.
В принципе ничто не мешает Вам объединить элементы массива в одну строку через разделитель, а в Java разбить обратно.
Угу, я что-то и не подумал про сплиты с джойнами. Попробую если ограничение по кол-ву символов не помешает.

Добавлено:
если ограничение по кол-ву символов не помешает.
Да, понял, фигню сказал...
 
M

motogarri

Все, теперь все работает. Сообщения уходят и на один адрес и на список адресов. Спасибо, что толкнули в нужную сторону, помогли разобраться, всем мешок пряников))

п.с. Подредактировал примерчик в посте №5. Теперь пример рабочий, если кому надо.
 
M

motogarri

Работает для восьмерки, а вот на 6.5.5 говорит:


Там версия JVM 1.3. Это надо искать более старинную либу?
 
M

motogarri

А можно ли обновить версию JVM в клиенте или сервере не меняя версии лотуса? В 1.3 даже split не пашет.
 
M

motogarri

Нашел смак постарше 1.5.0. Под шестерку работает, но там различаются некоторые классы и методы. Все даже проще чем в новой, но документации по ней ноль, так что пришлось поразбираться. Вот, если кому надо будет,
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>import org.jivesoftware.smack.*;
import org.jivesoftware.smack.packet.*;

public class MessageTo {

public void NotesMain(String sendTo, String bodyOfMessage) {

Chat chat = null;

try {

XMPPConnection connection = new XMPPConnection("server");
connection.login("name", "password", Long.toString(System.currentTimeMillis()));

chat = connection.createChat(sendTo);
chat.sendMessage(bodyOfMessage);

Message message = chat.nextMessage(5000);

System.out.println("Returned message: " + (message == null ? "<timed out>" : message.getBody()));

} catch(Exception e) {
e.printStackTrace();
}
}
}[/CODE]
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
массивы передаются, НО только "статические", LS->java, в обратную сторону нет такого ограничения
статический - это с неизменяемыми границами (после объявления)
теперь по массивам в LS - онж не с нуля существуют - передавайте элементы в java и там формируйте ArrayList, а обратно выводите toArray (луча как String[]) я выкладывал примеры
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!