Вопрос автору. Так разве можно делать? memcpy(&StubString[SizeStr + 1], &SizeStub, 4);
А что не нравится в этой записи ?
Копируется четыре байта, не помню для чего, но скорей-всего интовое число.
Маленькое уточнение:
В классическом си, нет не строк, нет не управления памяти, вообще извините не хуя нет.
Поэтому массив, это-лиш набор каких-то данных, которые распологаются по определенному адресу в памяти, строка отличается от массива, только-лиш наличием нулл-терминального символа в конаце в си.
memcpy -Это функция стандартной библиотеки си, которая копирует байты из одного адреса в памяти в другое.
В высокоуровневых языках, данная функция считается не безопасной, поэтому если нет понимания как она работает, то лучше используйте, более безопасные аналоги, иначе всю память можете зафоршмачить.
Вообще си, как и ассемблер очень специфические языки, за простатой кроется огромная мощь.
Я использую обычно си в связке с ассемблером, но это нужно в связи со спецификой работы, приходится писать софт для железок, да не просто какой-то софт, а отказоустойчивый и безопасный, это главное требование заказчиков.
Поэтому никакой даже стандартной библиотеки си у меня нет. Всякие-там маллоки, мемкопи и т.д. приходилось реализовывать самому. :)
Про крипторы, может и нет смысла писать на си, может что и по легче есть...
А чем вообще все крипторы различаются, если суть у них одна?
Да много чем, вот вкратце:
- Что криптуем: Натив, нетфреймворк, длл, исходники, скрипты и т.д.
- На чем написан.
- Какие методы антиотладки используются.
- Какие доп. плюшки используются, типо-там морфинг иконок, детект песочниц и т.д.
На самом деле крипторы могут-быть весьма сложными, а могут быть простыми в реализации. Смотря что нужно.
Но как мне кажется, сейчас имеет смысл только морфинг исходников, ну или крипт скриптов, типо-там js.
Остальное палево, антивирусы тоже до какого-то момента эволюционировали. :)