Работа с zip архивами29.10.2024, 02:49. Показов 18610. Ответов 282
Метки нет (Все метки)
Из всего, что попадалось по теме сжатия/распаковки ZIP наиболее интересные были примеры с использованием библиотеки Zlib. Оригинальная zlib использует cdecl экспорт функций, но есть реализация zlibwapi.dll, которую можно использовать в VB. Вот хороший пример использования. Там можно увидеть как сжть/распаковать массив байтов, но вот беда, очень сложно найти пример под VB с более обширным использованием, способной на большее, данной либы, которая не есть простая, там есть функции с использованием множества параметров констант и длинных структур, которые чтобы узнать наверное надо долго копатся в сишных заголочниках. Но HackerVlad в личной беседе говорил, что у него есть исходники с использованием данной библиотеки, поэтому любезно прошу его поделиться данной информацией.
Добавлено через 1 минуту кстати словосочетание zip-архивами в названии форум блочит почему-то )Добавлено через 6 минут На одном форуме есть хороший пример испльзования функций zlib для извлечения/распаковки отдельных файлов, там Кликните здесь для просмотра всего текста
обсуждался какой-то экзотический ЯП Clarion, но очень наглядно
Здесь подробное описание функций, структур и констант, однако я не нашел там unzGetCurrentFileInfo и т.п.
0
|
||||||
| 29.10.2024, 02:49 | |
|
Ответы с готовыми решениями:
282
Работа с ZIP-архивами - распаковка файлов Автоматизировать заполнение "Графика выполненных работ по месяцам" Задания из лаб.работ |
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 03.11.2024, 20:16 | ||||||
|
Итак новый вариант создания библиотеки вторая версия
Форма:
Размер выходного EXE при этом всего 150 Кб! Я думаю, что это самый лучший и самый оптимальный вариант будет!
1
|
||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 03.11.2024, 20:38 | |
|
Мои 150Кб против 278Кб EXE-файла по изначально предложенному варианту от tetstuser2.
Добавлено через 51 секунду И это я ещё брал за основу библиотеку именно от testuser2 моя так меньше места занимает вообще на целых 100Кб. Добавлено через 1 минуту Но технологию base64 мне конечно стоит изучить всё равно. Можно будет вместо ресурсов иногда и строками base64 баловаться. Например воспроизовдить вавки или описывать регионы для нестандартных форм. Добавлено через 12 минут А я вот ещё думаю, может надо было base64 данные в ресурсы зашивать? Вместо LZNT1 компрессии DLL-файла? Или base64 данные, упакованные LZNT1 компрессией? Если эта компрессия помогала бы... Добавлено через 1 минуту Я ведь так и не изучил ещё технологию base64 и как там testuser2 упаковывал эти данные... Добавлено через 2 минуты testuser2, у тебя ведь получилось на выходе 126056 base64 данные каким-то чудом упакованные? А у меня 125047 на выходе получились данные упакованные, с помощью LZNT1, почти одинаково... Добавлено через 55 секунд testuser2, но каким чудом ты упаковал данные? что у тебя получилось 126056 на выходе? как, каким образом, и при помощи какого механизма ты этого достиг? Добавлено через 25 секунд И base64 строки бывают разные что ли, упакованные и не упакованные?
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 04.11.2024, 01:43 | |
|
locm, и как ты собираешься это сделать? и как вызывать функции?
0
|
|
|
|
|||||||
| 04.11.2024, 02:18 | |||||||
|
Для примера загрузка из памяти zlibwapi.dll и вызов из нее функции zlibVersion().
2
|
|||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 04.11.2024, 04:38 | ||
|
locm, если честно, я не знал вообще что так можно
Добавлено через 11 секунд это очень интересно Добавлено через 10 минут Поэтому я не понимаю Добавлено через 2 минуты Я не знаю как устроен ваш PureBasic но в ресурсах исполняемого файла MemDLL.exe нет никакого DLL вообще. Тогда как он загружает я пока не понимаю, откуда берётся эта DLL, но за пример спасибо, я стал верить, что это возможно и в VB6 Добавлено через 6 минут Там без танцев с бубном вообще никак не обойтись конечно Но я даже не знал что это вообще возможно Примерно технология такая: берутся двичные данные, например из ресурсов или из строки base64 не важно откуда потом загружается DLL в виртуальное адресное пространство процесса своего EXE через функцию VirtualAlloc потом загружается таблица импорта функций потом куча всякого ещё что я вообще не понимаю Добавлено через 4 минуты Вообще не понимаю как загрузить DLL из воздуха и выполнить функцию я вообще в шоке Добавлено через 6 минут Помнится мне вроде The Trick работал уже с чем-то похожим, он ведь у нас супер хакер Добавлено через 2 минуты На vb6 ещё наверное не создан человечеством такой код всё-таки вот тема https://www.vbforums.com/showt... rom-memory Добавлено через 1 минуту Там у нашего гениального The Trick что-то похожее было вроде но не сама функция LoadLibrary из ресурсов Добавлено через 2 минуты ну короче нужен огромный модуль с самописной функцией LoadLibrary которая будет принимать в качестве параметра не имя файла DLL а буфер данных DLL файла и ещё функции вызова функций из DLL и очень код такой серьёзный будет, с ассемблерными вставками даже я думаю вряд ли это так просто осуществить Добавлено через 3 минуты testuser2, помнишь былд проект у трюкача, вот он: https://www.vbforums.com/showt... ut-runtime там что-то такое есть примерно похожее, но очень сложное и почти не понятное нам
0
|
||
| 04.11.2024, 04:39 [ТС] | |
|
Но в этом способе есть определенный минус - вызовы функций производятся по указателю, это как бы визуалльное усложнение. Вот еслиб можно было библу загрузить так, чтоб ее пришить к декларациям..
1
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 04.11.2024, 04:57 | |
|
и правда только для PureBasic и для С есть в интернете код вот например как раз https://www.purebasic.fr/engli... hp?t=37979
для vb6 нет такого кода в интернете короче, на почти на 100% уверен что The Trick точно знает как это сделать или у него уже есть почти правильно написанный код Добавлено через 1 минуту testuser2, короче мой совет - спроси у The Trick может у него уже и модуль такой написан... Добавлено через 14 минут testuser2, ну короче не по сеньке шапка, не для таких отсталых программистов как мы эта тема, только такой гений как The Trick смог бы разобраться, поэтому предлагаю забыть
0
|
|
|
|
|||||||||||
| 04.11.2024, 13:15 | |||||||||||
|
Статические библиотеки возможно использовать в VB? Если да, можно сишный код (например MemoryModule) скомпилировать в lib и подключить к проекту. В архиве немного измененный код с экспортируемыми функциями с соглашением вызовов stdcall. Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||
| 04.11.2024, 15:23 | |||
|
Добавлено через 7 минут
0
|
|||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 04.11.2024, 15:33 | |
|
locm, надо сконвертировать в TLB
Добавлено через 4 минуты Я без понятия как подключить файл .LIB к проекту на VB6 и возможно ли это вообще. А после компиляции EXE-файла необходимость в библиотеке LIB отпадает?
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 04.11.2024, 16:00 | |
|
locm, вот например тут: Как подключить *.lib файлы нет ответа с 2007 года, никто не знает как
Добавлено через 4 минуты Нашёл такое "в С++-проекте надо нарисовать IDL-файл, сгенерить из него typelib, которую затем подключить к проекту VB6" Добавлено через 3 минуты locm, вот например нашёл: https://forum.sources.ru/index... pic=195184 там тоже нет ответа с 2007 года Добавлено через 45 секунд простым способом подключить .lib не получится только какими-то хакерскими штучками сложными манипцляциями Добавлено через 15 секунд и то хрен знает как это сделать
0
|
|
| 04.11.2024, 16:04 [ТС] | ||||||||||||
|
Сравнил компрессию RtlCompressBuffer (LZNT) и Сabinet (LZMS). Строку лучше сжимает LZNT, бинарь - LZMS
Кликните здесь для просмотра всего текста
1
|
||||||||||||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 04.11.2024, 16:51 | ||
|
Добавлено через 43 секунды 139 и 146 извини меня не сильно отличается Добавлено через 58 секунд А вот упаковка и распаковка буфера с помощью компрессии cabinet это интересно. Можно написать такой модуль будет.
0
|
||
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 04.11.2024, 17:25 | ||
|
а я думаю создать только для cabinet Добавлено через 19 минут testuser2, кстати хочешь прикол в cabinet.dll есть возможность распаковки/упаковки ZIP кажется. Там я нашёл COMPRESS_ALGORITHM_MSZIP. Добавлено через 2 минуты RFC 1951 это ZIP?
0
|
||
| 04.11.2024, 17:25 | |
|
Помогаю со студенческими работами здесь
120
access и zip архив Как распаковать ZIP-файл в 7z?
Замена файла в zip архиве при совпадении имени Как сделать архив zip? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|