Переписываю проект. Нужно сжимать логи и отправлять на гейт. Юзал zlib, но нужно штатными средствами. Приглянулся - RtlCompressBuffer. Взял и сделал. Но иногда он просто не сжимает, сжимает криво и не разжимает. Из флагов пробовал - COMPRESSION_FORMAT_LZNT1. Остальные пробовал - вообще не воркают. В чем может быть проблема? В качестве буфера взял массив char с длиной - 50 символов. Сжал в '\x2'. А после не разжимает. Не силен в алгоритмах сжатия и прочее, но не подскажите, что делать? Так же благодарен буду, если есть нечто такое, что сжимает буфер на чистом winapi/
Можно использовать zipfldr.dll и сжимать в zip архив. Создаешь пустой файл архива; Создаешь COM объект Shell.Application; Получаешь объект Folder пустого архива; Вызывая метод CopyHere копировать файл/папку/файлы в архив. Проблема в том что копирование в архив выполняется асинхронно, но можно так или иначе определить когда копирование завершено (если заинтересует этот метод - расскажу). Если файлы маленькие - то можно навскидку подождать. --- Сообщение объединено, 3 дек 2020 --- Код давай.
Собирать бы желательно в памяти без дропа. Делаю без COM, ну чтоб детектов не было. Как вариант - либа на winapi по сжатию код скину через сутки, не за рабочим компом прост
nullPtr, А в чём детект может быть, эвристика по импорту ? Полная чушь. Обычно наоборот, чем больше апп отлично от статистики по норм апп, тем выше вероятность детекта. Ну если авер увидит что ты дёрнул нэйтив ртл он тебе точно детект выдаст, тут без вариантов.
А там вроде только он один и реализован. Надо код смотреть, чтобы видеть, где что не работает. --- Сообщение объединено, 3 дек 2020 --- Есть еще апи для создания cab-файлов, но он много темповых файлов создает для работы.
я не помню, что тестил по кому, но убрал - пропал детект. Хз я че делал, но отрицательный отпечаток остался. А так согласен. как буду за компом - скину сразу. Искал именно кросплатформ решение и чтоб веса не добавляло. Решил все написать на венапи.
nullPtr, Что убрал, во первых какой детект, generic это эвристика. Так смысла нет гадать, ты инфы не дал для решения. Во первых название детектов.
Я кстати пробовал этот метод, он работает, но если закидываешь в папку большие объемы, то возникал прогрессбар эксплорера на экране.
кстати, я вспомнил кео-что char buff[] = "Hello world. This is Simple text for compress. We are using RtlCompressBuffer" Этот буфер он сжимает в нечто - "\x1" или "\x0" И разжать не получается А буфер char buff[] = "bufferbufferbufferbufferbufferbufferbufferbuffer" сжимает в "\x1 buffer 0" - и когда разжимаем, то получаем оригинальный буфер. Мб буфер стоило больше взять? Хотя так не думаю --- Сообщение объединено, 3 дек 2020 --- Ничего не могу сказать за COM. Помню смутно. Мб дело было и не в ком. Я хз. Но заюзал паблик решение одного малвари
А какие системные требования? Можно использовать к примеру https://docs.microsoft.com/en-us/windows/win32/cmpapi/-compression-portal Я уже давно исследовал этот метод уже не помню всех деталей, но кажется можно убрать окно.
nullPtr, Вот же новость что авер читает текст к которому применена штатная крипта да ? Да они ксоры со сдвигами над массивами палили когда ты есчо не знал наверно что такое авер
наоборот, буду рад. Ток без stl и crt (если малоки аллоки - перепишу). Самый минимальный архиватор. То что на гите распоковал - все stl и crt. А ТЗ по чистому винапи Пробовал, с венды 8 стартует ток. А мне отстук нужен и на более старых машинах
http://ibsensoftware.com/products_aPLib.html - достаточно легковесный, но часто использовался в пакерах, так что наверное может палиться всеми аверами на свете. А так то просто взять любую реализацию deflate/gzip/bzip и юзать.
читает ксор - давно известно. Я ща не парюсь т.к. проект не зиродей. Тот же самый oski дропал в APPDATA - 6 dll, создавал директорию и собирал файлы. И отстук был 80%. А строки вроде base64. А что на это скажешь?) --- Сообщение объединено, 3 дек 2020 --- Вродь долго сжимает что ле. Или я путаю. На примете пока что zlib Так же нашел - https://github.com/nemequ/lzo/blob/master/minilzo/ Ток перепилить надо, а я не хочу чтоб потом багов было немеренно
лол, и чем же это? Я тут продавать/покупать не пришел. Если надо, могу на дамаг или экспу с гарантом, но вряд ле. Тут чистый интерес. Что, даже вопрос задать нельзя? Мб я пишу софт под белую организацию по порьбе с черными?)