Я хочу сделать генерацию кода и компиляцию кода внутри приложения на c/c++(90% кода на с++). Как это возможно сделать, желательно без триллиона кода? Пишу приложение на базе imgui
Последнее редактирование:
Не получится без триллиона кода. Если ты хочешь так компилировать Плюсы, то берешь Clang+LLVM+LLD, если Цэ, то можно посмотреть, будет ли libtcc генерировать нормальный для тебя код, эта библиотека существенно меньше.Как это возможно сделать, желательно без триллиона кода?
а что если взять libtcc и с ещё помощью реализовать авторан путём инфекта дллок уже имеющихся в авторане софтинНе получится без триллиона кода. Если ты хочешь так компилировать Плюсы, то берешь Clang+LLVM+LLD, если Цэ, то можно посмотреть, будет ли libtcc генерировать нормальный для тебя код, эта библиотека существенно меньше.
Ну я не вижу существенных преимуществ этого перед загрузкой DLL или COFF из памяти.там же можно и цешный код запускать в памяти, это же сколько путей обхода ав открывается, мм ..
преимущество огромное. тут вопрос философии ав, ставить детекты на файлы tcc ни кто не будет, а компилятор позволяет запускать код в памяти, из этого получаем вечноживущий способ обхода ав. по типу go run фичаНу я не вижу существенных преимуществ этого перед загрузкой DLL или COFF из памяти.
httpx://scanner[.]to/result/Rl5uA4rVkxНу я не вижу существенных преимуществ этого перед загрузкой DLL или COFF из памяти.
Ну и где это огромное преимущество? Как в одном случае ты из памяти на исполняемые страницы грузишь код, так и в другом. Для антивируса в рантайме абсолютно нет разницы, положил ты на rwe страницы код из JIT-компилятора, или из COFF-объектника, или из DLL.преимущество огромное. тут вопрос философии ав, ставить детекты на файлы tcc ни кто не будет, а компилятор позволяет запускать код в памяти
вопрос статики отходит на много легче чем при обычных обстоятельствахНу и где это огромное преимущество? Как в одном случае ты из памяти на исполняемые страницы грузишь код, так и в другом. Для антивируса в рантайме абсолютно нет разницы, положил ты на rwe страницы код из JIT-компилятора, или из COFF-объектника, или из DLL.
Чем легче? Что у тебя будет зашифрованный сорс, который ты будешь из памяти компилить, что у тебя будет зашифрованная длл, которую ты будешь из памяти загружать, вообще нет разницы.вопрос статики отходит на много легче чем при обычных обстоятельствах
сорс чистить легче, можно даже автоматизировать насрав коментами и пустыми макросами к примеру. а крипт ещё сделай так что бы он детектов сам не добавил ; )Чем легче? Что у тебя будет зашифрованный сорс, который ты будешь из памяти компилить, что у тебя будет зашифрованная длл, которую ты будешь из памяти загружать, вообще нет разницы.
Так длл собрана из морфленного сорца, вопрос в том зачем тебе ее компилировать именно на таргете а не скомпилировать у себя и доставить готовое.сорс чистить легче, можно даже автоматизировать насрав коментами и пустыми макросами к примеру. а крипт ещё сделай так что бы он детектов сам не добавил ; )
я про то что детекты с .c файла снять в триллион раз легче чем с компил файла. а tcc.exe палиться не начнёт (скоро)Так длл собрана из морфленного сорца, вопрос в том зачем тебе ее компилировать именно на таргете а не скомпилировать у себя и доставить готовое.
Болле того доставляя готовое ты можешь быть уверен что оно не палится и не падает так провел предварительную проверку, а если морфишь что то на месте то уверенности уже нет.
Нет, ну чисто гипотетически, единственная вещь, которая приходит в голову - это типа сидеть на таргете и генерировать новые образцы вредоноса, когда старые образцы спалились. Типа ты не осилил llvm или морфинг ассемблера, хочешь морфить цэ-исходники. Основная часть вредоноса в исходниках лежит, на таргете заморфил, скомпилил, положил и запустил. Сидишь и мониторишь, что авер не удалил основную часть, если удалил повторяешь заново. Но тут тоже много 'но', например, если часть, которая морфит и компилит, спалится сама по себе, то уж "наши полномочия всё, окончены", и тд.Болле того доставляя готовое ты можешь быть уверен что оно не палится и не падает так провел предварительную проверку, а если морфишь что то на месте то уверенности уже нет.
можно даже не компилить в этом смысл.. можно не держать .ехе файл итоговый а запускать наш .c файл в контексте tcc флагом -runНет, ну чисто гипотетически, единственная вещь, которая приходит в голову - это типа сидеть на таргете и генерировать новые образцы вредоноса, когда старые образцы спалились. Типа ты не осилил llvm или морфинг ассемблера, хочешь морфить цэ-исходники. Основная часть вредоноса в исходниках лежит, на таргете заморфил, скомпилил, положил и запустил. Сидишь и мониторишь, что авер не удалил основную часть, если удалил повторяешь заново. Но тут тоже много 'но', например, если часть, которая морфит и компилит, спалится сама по себе, то уж "наши полномочия всё, окончены", и тд.
С детектами проблема в нахождении причины, остальное уже как првило проще, хотя иногда придется переписать морф и заменить одну апи двумя другими, и вот проблема в нахождение что именно менять.я про то что детекты с .c файла снять в триллион раз легче чем с компил файла. а tcc.exe палиться не начнёт (скоро)
Генеришь у себя на таргеты доставляешь билды, не спалился билд в массы, все равно генерить на таргете смысла нет.Нет, ну чисто гипотетически, единственная вещь, которая приходит в голову - это типа сидеть на таргете и генерировать новые образцы вредоноса, когда старые образцы спалились. Типа ты не осилил llvm или морфинг ассемблера, хочешь морфить цэ-исходники. Основная часть вредоноса в исходниках лежит, на таргете заморфил, скомпилил, положил и запустил. Сидишь и мониторишь, что авер не удалил основную часть, если удалил повторяешь заново. Но тут тоже много 'но', например, если часть, которая морфит и компилит, спалится сама по себе, то уж "наши полномочия всё, окончены", и тд.
Тогда уже смотри в сторону как скриптовыми языками исполнить шеллкод.можно даже не компилить в этом смысл.. можно не держать .ехе файл итоговый а запускать наш .c файл в контексте tcc флагом -run