Русский / Russian English / Английский

Сейчас на форуме: r0lka (+7 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Программирование —› Формат для передачи данных между потоками
<< . 1 . 2 . 3 .
Посл.ответ Сообщение

Ранг: 24.2 (новичок)
Статус: Участник

Создано: 2 января 2020 21:54 New!
Цитата · Личное сообщение · #1

Хочу реализовать передачу данных между потоками через CreateThread

Вопрос состоит в том, как именно обернуть параметры функции.

Пример функции

Code:
  1.  bool Encrypt(const char* x1, const size_t x2, const unsigned char* x3, const unsigned char* x4, unsigned char* x5, size_t& x5)


Посоветуете что-то?

Ранг: 148.0 (ветеран)
Статус: Участник

Создано: 7 января 2020 00:18 New!
Цитата · Личное сообщение · #2

difexacaw
data-flow граф разрушить и раскидать ноды по разным потокам.

Ранг: 152.9 (ветеран)
Статус: Участник

Создано: 7 января 2020 00:30 New!
Цитата · Личное сообщение · #3

galenkane пишет:
Защита в том, что данные будут в разных местах

Не бывает абстрактных данных, их все равно придется использовать и да, подобная "защита" безусловно может кому-то затруднить задачу их нахождения и считывания но на тех этапах которые в принципе никому не будут интересны, поэтому писать такое может и имеет смысл, но использовать, имхо нет...

Ранг: 24.2 (новичок)
Статус: Участник

Создано: 7 января 2020 00:56 New!
Цитата · Личное сообщение · #4

VOLKOFF предложите, что лучше.


Ранг: 322.2 (мудрец)
Статус: Участник

Создано: 7 января 2020 01:27 New!
Цитата · Личное сообщение · #5

difexacaw пишет:
Я всё равно не понял какая задача.

Честно, я не погружаюсь в то, что надо тс в конечном итоге. Я лишь даю советы, руководствуясь только тем, что ему надо конкретно сейчас )

rmn пишет:
data-flow граф разрушить и раскидать ноды по разным потокам

Защита ещё круче, если раскидать ноды по разным процессам Но сначала предстоит точно долгий путь нахождения способа, как правильно это сделать в разных потоках...

Ранг: 24.2 (новичок)
Статус: Участник

Создано: 7 января 2020 05:44 New!
Цитата · Личное сообщение · #6

Разные процессы не нужны.

Ранг: 152.9 (ветеран)
Статус: Участник

Создано: 7 января 2020 11:45 New!
Цитата · Личное сообщение · #7

galenkane пишет:
предложите, что лучше

Здесь никто в создании любого рода защит всерьез помогать не станет

| Сообщение посчитали полезным: Orlyonok


Ранг: 137.9 (ветеран)
Статус: Участник

Создано: 7 января 2020 11:46 New!
Цитата · Личное сообщение · #8

galenkane пишет:
предложите, что лучше.

Примени UPX.


Ранг: 322.2 (мудрец)
Статус: Участник

Создано: 7 января 2020 15:36 New!
Цитата · Личное сообщение · #9

VOLKOFF пишет:
Здесь никто в создании любого рода защит всерьез помогать не станет

Да, что странно - официально форум по ИССЛЕДОВАНИЮ защиты


Ранг: 669.3 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 7 января 2020 21:38 New!
Цитата · Личное сообщение · #10

Ну как я и писал выше - тс занимался хернёй по "хранению на стеке" *уй пойми чего. Для этой задачи делается диспетчер, который управляет выполнением базовых блоков, т.к. в общем случае они не являются независимыми, а выполняются строго в определённом порядке. Потому делается объект (по паттерну синглтона Мейерса), доступный из любого потока. Вызывается его GetInstance, и выполняется базовый блок. Код базовых блоков должен быть предварительно преобразован, чтобы в контексте разных потоков диспетчер мог работать с локальными переменными. С глобальными он будет работать без модификаций. В общем, как-то так, ну а дальше - детали реализации.

Ранг: 24.2 (новичок)
Статус: Участник

Создано: 8 января 2020 13:09 New!
Цитата · Личное сообщение · #11

ARCHANGEL о каком преобразовании речь?


Ранг: 669.3 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 8 января 2020 13:22 New!
Цитата · Личное сообщение · #12

galenkane
Если в вашем коде есть обращение к локальной переменной, то она лежит на стеке, и адресуется через esp/rsp - смещение. (или плюс отрицательное - как вам удобнее), но при переключении контекстов разные потоки будут иметь разное значение для этого самого esp/rsp. Вот это и нужно учитывать после нахождения кода базового блока. Т.е. нашли границы блока, дизассемблировали блок, преобразовали, стёрли оригинал.


Ранг: 2006.0 (!!!!)
Статус: Модератор
retired

Создано: 8 января 2020 16:30 New!
Цитата · Личное сообщение · #13

Как напишете готовый продукт, не забудьте выложить. А пока закрыто, с защитами сами разбирайтесь.

| Сообщение посчитали полезным: Orlyonok

<< . 1 . 2 . 3 .
 eXeL@B —› Программирование —› Формат для передачи данных между потоками
Эта тема закрыта. Ответы больше не принимаются.

Видеокурс ВЗЛОМ