powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как работать с бинарными последовательностями в C#?
14 сообщений из 14, страница 1 из 1
Как работать с бинарными последовательностями в C#?
    #39781348
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например:

Есть некоторая последовательность, которая xor с dword с первого её байта, потом результат опять xor с dword , но уже со второго байта результата, потом с третьего и т.д.



Как подобное можно изобразить на C#?
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781351
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в чем проблема?
Код: c#
1.
2.
3.
4.
const uint xor = 123456;
var bytes = Enumerable.Range(0, 256).Select(n => (byte)n);
foreach (var x in bytes.Select(b=>b ^ xor))
  Console.WriteLine("{0:X} {1}", x, x ^ xor);


P.S. Результат XOR типов byte и uint (DWORD) будет иметь тип uint, если что.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781352
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Так у вас вроде как каждый байт xor -ится с числом. Приглядитесь к картинке, там xor -ятся в первом заходе с первого по четвертый, во втором заходе со второго по пятый. Причем не байт с числом, а байт последовательности с соответствующим байтом dword
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781361
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlСон Веры Павловны,

Так у вас вроде как каждый байт xor -ится с числом. Приглядитесь к картинке, там xor -ятся в первом заходе с первого по четвертый, во втором заходе со второго по пятый. Причем не байт с числом, а байт последовательности с соответствующим байтом dword
Ну, допустим. Проблема-то у вас в чем заключается? Не значете, как сделать xor? Выше это было показано. Не знаете, как выделить старший/младший байт из uint? Старший - сдвиг влево, младший - & 0xFF. Всё остальные проблемы исключительно алгоритмического характера, все необходимые технические средства для реализации в C# есть.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781363
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вопрос вобщемто больше был про то как тут с массивами и указателями работать, мне с асма нужно кусок логики перетащить.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781365
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>iskatelsql,сегодня, 17:02 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1309770&msg=21823371][21823371]
>Да вопрос вобщемто больше…
<Как я понимаю, последовательность у Вас это byte[]?
Преобразуйте сиё в MemoryStream и будет Вам счастье.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781367
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlДа вопрос вобщемто больше был про то как тут с массивами и указателями работать, мне с асма нужно кусок логики перетащить.
Кхм. Начинает проявляться конкретика. У вас на входе указатель на unmanaged-память? Или результат будет отправлен в unmanaged? Если ни то, ни другое - зачем вам указатели? Почему не обойтись чисто managed-кодом?
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781368
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да можно и обойтись если можно. Только не очень представляю как, глядя в отладчик... Ну не переводятся у меня регистры процессора в выражения Linq в голове автоматически :) Плюс этот кусок кода - какое-то самопальное шифрование файла, в основном и состоящее из подобных xor и остальных псевдорандомных вычислений, которые сложно разбить на отдельные логические части.

Я не встречал в туториалах примеры работы с бинарными данными на шарпе, а по форумам тоже маловато гуглится. Если это гораздо сложнее сделать на шарпе чем на сях, думаю сделать отдельную длл, в которую элементарно скопипастить куски кода из отладчика. Правда тот код за собой qt4core тянет, многовато лишнего из за одной функции.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781373
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>iskatelsql, сегодня, 17:54 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1309770&msg=21823390][21823390]
>Я не встречал в туториалах примеры работы …
<Погугли это: MemoryStream, byte[], BitConverter.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781374
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>iskatelsql, сегодня, 17:54 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1309770&msg=21823390][21823390]
>Я не встречал в туториалах примеры работы …
<Погугли это: MemoryStream, byte[], BitConverter.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781376
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>iskatelsql, сегодня, 17:54 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1309770&msg=21823390][21823390]
>Я не встречал в туториалах примеры работы …
<Погугли это: MemoryStream, byte[], BitConverter.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781382
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlДа можно и обойтись если можно. Только не очень представляю как, глядя в отладчик... Ну не переводятся у меня регистры процессора в выражения Linq в голове автоматически :) Плюс этот кусок кода - какое-то самопальное шифрование файла, в основном и состоящее из подобных xor и остальных псевдорандомных вычислений, которые сложно разбить на отдельные логические части.

Я не встречал в туториалах примеры работы с бинарными данными на шарпе, а по форумам тоже маловато гуглится. Если это гораздо сложнее сделать на шарпе чем на сях, думаю сделать отдельную длл, в которую элементарно скопипастить куски кода из отладчика. Правда тот код за собой qt4core тянет, многовато лишнего из за одной функции.
В C# есть unsafe код, по сути это почти тоже самое что С. Там есть указатели.
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/unsafe-code-pointers/
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781383
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql, заранее сорри за отвлечение от темы,
но заметьте, что каждый байт вашей последовательности, за исключением первых и последних трех, будет проксорен со всеми 4 байтами dword, т.е. по сути с одним и тем же байтом: операция xor коммутативна и x^a^b^c^d == x^(a^b^c^d)

либо ваш алгорим изначально плохо задуман и его стоит поменять (если это такая наколенная криптография и т.п.), либо напрашивается оптимизация:
1) проксорить между собой 4 байта dword и скопировать результат на все 4 байта dword
2) этим dword ксорить последовательность c шагом в dword (а не в байт), за исключением первых и последних 4 байт (не трех - так быстрее из-за выравнивания адресов процессором). а 64-битным qword может оказаться еще быстрее.
3) как обработать первые и последние 4 байта - сами сообразите.
...
Рейтинг: 0 / 0
Как работать с бинарными последовательностями в C#?
    #39781388
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,

Все гораздо проще - я для примера написал одинаковое число чтоб не заморачиваться на деталях, там оно меняется. И код уже есть, даже скомпилированный и работает :), мне его перенести нужно.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как работать с бинарными последовательностями в C#?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]