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

Какой компилятор выбрать под Malware

D12

CD-диск
Пользователь
Регистрация
07.08.2022
Сообщения
17
Реакции
2
Гарант сделки
1
Недавно начал учить Малварь кодинг по мануалу Quake3 и нахожусь на фазе изучения языка C, и вот недавно появился у меня этот самый вопрос, с одной стороны нужно чтобы итоговый малварь имел очень маленький вес и был стабилен, с другой стороный компиляторы по типу TCC могут повлиять на работаспособность (как мне сказал интернет), поэтому выбор пал на Clang (у GCC итоговый вес больше даже если использовать флаги для оптимизации)

А какой вы используйте и почему ?

P.S Поставил себе цель написать стиллер если это имеет значение
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Любой классический компилятор, просто надо правильно и оптимально его использовать(или можете даже свой написать), ведь это делается в первую очередь с опорой на знания конкретной архитекруты и оптимизации конкретного кода под нее. Ну и кросскомпиляцию изучайте заодно.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
(у GCC итоговый вес больше даже если использовать флаги для оптимизации)
https://xss.pro/threads/76417/ - не важно, какой компилятор ты будешь использовать для Цэ, практически любой из них может собирать код без стандартных библиотек. Единственная существенная разница, что cl.exe (MSVC компилятор) по выдуманным мелкомягкими причинам не может использовать ассемблерные вставки для X64. В GCC/Clang еще есть несколько иногда полезных расширений языка, типа __attribute__((cleanup(...)) - своего рода RAII для Цэ, или получение адреса метки, чтобы control flow flattening через шитый код можно было сделать.

Ну и кросскомпиляцию изучайте заодно.
zig cc довольно неплохо умеет в кросскомпиляцию, я собирал с Венды на Линуксы и Макосы, а с Линуксов на Венду и Макосы.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
да разницы особой нет, если ты CRT отключаешь.
Да, компиляторы выкидывают разный код при одних и тех же оптимизациях, кто-то лучше, кто-то хуже.
Но это всё не очень критично, особенно в рамках малвары...
Собственно чем MSVC не устроил? Я видел смысл в clang только для последующей обработки кода от ллвм.
и был стабилен, с другой стороный компиляторы по типу TCC могут повлиять на работаспособность
стабилен в чем? Мне сложно представить, чтобы компилятор был "нестабилен" или не работал. Что за чушь вообще. Это большие проекты, а не поделки от студентов, чтобы они не работали. А работоспособность программы конечной зависит от кода, который ты же и написал. (есть ряд случаев, когда в ходе оптимизаций что-то вырежется, но это редкость, да и часто решается при помощи volatile или обмана компилятора каким-то образом :) )

Весь вес это CRT.
Если ты отключил его, то конечный вес хелловорлда будет 2-4 КБ, внезависимости от компилятора
 
с одной стороны нужно чтобы итоговый малварь имел очень маленький вес
это весодрочерство давно уже не в моде, сейчас вообще нет разницы будет у тебя малварь размером 20кб на чистом winapi или 400кб с статично слинкованной CRT
 
На мой взгляд Clang лучше всего, заодно сразу же будет возможность научиться писать LLVM пассы чтоб обфусцировать и морфить код, шифровать строки. И ещё я насколько помню, я пытался когда-то поиграться с MSVC и сгенерить ассемблерный листинг из сишного кода для морфинга на уровне асма, как щас помню студийный компилятор генерил вывод который хер сассемблируешь в отличии от цланга
 
да разницы особой нет, если ты CRT отключаешь.
Да, компиляторы выкидывают разный код при одних и тех же оптимизациях, кто-то лучше, кто-то хуже.
Но это всё не очень критично, особенно в рамках малвары...
Собственно чем MSVC не устроил? Я видел смысл в clang только для последующей обработки кода от ллвм.

стабилен в чем? Мне сложно представить, чтобы компилятор был "нестабилен" или не работал. Что за чушь вообще. Это большие проекты, а не поделки от студентов, чтобы они не работали. А работоспособность программы конечной зависит от кода, который ты же и написал. (есть ряд случаев, когда в ходе оптимизаций что-то вырежется, но это редкость, да и часто решается при помощи volatile или обмана компилятора каким-то образом :) )

