• Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    fshp, Так ведь все равно идёт обращение к CreateFile+WriteFile, для записи в пайп. Я хочу передавать именно в компилятор, а не в пайп, потом в компилятор( промежутков хочется избежать) .
    Ну и ещё 1 важный момент тут, если к примеру нужно хранить cpp сурс закриптованным , на диске он таковым может быть, только вот при обращении к компилятору, сурс должен быть декриптован,пайп это или ramdisk, обычный хук на CreateFileA решит весь крипт , как будто его и не было( ибо компилятору нужен чистый хэндлер) А вот прямая работа с памятью , и передача только в условном месте, подразумевает что сурс будет, находится по надёжнее .
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    fshp, Это все обычные command lines , что exec ,shell, cmd, я просто не думал что поставить хук, на хэндлер текста в gcc эта такая большая проблема. Либо переписать чутка LLVM clang чтобы оно умело работать с массивом байт вместо cindex ,то есть поставить API на уровень ниже, там вроде открытый код. На мой взгляд обеспечение изолированной архитектуры для взаимодействия с network данными и их компиляцией( без записи на диск), будет понадежнее чем то чем обычно все привыкли решать.
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    kloppspb, человек ты адекватный ? Не знаешь что такое manualmap ?
    Я узнать хотел у тех кто шарит, в том как передать сам текст минуя запись на диск, по средствам хуков, либо через другой компилятор типа clang, либо по другому. Не знаешь как это решить, зачем пишешь суда ?
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    devalone, дело в том что changableVal приходит в ту программу которая управляет сборкой, и потом уже подсоввается в сурс .
    Вариант конечно интересный и если дополнить обфускицией и всяким мусором, вполне сойдёт, но это не полное решение того что мне надо, понимаю что копать надо глубже и вникать тут всем лень, но хоть ссылки на то чем оперировать , могли бы и оставить. Manualmap тоже не сразу сделали( пришлось разбирать PE image и dos) у компилятора что то подобное должно быть и гораздо проще для обработки самого текста, вопрос в том как туда "подключиться" .
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    fshp использует shell ,
    А ExecuteShell это не CMD и обращение к компилятору не через. CMD?

    Лучше бы про LD preload и рассказал, раз оттуда можно вытащить ( как байтовый массив) то и закинуть можно, при том что входные данные могут быть левыми.

    Меня интересует аналог manual map, всякие пайпы не интересуют для вас трудно дать ,то решение которое мне нужно, хоршо, но не надо меня убеждать в том чтобы использовать то что вам нравится.
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    devalone, Интересный вариант, только вот мне нужно будет менять значение в
    void doSomething(std::string value)
    {
    If(getsecretVal==ChangableVal)
    std::cout << value << std::endl;
    }
    ,main.o ,уже скомпилированн.

    А напрямую к gcc не подключиться ?
    Нету разве API или может другого более открытого компилятора,который можно использовать подобным образом ?
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    kloppspb , Если вы не знаете как решить задачу, не стоит ее назвать идиотской.IPC это обходной вариант, с компилятором все равно придется общаться через CMD, и каждый раз вызывать CreateFile,либо IO, а это вообще не здорово, ибо поставив обычный хук на вызов, можно все перехватить, не особо напрягаясь. Вся суть задачи в том чтобы не оставлять простой возможности получить сурс, используемый при компиляции ( некоторые значения переменных будут изменяться, в зависимости от запроса( внутри программы которая обрабатывает этот сурс) ) . А если этот сурс лежит на диске или записывается в тот же пайп стандартно, очень легко его оттуда стащить, не так ли ?
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    devalone, Ram будет доступен как обычный диск ?
    Задача в том чтобы усложнить, возможный слив сурсов.То что живёт в памяти исполняемого процесса,не скопировать , пока не разберёшь программу в дизассемблере для нахождения нужного адреса.А вот всякие temp файлы и ram, изначально записываються в известное пространство, откуда скопировать проще и разобрать в дальнейшем( Можно хоть весь диск скопировать, а потом разбирать), поправь меня если я не прав ( взаимодействие между ram через тот же CreatFileA). На счёт распределения объектов и линковки , можно увидеть подробный пример ?
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    devalone, Дело в том что через этот сервер будет передаваться , скомпилированный исполняемый файл( но с некоторыми изменениями, в зависимости от входящих данных)
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    kloppspb, Ну как нет если человек привел пример с консольной командой( Куда я буду пихать сурс - ShellExecute ? , Мне нужно чтобы все было в памяти процесса, без открытия консолей и записи на диск) , при том что все что она делает это создаёт temp файл на диск( я разве такое решение искал ?)
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    Ваш пайп сугубо консольное решение не так ли ? Мне нужно другое, без записи на диск, только работа в памяти.
    Конкретно, принятие через сокет, байтового массива (сурсов),и создания отдельного потока для дещифрации и передачи в компилятор.
    PS
    Зачем менять тэги ?
    P.S.S
    Просто замечательный дизайн под мобилки , нажал редактировать удалил свой же комментарий, очень приятно.
  • Как передать CPP код в компилятор, минуя запись на диск?

    @NighFury Автор вопроса
    devalone, Это своего рода и есть локальный сервер, и можно сказать 99% времени доступа к нему нету, но т.к. доступ возможно понадобится передать,либо зальют Шелл ( через одну из уязвимостей , о которых не известно) хотелось бы не оставлять сурс как есть, пусть лучше живёт в памяти пока сервер работает.

    P.S.Ужасно стилизован сайт , не могу привыкнуть.