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

Есть ли смысл писать без CRT в 2022

BaDRabbiT404

RAID-массив
Забанен
Регистрация
01.03.2020
Сообщения
93
Реакции
27
Пожалуйста, обратите внимание, что пользователь заблокирован
Собственно, вопрос вверху. Я вот просто пытаюсь писать легковесные вирусы, мол круто, маленький вес, еху. Но боль в жопе всё таки сильнее, чем моё моральное утешение самого себя. Есть ли реальный смысл писать без CRT в 2022?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Для веса - нет, для того, чтобы отрабатывал везде - да
Так он и с CRT везде отработает. /MT и поехали
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В общем случае смысла мало. В частных случаях он есть, например, если ты захочешь шеллкод написать на сишечке или плюсах, что по сути тождественно отсутствию STL и CRT, то умение собирать код без стандартных библиотек пригодится.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Чтобы потешить свое эго достаточно просто уметь это делать и переодически использовать, чтобы не забыть. Без понимания пускай не всех, но кучи тонкостей, эффективно решать частные задачи на одних лишь CRT не получится, а некоторые и вообще никак не получится решить..
По себе скажу, я к этому отношусь как к бесценному опыту, который помогает понимать, что происходит под капотом. Опыт этот теперь используется для отладки, для прозрачного чтения машинного кода в дебагере и оценки качества работы компилятора. Хотя время показывает, что и питон нехуево компилится в бинари и в три десятка строк решает кучу проблем пускай и ценой очень жирного бинаря.
Итог: все зависит от поставленных задач, но знать, что там просходит в этих CRT очень даже не лишнее хоть и не обязательно в 2022
 
Но боль в жопе всё таки сильнее, чем моё моральное утешение самого себя
В твоем случае можно использовать старый msvcrt из VC6.Он не будет добавлять сильно много веса(хеллоу ворлд с манифестом 4кб) и позволит использовать большинство CRT-шных функций.
1) Качаешь вот эту либу https://send.exploit.in/download/aff274d5ff5c9a5e/#oHo9UiWBsEM9jVwo4X3i9Q , кладешь в папку с проектом(или в то место, где хранишь подключаемые либы)
2) Заходишь в свойства проекта и выставляешь следующие параметры:
Компоновщик -> Ввод -> Дополнительные зависимости, вписываешь msvcrt.lib
Компоновщик -> Дополнительно -> Образ имеет безопасных обработчиков исключений -> Нет (/SAFESEH:NO)
C/C++ -> Создание кода -> Отключить проверку безопасности -> Да(/GS-)
Надеюсь помог.Если будут вопросы - пиши в пм.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В твоем случае можно использовать старый msvcrt из VC6
Ну он линкует большинство функций на msvcrt.dll, которая есть на всех системах, плюс добавляет минимальный стартовый код. Примерно такого же эффекта можно добиться с UCRT, хотя я сам не пробовал. Единственная неочевидная проблема связанная с использованием функций из msvcrt.dll в том, что некоторые современные вещи там не будут поддерживаться (например, вывод/ввод printf/scanf семейством функций 64-битных интов и даблов при компиляции в x86). Я давным давно пытался Lua собрать без CRT с линковкой функций из msvcrt.dll, потом охуевал от неочевидных багов, Lua интерпретатор по-умолчанию желал использовать даблы для number типа данных и ломался с завидной регулярностью от того, что не мог конвертировать их в строки и обратно с помощью функций из CRT. Конечно, это все исправлялось в luaconf.h (на флоуты или вообще на инты 32-битные), но я по молодости ожидал, что все будет работать из коробки.
 
Я давным давно пытался Lua собрать без CRT с линковкой функций из msvcrt.dll, потом охуевал от неочевидных багов, Lua интерпретатор по-умолчанию желал использовать даблы для number типа данных и ломался с завидной регулярностью от того, что не мог конвертировать их в строки и обратно с помощью функций из CRT. Конечно, это все исправлялось в luaconf.h (на флоуты или вообще на инты 32-битные), но я по молодости ожидал, что все будет работать из коробки.
DildoFagins, звучит клево, сколько все это добро весило без CRT? Я когда встраивал луа и делал машинку для исполнения кода внутри jit, там буквально прибавилось меньше 200кб
 
Примерно такого же эффекта можно добиться с UCRT, хотя я сам не пробовал.
Можно еще заюзать wcrt http://wcrt.sourceforge.net/ , он вроде вообще импорта из msvcrt.dll не делает.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
DildoFagins, звучит клево, сколько все это добро весило без CRT? Я когда встраивал луа и делал машинку для исполнения кода внутри jit, там буквально прибавилось меньше 200кб
Ну я классическую ВМ собирал, не LuaJIT, весило порядка 80кб, насколько я помню.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
DildoFagins, кстати не помнишь Jefferson перешел сюда с руфорума
Эмм, я не в курсе, даже зрительно Jefferson мне ни о чем не говорит, почему ты меня об этом спрашиваешь, может перепутал меня с кем-то?
 
DildoFagins, да перепутал. Вы с другого форума. И я нашел человека которого искал, просто ник сократился. Хорошо что все на месте, миграция с одних форумов на другие такое себе, особенно когда контакты часто меняются или их вообще нет.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть ли реальный смысл писать без CRT в 2022?
Что для тебя "писать без црт"? Потому как трактовать это можно по разному.
Потом напишу более подробный пост на эту тему.
 
Не вижу трудностей писать без срт, на крайняк берешь и через лоадлиб добавляешь нужную функцию из срт. Смысл писать без него есть, код будет лаконичным и четким. Да и давай признаем, мы люди и наша фишка на протяжении всей эволюции заключалась в преодолении трудностей и в постановке более сложных задач перед собой снова и снова, а срт это костыль для winapi приложений, попытка сойти с пути эволюции, попытка остаться на одном уровне что всегда приводит к стагнации и в следствии чего к упадку и деградации. Либо рост, либо падение. Выбирай.
 
Не вижу трудностей писать без срт, на крайняк берешь и через лоадлиб добавляешь нужную функцию из срт. Смысл писать без него есть, код будет лаконичным и четким. Да и давай признаем, мы люди и наша фишка на протяжении всей эволюции заключалась в преодолении трудностей и в постановке более сложных задач перед собой снова и снова, а срт это костыль для winapi приложений, попытка сойти с пути эволюции, попытка остаться на одном уровне что всегда приводит к стагнации и в следствии чего к упадку и деградации. Либо рост, либо падение. Выбирай.
Частично CRT есть в ntdll, которая всегда подгружена в процесс.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Частично CRT есть в ntdll, которая всегда подгружена в процесс.
Msvcrt.dll есть на всех системах, но некоторые функции в ней не соответствуют современным стандартам. Но и у многих функций из CRT есть аналоги в WinAPI, например malloc и HeapAlloc.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да много есть вариантов, мб напишу подробный FAQ на эту тему; А так то да, можно линковать с NTDLL, системного msvcrt, кастомный wcrt, заменять все на винапи , билдить как /MT и т.д. и т.п.
Тут вопрос в том, что именно нужно ТС.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Что для тебя "писать без црт"? Потому как трактовать это можно по разному.
Потом напишу более подробный пост на эту тему.
Ээ, ну, писать без црт - это писать без црт, тоесь без всех этих подгружаемых либ...
 


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