Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить исходный код. Как? / 10 сообщений из 10, страница 1 из 1
22.01.2004, 08:49
    #32384006
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
На одном из форумов где - то здесь. Прочитал интересную задачку, которую задают в какой то из американских софтверных компаниях при приёме на работу.
Было, что - то вроде: Получить исходный код программы, не обращаясь к файлу на диске. Блин уже месяц рою доки - так и не нашел как это сделать. Мож кто уже пробовал, знает как это сделать?
...
Рейтинг: 0 / 0
22.01.2004, 09:14
    #32384021
Получить исходный код. Как?
Ничё не понял. Если программа на диске, то как ее получить не обращаясь туда. А если не только на диске то об этом не упомянуто (типа открыты BCB или VC), кеш в памяти колупать мало кто умеет.
...
Рейтинг: 0 / 0
22.01.2004, 09:16
    #32384023
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
может имеется в виду программа которая выводит саму себя например в консоль.
были такие задачки раньше на олимпиадах типа.
например на бейсике:
10 list 10

правда не все диалекты хавали директивы интерпретатора в рантайме.
...
Рейтинг: 0 / 0
22.01.2004, 09:25
    #32384037
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
2 alex_k
:)) На бейсике на том форуме тоже дали ответ. Но это только для бейсика, да и то старой версии. А например прогу на С++ как распечатать?

2 непонятливый
А я, в общем, тоже не знаю как получить код без файла на диске, потому и спрашиваю. Можно получить машинный код, если знать в какой области памяти хранится программа и читать оттуда, а вот как этот машинный код обратно в ЯП перевести не знаю, точнее знаю - но это же через жопу и одному писать можно до старости. Если найду эту тему на том форуме - выложу сюда.
...
Рейтинг: 0 / 0
22.01.2004, 09:28
    #32384041
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
А, вот, уточняю задачу:
Написать программу, выводящую свой исходный код, без обращения к физическому файлу на диске. Мож компилеры дебажную информацию где то сохраняют?
...
Рейтинг: 0 / 0
22.01.2004, 09:31
    #32384044
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
на си это как-то через дефайны делается.

в любом случае, это задача на знание тонкостей языка
...
Рейтинг: 0 / 0
22.01.2004, 09:49
    #32384064
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
Через дефайны может только один раз сработать, а если ты изменишь код программы - ну добавишь, допустим, int z=1; Твой дефайн его ведь не найдет?
...
Рейтинг: 0 / 0
22.01.2004, 09:58
    #32384080
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить исходный код. Как?
Вот, нашел. Только там ничего путного нет.
...
Рейтинг: 0 / 0
22.01.2004, 15:05
    #32384807
Получить исходный код. Как?
Есть такая книжка "UnderPressure" которую написал Ed Sullivan. Этот мужик является (или являлся, точно не знаю) одним из руководителей NuMega (я думаю, многие знают ее продукты: BoundsChecker, SoftIce и т.д.). И там написано, что эту задачку использовали при приеме на работу в NuMega.

Я тоже думал, как ее решить. Один из вариантов, если ее делать под Win32, то можно создать Custom Resource, и там задать, чтобы в качестве ресурса был external file и путь указать на текст программы. А в самой програмке загружать этот самый Custom Resource как строку и распечатывать ее.

Только вот сомнение у меня - можно ли такое решение считать правильным - ресурс ведь будет в файле проги.

????
...
Рейтинг: 0 / 0
22.01.2004, 16:21
    #32384957
Получить исходный код. Как?
смотрел я эту ссылочку (http://shelek.com/forum/viewtopic.php?t=1954&highlight=list)

Там один товарищ правильное решение нарисовал для С.
И можно совсем без #define обойтись.

Я тут тоже свой вариант накатал (увы, воспользовался чужой идеей, но все равно я рад сам за себя :)

Код: plaintext
1.
2.
3.
#include <stdio.h>
char* text= "#include <stdio.h>%cchar* text=%c%s%c;%cvoid main() {printf(text, 0x0a, 0x22, text, 0x22, 0x0a);}" ;
void main() {printf(text, 0x0a, 0x22, text, 0x22, 0x0a);}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить исходный код. Как? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]