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

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

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

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

Lotus Analyzer V1.6

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
рву себя на части, список условий что еще нужно проверить уже превышает 50
сам у себя нашел свыше 600 ошибок
вот к чему приводит попытка дать оценку самому себе ;)
думаю к концу недели дам новую версию
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
гоняю шаблон StdR6Mail
на предмет лишних процедур/функций и несколько офигел...
Анализатор выплевывает:
form: (Out Of Office Profile) - Лишние процедуры/функции: Click, Postopen, Queryclose, Exiting
(такое там чуть ли не в каждой 5-й форме)

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

Теперь думаю что за нафиг....
Возникло три варианта:
1) ИБМовцы ПЯ пишут не в дезайне а лишь потом его туда импортят
2) это так косячит апргрейт ПЯ с одного шаблона на другой...
3) индусы....
особенно меня убил Click откуда такой евент у формы, он указан и в глобале формы и как липовый евент...

начинаю тихонько понимать почему так глючат ПЯ...
 
K

Klido

начинаю тихонько понимать почему так глючат ПЯ
я это начал понимать сразу как только залез править согласно рекомендациям работу почтовых правил :)
а с учетом того, что шаблоны тоже идут 6.х.х и т.д - становится местами страшно даже :) хотя это в соседнюю тему про любовь к лотусу :)
 
T

TIA

В данном случае эвент формы это такая же LS-функция, как и все остальные и ничто не мешает функции называть Click и PostOpen. Что тут удивительного - что это мусор? Так где его нет!
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
В данном случае эвент формы это такая же LS-функция, как и все остальные и ничто не мешает функции называть Click и PostOpen. Что тут удивительного - что это мусор? Так где его нет!
не в названии речь, а в том что такие дубликаты называют в глобале формы, которые из-за своего "глобал" статуса уже являются первоочередными
это равносильно если у вас есть глобальная переменная и такая же внутри функции - одноименные и "логика кода" будет весьма забавная...не говоря уже о попытке потом это разребсти и отловить баг
 
K

Kee_Keekkenen

анализатор некорректно определяет факт использования переменных объявленных в Declarations
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
анализатор некорректно определяет факт использования переменных объявленных в Declarations
как-то поподробнее можно?
кусок строки где обьявлена переменная и где она используется
как по мне в декларах переменные лишь обьявляются, а используются они обычно внутри функций/процедур
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Версия 1.1 - 24.07.2009
- исправлено когда файловый указатель считался не использованной переменной
- исправлено когда переменная не виделась в условии: цикла loop var, execute (dim var...)
- анализ используется ли библиотека где либо в базе
- добавлена обработка ошибки если елемент дизайна не удается обработать DXML экспортером
- теперь обьекты типа кнопок/полей/хотспот в формах/подформах/видах воспринимаются как отдельные обьекты и анализируются более корректно
- анализируются поля/кнопки/хотспоты содержащие в себе LS
- анализируются "невидимые" хотспоты - те у которых текст позднее был стерт и они не видны в дизайне, но присутствуют
- анализ используется ли локальная процедура/функция в данном элементе дизайна
- добавлена возможность не протоколировать выбранные ошибки
- добавлена возможность очистить протокол
- в утилиту добавлены скрытые "тестовые" ошибки, чтобы можно было протестировать всё на ней - Demo режим
- по умолчанию сервер/база указывают на утилиту
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
7.0.2ru
на некоторых базах вываливается окошко с ошибкой "DOM parser operation failed!"