Весь вес это CRT.
Если ты отключил его, то конечный вес хелловорлда будет 2-4 КБ, внезависимости от компилятора
Возможно я не ясно выразился, но имелось ввиду что при сильной оптимизации может пострадать производительность программы после компиляции (по крайней мере так прочитал в интернете, от отчаяния даже спрашивал у ChatGPT)

А с MSVC у меня все хорошо, просто подумываю, вместо того чтобы скачивать IDE скачать компиляторы отдельно, а как редактор кода использовать что-то другое (да знаю что это выглядит как анонизм, но у меня комп слабый и хочу оптимизировать рабочее пространство)
 
На мой взгляд Clang лучше всего, заодно сразу же будет возможность научиться писать LLVM пассы чтоб обфусцировать и морфить код, шифровать строки. И ещё я насколько помню, я пытался когда-то поиграться с MSVC и сгенерить ассемблерный листинг из сишного кода для морфинга на уровне асма, как щас помню студийный компилятор генерил вывод который хер сассемблируешь в отличии от цланга
Присоединюсь к этому ответу, clang хорош для раскрытия его потенциала в плане проходов LLVM, но если пользователь спрашивает, какой ему компилятор выбрать, то ему явно на этом этапе еще очень далеко до использования всех возможностей LLVM.

Поэтому для ТС такой совет - сейчас тебе вообще без разницы какой компилятор выбирать, ты не ощутишь никакой разницы, они все примерно одинаково оптимизируют, разница чувствуется в каких-то очень узких кейсах, с которыми ты вряд ли столкнешься в первые года 2-3 разработки. Не парь себе голову. Если ты только начинающий разработчик, удели больше внимания своему скилу, это важнее, с херовым скилом написания кода, даже хороший компилятор можно заставить сгенерировать говна.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
что при сильной оптимизации может пострадать производительность программы после компиляции
screenshot_18-2.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Знаю что звучит как дичь поэтому решил спросить тут, как никак я чайник и решил лучше не верить каждому васю пупкину в интеренете
если тебя так мучает этот вопрос, то закинь код на https://godbolt.org/ и посмотри вывод разных компиляторов.
Но как новичку я не советовал бы мозги себе делать выбором компилятора.
 
Практически любой компилятор с правильно подобраными флагами компиляции(которых овер дофига) выдаст хороший производительный результат, отличие будет уже прям в деталях которые под лупой искать надо.
А так да, в какой-нить годболт закинуть кусок кода и глянуть на результат при разных компиляторах.

Недавно начал учить Малварь кодинг по мануалу Quake3

А что за мануал такой? В библиотеке куча документации а такой не встречал, можно название или ссылку на файл?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Прошу прощения, а что значит ?
Значит, что софт не использует CRT в виде отдельной длл, а линкует все в 1 исполняемый файл.

Но как новичку я не советовал бы мозги себе делать выбором компилятора.
Да, но студия всяко удобней для новичка (за счет пошаговой визуальной отладки) + аверы больше доверяют cl.exe, чем какому-то tcc.

можно название или ссылку на файл?
у меня в подписи смотри
 
Недавно начал учить Малварь кодинг по мануалу Quake3 и нахожусь на фазе изучения языка C, и вот недавно появился у меня этот самый вопрос, с одной стороны нужно чтобы итоговый малварь имел очень маленький вес и был стабилен, с другой стороный компиляторы по типу TCC могут повлиять на работаспособность (как мне сказал интернет), поэтому выбор пал на Clang (у GCC итоговый вес больше даже если использовать флаги для оптимизации)

А какой вы используйте и почему ?

P.S Поставил себе цель написать стиллер если это имеет значение
а зачем тебе итоговый малый вес если ты его по итогу будешь пампать?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да, но студия всяко удобней для новичка (за счет пошаговой визуальной отладки) + аверы больше доверяют cl.exe, чем какому-то tcc.
спору нет, её и проще поставить и проще сразу начать что-то делать. Я про то, что новичок разницы в компиляторах не увидит. А ебли с ними будет больше.
Это я к тому, что если человек начал учить язык, то надо учить язык, а не то какой код скомпилирует компилятор. А без знаний ассемблера сказать какой компилятор справился лучше с компиляцией какой-то программы это вообще бессмысленно.
MSVC и студия это беспроигрышный вариант на долгое время. (конкретно под винду)
 


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