• XSS.stack #1 – первый литературный журнал от юзеров форума

Byte to file C++

uglydavidka

HDD-drive
Пользователь
Регистрация
17.11.2022
Сообщения
30
Реакции
0
Допустим, у меня есть:
.dat файл в котором у меня записан массив чисел (байтов моего dll файла), я скачиваю этот дат файл, (далее именно то в чем нужна помощь) считываю байты и записываю их в массив, собираю из байтов свой длл файл на диск С (к примеру)

Надеюсь понятно понял, а проще говоря мне нужно понять как считать байты из Строк, и собрать из него файл
 
Допустим, у меня есть:
.dat файл в котором у меня записан массив чисел (байтов моего dll файла), я скачиваю этот дат файл, (далее именно то в чем нужна помощь) считываю байты и записываю их в массив, собираю из байтов свой длл файл на диск С (к примеру)

Надеюсь понятно понял, а проще говоря мне нужно понять как считать байты из Строк, и собрать из него файл
На мой взгляд лучше написать лоадер на сокетах, и передать байты твоей библиотеки чтобы ничего не скачивать.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
.dat файл в котором у меня записан массив чисел
В каком формате записаны? Приведи пример такого файла.
лучше написать лоадер на сокетах
чем лучше?
 
В каком формате записаны? Приведи пример такого файла.

чем лучше?
Вкратце: сервер будет напрямую взаимодействовать с библиотекой, лишние загрузки и чтение как он описал (download -> .dat -> read -> write -> out.dll), если писать лоадер с общением на сокетах, ему надо будет реализовать (dll to bytes -> request to client -> out dll bytes будут уже в памяти).
 
Вкратце: сервер будет напрямую взаимодействовать с библиотекой, лишние загрузки и чтение как он описал (download -> .dat -> read -> write -> out.dll), если писать лоадер с общением на сокетах, ему надо будет реализовать (dll to bytes -> request to client -> out dll bytes будут уже в памяти).
Во-первых, вопрос был вообще не про сервер.
Во-вторых, ему что каждый раз надо будет сервер переписывать или перезапускать, чтобы байты новой либы грузануть? Бред же.
В-третьих, а чем HTTP не устраивает? Те же сокеты, просто до данных еще отправляются байты, который относятся к http протоколу.
Из-за экономии сотни байт в HTTP заголовке много скорости не выиграть и ни ебать какой оптимизации не получится, учитывая условии, что он просто качает dll раз в какое-то время, а не постоянная нагрузка на эту часть.
передать байты твоей библиотеки
чем же это отличается от этого:
ничего не скачивать.
И там и там будут сокеты, и там и там мы получаем какие-то данные с сервера. То есть скачиваем.

P.S не было сказано именно про http (это я уже додумал), может там и по ftp данные передаются. Но роли не играет, просто видимо у человека есть какая-то админка или панель, куда он эти длли заливает.
 
Зачем ему перезапускать сервер чтобы подгрузить новые байты либы, сервер(лоадер) имеет прямой доступ к файлам сервера(хост) ему достаточно просто считать эту либу записать её в байты и передать клиенту при запросе, ладно не суть, перейдем вопросу:

Скачиваешь свой .dat файл, считываешь его, можешь через FILE, или же через fstream как душе удобно, напиши функцию … std::vector< unsigned char > ParseBytes(std::string str), в ней же ты перечисляешь for i, до str.size(), пропускаешь пробелы если твои байты в таком формате "5B 1C 10 6A", если через "/" то пропускаем соответствующие символы, соединяем два символа в одну строчку out = i + (i + 1).

buffer.push_back(std::strtol(out, 0, 16));
return buffer;

На выходе получаем заполненный вектор.
Далее как душе угодно это записываем на диск.

Возможно где-то ошибся, пишу с телефона.
 
просто считать эту либу записать её в байты и передать клиенту при запросе
Так вроде так и работает. Видимо неверно понял предыдущее сообщение.
...
А кажется понял, вопрос тс'а не совсем правильно понял)))))
ТС какой-то херней страдает и байты текстом отправляет вместо бинарщины.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх