@Linda-chan

Тег vb6 в блоге Linda-chan

Linda-chan

The following table contains possible examples of msvbvm60.dll being misused. While msvbvm60.dll is not inherently malicious, its legitimate functionality can be abused for malicious purposes.

https://strontic.github.io/...FD729C662C8DB1E.html
Как? Написанием вредоносной программы на VB, которая по дизайну будет использовать эти функции?

Linda-chan

Reverse engineering VB binaries will often involve reverse engineering VB internals for various VB APIs, a task dreaded by many. The entry point of a VB program diverts from the typical C/C++ or even Borland Delphi binary. There is no mainCRTStartup or WinMainCRTStartup function that initializes the C runtime and calls the developer defined main or WinMain function.

https://blog.talosintellige...cally-loaded-api-in/ https://blog.talosintelligence.com/discovering-dynamically-loaded-api-in/#%3a~%3atext=Reverse%20engineering%20VB,or%20WinMain%20function.
Очевидное невероятное: программы, написанные на VB используют рантайм VB, а не рантайм C/C++, и не вызывают функции из рантайма C/C++!

Linda-chan

Не, я знаю, что For Each, не смотря на использование варианта, работает быстрее, чем просто For с индексом, но чтобы настолько... Коллекция, 240 тысяч элементов типа Long, с которым в цикле производятся действия (коллекция перегоняется в массив). For с индексом пережёвывает коллекцию за тридцать-сорок секунд. For Each проносится по коллекции за 0.12 секунд.

Linda-chan

Я тут пишу кое-что, и снова столкнулась с такими мерзкими, но неизбежными вещами, как байтовые буферы, в том числе запихнутые в строки. Всвязи с чем два наблюдения.
1. У VB нет встроенных механизмов, чтобы скопировать часть одного байтового буфера в другой. CopyMemory().
2. Строки в VB – юникодные, но могут быть ANSI, если хорошо попросить. Понять, в каком формате строка, очень трудно, но сам VB знает, что там внутри.

Linda-chan

Оказалось, что неразрывный пробел считается валидным символом в именах в VB6. Тоесть можно делать переменные, функции, константы с именами вида «Do It Already()».

Linda-chan

Пилю модуль со строковыми функциями в стиле VB6. В качестве упражнения и безболезненного погружения. Сначала хотела стандартный класс переопределить, но потом решила не делать этого. Собственно, узнала кое-что новое про сами VB функции. Например, в Replace() есть параметр Start, который по идее только сообщает с какого символа начинать поиск и замену, а на деле (и это задокументировано!) срезает всё, что было до этого символа. Я прямо в шоке, всегда думала, что активно использую этот параметр, ан нет, видать, ни разу не использовала.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.