Форум программистов, компьютерный форум, киберфорум
Наши страницы

Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel - VBA

Войти
Регистрация
Восстановить пароль
Рейтинг: 2.33. Голосов: 3.

Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel - VBA

Запись от bedvit размещена 31.10.2017 в 10:32
Обновил(-а) bedvit 24.11.2017 в 20:12 (Новая версия продукта Loader_02)

В продолжении темы и темы.
Получилось просто и вполне удобно, решил сохранить в блоге. В дальнейшем возможно развитие, новые алгоритмы и новые версии.
Кратко: Хранение файлов и простенький файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив)

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

Функционал:
1.Загрузка любых файлов (в т.ч. архивов, которые можно распаковать автоматом при выгрузке)
2.Просмотр загруженных (имя, размер), при удалении, выгрузке.
3.Удаление
4.Выгрузка с параметрами (папка, файл, распаковка из zip (архиватор не нужен, средствами винды), открыть файл после выгрузки, перезаписать еще раз при распаковке)
Все эти параметры Optional, если их нет выполняется с параметрами по умолчанию (распаковка в пользовательский "TEMP")

Все исходники и пример прилагаю (с авто-распаковкой библиотеки из zip-архива и её запуска при открытии файла, распаковать .zip - открыть .xlsb)
В загруженных файлах секретных данных и вирусов нет.

P.S.
Отдельная благодарность! Андрей VG, за любезно предоставленные алгоритмы, которые были несколько доработаны и дополнены для этих целей.

21/11/2017 Обновление версии: Loader_02
1.Процедуры переписаны в функции, которые возвращают при успешном выполнении, количество загруженных, удаленных, выгруженных файлов.
2.Добавлена пакетная загрузка файлов (выгрузка и удаление всех файлов уже было в первой версии) с корректным счетчиком.
3.Добавлено описание к коду и аргументам функций.
4.Добавлен запуск файлов как "приложением по умолчанию" так и через Excel.
5.Добавлен обработчик ошибок, с выводом сообщений об ошибке.
6.Добавлен запрос/вопрос пользователю на перезапись выгружаемых и загружаемых файлов, если они уже есть.
Вложения
Тип файла: zip Loader.zip (84.8 Кб, 127 просмотров)
Тип файла: zip Loader_02.zip (86.6 Кб, 10 просмотров)
Размещено в Без категории
Просмотров 519 Комментарии 20
Всего комментариев 20

