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

Runtime Obfuscate string C++

secidiot

Threat Actor
Пользователь
Регистрация
27.04.2023
Сообщения
155
Реакции
340
Гарант сделки
2
Обфускация строк во время компиляции C++ 20.
Каждая строка получает "уникальный" ключ шифрования (на основе времени компиляции) и хранится в бинарнике как float массив.
 
Обфускация строк во время компиляции C++ 20.
Каждая строка получает "уникальный" ключ шифрования (на основе времени компиляции) и хранится в бинарнике как float массив.
Скрытое содержимое
Вроде как есть библиотека xorstr, https://github.com/JustasMasiulis/xorstr
 
1.jpg
 
decrypt_to_buffer
"Пацаны, а давайте вместо строк, хранить в коде подпись функции." А то антивирусам напряжно строки искать. :)
ЗЫ: Сама идея годная, мне понравилась.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Когда уже для Си завезут эти фишки, чтобы не колхозить со скриптами / ассемблером для обфускации строк?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Когда уже для Си завезут эти фишки, чтобы не колхозить со скриптами / ассемблером для обфускации строк?
В стандарте никогда этого не будет, на это можно не надеяться. Но ты всегда можешь переименовать свои .c в .cpp, пофиксить ошибки, вызванные более строгой типизацией и использовать метапрограммирование из плюсов. Вопрос лишь в том, что чтобы ты не делал во всратом плюсовом метапрограммировании, как бы не растягивал этим время компиляции, какие бы хитрые штуки не пихал в шаблоны, всё равно у тебя будет больше возможностей и простоты в простом мирском обфускаторе на базе сорсов (ну или какого-нибудь llvm'а). Можешь мне поверить: "я был там, Гендальф, 3000 лет назад в 2013 году" (кстати, можете не искать этот код, хоть я этого не понимал в то время, эта херня работала нормально только на определенной версии компилятора GCC, да и теперь этот код полностью морально устарел).
 
Последнее редактирование:
Когда уже для Си завезут эти фишки, чтобы не колхозить со скриптами / ассемблером для обфускации строк?
C will never standardize this, so we must pay our blood tithe to the preprocessor.
6.jpg
 
memcpy is the only std ‘metaprogr’ C has and the committee’s idea of advanced compiletime magic is _Static_assert(1).
 
Когда уже для Си завезут эти фишки, чтобы не колхозить со скриптами / ассемблером для обфускации строк?
А нужно ли это? На раст можно полноценно работать с AST в compile-time с помощью procedural macros, но лично по моим ощущениям обфусицировать/морфить AST гораздо сложнее, чем тот же LLVM IR.
 
но лично по моим ощущениям обфусицировать/морфить AST гораздо сложнее, чем тот же LLVM IR.
Обфусцировать и морфить разное в данном контексте

одно дело накрыть это с целью защиты от реверса
другое дело накрыть с целью защиты от аверов

Ллвм ир более мощный инструмент, у него есть как плюсы так и минусы
Как мне кажется не стоит накрывать стандартный крт компилятора, не очень легитимно все таки я считаю
Есть существенный плюс - возможность работать с кодом на разных языках, ведь сначало он переводится в ир, а затем от этого уже все пляшет

Морфинг на уровне сурсов - бери любой аст парсер и делай что хочешь, компилятор сам соберет сурс код в легит - не надо ручками каждую инструкцию смотреть в ир коде, но есть свои нюансы и конечно же костыли
И не сомненно - порог входа гораздо ниже именно в сурсах
 


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