оценить не могу. я на таком уровне некопенгаген :(
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
7.0.2ru
на некоторых базах вываливается окошко с ошибкой "DOM parser operation failed!"
значит базы не парсятся :(

может скрытый дизайн?
можете кинуть мне такую базку?
 
K

Kee_Keekkenen

как-то поподробнее можно?
кусок строки где обьявлена переменная и где она используется
как по мне в декларах переменные лишь обьявляются, а используются они обычно внутри функций/процедур
в деларашенс объявлены переменные, используются в разных функциях, но анализатор говорит что они не используются..
дело происходит в агенте..
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
в деларашенс объявлены переменные, используются в разных функциях, но анализатор говорит что они не используются..
дело происходит в агенте..
экспорт агента пожалуйста, мне нужен сам код, чтобы самому его прогнать, всё лишнее можете вырезать, мне нужно обьявление переменные и строчки в которые они точно "используются"
 
K

Kee_Keekkenen

экспорт агента пожалуйста, мне нужен сам код, чтобы самому его прогнать, всё лишнее можете вырезать, мне нужно обьявление переменные и строчки в которые они точно "используются"
вот собственно.. кстати агент не выгружается в синопсис, исходник у него большой - на два поля в документе агента разложен
Код:
Option Public
Option Declare

Dim session As NotesSession
Dim ISWINDOWS As Boolean, ISARCH As Boolean, ISUNIX As Boolean

Sub Initialize

Set session = New NotesSession	

' проверка рабочей платформы
If Not checkPlatform(session) Then	
errorType = 1
'Call createErrorLog()	
Exit Sub
End If

End sub

Function checkPlatform( ses As NotesSession) As Boolean
try:
On Error Goto catch
If Instr(Lcase(ses.Platform), "windows")>0 Then 
checkPlatform = True
ISWINDOWS = True 
SLASH = WSLASH
Elseif Instr(Lcase(ses.Platform), "unix")>0 Then 
checkPlatform = True
ISUNIX = True 
SLASH = USLASH
Else
''			
End If
Exit Function	
catch:
''
Exit Function
End Function

Function checkFile(filePath As String) As Boolean	
Dim attr As Integer
try:
On Error Goto catch			
If ISWINDOWS Then		
''
Elseif ISUNIX Then				
''
End If		
Exit Function 
catch:			
Exit Function
End Function
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
по агенту:

Лишние процедуры/функции: checkFile
checkFile - содержит лишние переменные: attr
Global Declarations - содержит лишние переменные: isarch

в данном примере isarch нигде не используется, и всё работает правильно ;)
 
O

Omh

Версия 1.1 - гораздо меньше ложных срабатываний.

Есть один случай, не знаю есть ли смысл для него делать затычку:
как известно Shell всегда просит возвращать результат в переменную.
Т.е. нельзя делать так:
Код:
Call Shell(CmdLine, 1)
а приходится делать так
Код:
Dim i As Integer
i = Shell(CmdLine, 1)
зачастую эта i потом больше не используется, и логично, что анализатор говорит, что она лишняя, но, на самом деле, она не совсем лишняя.
Точнее совсем не лишняя ;)

Случай дурацкий, так что сам смотри, стоит ли для него делать закладку...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
а ты вот так напиши
Код:
Dim i As Integer
i = Shell(CmdLine, i)
будет одновременное её присваивание и использование ;)
хотя согласен, что поправильному нужно ставить на неё затычку
 
O

Omh

У Shell второй параметр - режим окна.
Не годится туда i тыкать ;)
-------------------
По хотспотам: я тут тоже ковыряюсь с анализом DXL довольно давно и тоже обрабатываю хотспоты.
Как я вижу, ты хотспотам в качеств id присваиваешь просто порядковый номер в пределах, наверно, дизайн-элемента.
Но на самом деле для хотспота тоже можно вытащит довольно много инфы: текст (если хотспот - выделенный текст), имя поля (если поле), надпись на кнопке (если кнопка) и т.д.
Если хошь могу поделится ф-ей :)
-------------------
И ещё один случай:
Код:
Function ToStringArray(Some As Variant, RetArray() As String) As Boolean
'RetArray - является переменной, которую я заполняю в ф-ии
...
Redim RetArray(Ubnd) As String	'тут я её какбэ обнуляю
...
'тут я заполняю retArray из Some
...
ToStringArray = True
End Function
Говорит, что retArray - лишняя переменная.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
По хотспотам: я тут тоже ковыряюсь с анализом DXL довольно давно и тоже обрабатываю хотспоты.
Как я вижу, ты хотспотам в качеств id присваиваешь просто порядковый номер в пределах, наверно, дизайн-элемента.
если у хотспота есть текст я его вытягиваю, но хотспот может лежать поверх рисунка ;)

Говорит, что retArray - лишняя переменная.
да, нужно будет подумать о таком варианте...
 
Мы в соцсетях:

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