Комментарии

  1. Старый комментарий
    Аватар для Usaga
    Простите, но зачем?..
    Запись от Usaga размещена 31.10.2017 в 11:06 Usaga на форуме
  2. Старый комментарий
    Аватар для bedvit
    К примеру для хранение библиотек (функций написанных на C/C++). Если вы посмотрите, то увидите в файле функцию RusLetter. Механизм: автоматом распаковывается надстройка/библиотека - RusLetterx64.xll написанная на С, с функцией RusLetter, которая автоматом добавляется в стандартные функции Excel и используется так же как и стандартные функции.
    Запись от bedvit размещена 31.10.2017 в 11:39 bedvit вне форума
  3. Старый комментарий
    Аватар для Avazart
    А вас ничего не настораживает в том что exe и dll хранится зашивается в excel ?
    Запись от Avazart размещена 31.10.2017 в 17:41 Avazart на форуме
  4. Старый комментарий
    Аватар для bedvit
    Вообщем-то любой файл или переменная, через байт массив, может хранится. Пока не настораживает, но если вы поделитесь опасениями я постараюсь насторожится... и взглянуть с вашей точки зрения.
    Запись от bedvit размещена 31.10.2017 в 18:23 bedvit вне форума
  5. Старый комментарий
    Аватар для Rius
    bedvit у вас получилось хорошее средство для распространения вредоносного кода на предприятиях.
    Запись от Rius размещена 01.11.2017 в 06:41 Rius на форуме
  6. Старый комментарий
    Аватар для bedvit
    Rius, спасибо за оценку. Но, к сожалению, не опаснее чем обычный код на VBA.
    Запись от bedvit размещена 01.11.2017 в 09:58 bedvit вне форума
  7. Старый комментарий
    Аватар для Rius
    VBA поэтому тоже отключают. Но его хотя бы можно просмотреть в режиме разработчика. А вот PE файлы не просмотришь. А если их код написан специально, то и антивирус не определит.
    Пользователи таких документов приучатся разрешать выполнение. Потом какой-нибудь нехороший человек меняет вложенный файл, другой на другом компе запускает и всё, добро пожаловать, шифровальщики.
    Запись от Rius размещена 01.11.2017 в 10:10 Rius на форуме
  8. Старый комментарий
    Аватар для bedvit
    Rius, ваше сообщение поспособствовало несколько задуматься, поскольку такая ситуация может быть, утрируя и исключая за рамки то, что и пользователь не каждый раз перед запуском смотрит, что там в VBA (если вообще знает такие буквы, поэтому там можно написать всё, что угодно), и профи/админы - все же отслеживает откуда файл получен, а сеть нормально администрируется (с нормальными правами доступа). Вероятность на ПК с включенными макросами зацепить что-то из просторов Сети - выше, чем проверенный и распространяемый файл с библиотеками специалистом в компании (и каким образом там появятся новая библа?). Но ОК, предположим такое произошло - вижу выход в хешировании, контрольной сумме распакованного файла (желательно нескольких разных хэш-функций одновременно, помня о легкости вычисления псевдоколлизий в MD5)
    Запись от bedvit размещена 01.11.2017 в 11:37 bedvit вне форума
  9. Старый комментарий
    Аватар для Usaga
    Вкладывать в документы что-либо отличное от ничего (разве что картинки) - моветон. Серьёзно. Я понимаю, что вы озадачились и сделали интересную, с академической точки зрения, штуку, но видеть в этом что-то полезное не стоит.
    Запись от Usaga размещена 01.11.2017 в 11:46 Usaga на форуме
  10. Старый комментарий
    Аватар для Rius
    Цитата:
    проверенный и распространяемый файл с библиотеками специалистом в компании (и каким образом там появятся новая библа?)
    Обиженный, или по каким-то иным причинам, специалист компании подменит файл в документе и выложит на сервер.
    Цитата:
    Но ОК, предположим такое произошло - вижу выход в хешировании, контрольной сумме распакованного файла (желательно нескольких разных хэш-функций одновременно, помня о легкости вычисления псевдоколлизий в MD5)
    А кто будет контрольные суммы проверять?
    Человек хочет открыть файл, включает VBA и готово, файлы запустились автоматически и всё заразилось.
    Если даже не автоматически, то кто и с чем будет сверять хеши? В том же документе их хранить - их там и подменят. А где-то на сервере, в каком-то списке - да все просто забьют на проверку.
    Запись от Rius размещена 01.11.2017 в 12:00 Rius на форуме
  11. Старый комментарий
    Аватар для bedvit
    Цитата:
    Сообщение от Usaga Просмотреть комментарий
    но видеть в этом что-то полезное не стоит.
    На первый взгляд кажется так, но есть прецеденты: Я храню там написанные для Excel - xll с функциями до 60 раз быстрее чем в VBA, мой коллега, комментарий: "Я так для одного клиента SQLite врапер в xlsb хранил, чтобы он мог со своей базой где нужно работать." Решение из коробки - открыл и работает, пользователю не нужно что-то распаковывать или подключать.
    Согласитесь, что обиженный специалист и в VBA может спокойно разослать зловредный код и пользователь его так же запустит (не нужно компилировать и загружать да же новую библу) - проще, эффективнее и быстрее.
    А хеш нужен что бы админ мог сравнить библу с оригиналом, можно и в VBA сделать сравнение до запуска библы с данными на том же серваке.
    Запись от bedvit размещена 01.11.2017 в 12:29 bedvit вне форума
  12. Старый комментарий
    Аватар для Rius
    bedvit поймите, это всё отмазки.
    То, что работу смогли ускорить, хорошо. Хотя язык и среда для этого не самые неподходящие.
    Но все недостатки никуда не деваются.

    Цитата:
    проще, эффективнее и быстрее
    VBA можно запретить, просмотреть код и заметить, что что-то не так. У PE-файлов - нет, хеши сверять не станут.
    Запись от Rius размещена 01.11.2017 в 12:45 Rius на форуме
  13. Старый комментарий
    Аватар для bedvit
    Риски расписаны, способы их нивелировать тоже. Каждый сам выбирает баланс: эффективность/риск.
    ИМХО этот механизм не для массового развертывания, а скорее для спец.задач, где нужно или макс. скорость работы функций, или "все в одном файле", или хранить какие либо большие переменные таким образом (никто не запрещает вместо файлов хранить что-либо еще) и т.д.
    Запись от bedvit размещена 01.11.2017 в 13:08 bedvit вне форума
  14. Старый комментарий
    Аватар для Usaga
    Никто не станет париться какими-то хешами и сравнениями. Людям и без этого хватает дел. Документы с "сюрпризами" - плохо. Лучше поставляйте свою софтину отдельно.
    Запись от Usaga размещена 01.11.2017 в 13:09 Usaga на форуме
  15. Старый комментарий
    Аватар для bedvit
    В таком случае полностью отключать VBA и работать через xll, такой вариант тоже реализован, но он не относится к данному топику (подразумевает установку xll самим пользователем, макросы могут быть отключены)
    Правда и в этом случае злоумышленник может заменить надстройку на свой вариант.
    Запись от bedvit размещена 01.11.2017 в 13:40 bedvit вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.