Otwieranie programu ze zmiennej

0

Witam.
Czy jest możliwe aby otworzyć program ze zmiennej?
Mam na myśli to, że wczytuje do jakieś zmiennej (np. char) cały program (oczywiście inny program) a potem go normalnie otwieram.
Da się tak zrobić?

0

Hm...
Czyli masz zapisany program w jednym znaku?
Ciekawe...

PS: rozumiem, że to pomyłka i miał być string; masz w nim ścieżkę, czy cały program wczytany do niego?

0

O_o

Znaczy chcesz w swoim programie schować inny program? Poczytaj o zasobach.

0
Patryk27 napisał(a)

Hm...
Czyli masz zapisany program w jednym znaku?
Ciekawe...

PS: rozumiem, że to pomyłka i miał być string; masz w nim ścieżkę, czy cały program wczytany do niego?

czepiasz się szczegółów, chodziło mi o odpowiednio duża tablicę

o_O napisał(a)

O_o

Znaczy chcesz w swoim programie schować inny program? Poczytaj o zasobach.

Coś w ten deseń.
chce właśnie umieścić inny program w swoim (dokładnie na końcu pliku), potem go wczytać o w odpowiednim momencie otworzyć.

0

Jak już było wyżej, poczytaj o zasobach.
Trzymanie programu w string'u, czy jakiejś tablicy, to najgłupszy pomysł na świecie.
Takie rzeczy to tylko w Erze.

0
Patryk27 napisał(a)

Hm...
PS: rozumiem, że to pomyłka i miał być string; masz w nim ścieżkę, czy cały program wczytany do niego?

Cały program wczytany do zmiennej i chce go z niej uruchomić.
Da się tak zrobić?
Albo otworzyć ten program który znajduję się w innym pliku od x bajta.

0

poczytałem o tych zasobach mniej więcej.
mam kilka pytań:
1.Czy ten program który tam umieszczę będzie on w jakiś sposób zmieniony(chodzi mi o binarke jego)
2.Jak umieszczę ten program w zasobach to jak później go uruchomić?

0

1.Nie, nie będzie, chyba, że źle go wpakujesz.
2.Wypakować (pewnie są jakieś biblioteki), a potem uruchomić.

0
Patryk27 napisał(a)


2.Wypakować (pewnie są jakieś biblioteki), a potem uruchomić.

pisząc "wypakować" masz na myśli to że powstaje nowy plik, a potem go się uruchamia?
Jeśli tak to czy da radę jakoś inaczej tak aby nic nowego nie powstawało? tylko otworzyć go z innego pliku?

0

Jak już mówiłem, takie rzeczy to tylko w Erze.
Czekaj, skoro nie chcesz, aby plik był tworzony, to co to robisz?
Jeżeli wirusa, itp, to żegnamy :P

0

Doklejka da radę zadziałać, ale takie rzeczy to tylko w Assemblerze.
A każdy przyzwoity antywirek zeżre kogoś kto chce takie herezje wyprawiać.

0

A może on chce napisać po prostu kompilator? :P

1

Nie napisałeś w jakim języku program chcesz uruchomić. Tak czy inaczej napisałem gotowca.

#include <stdio.h>

char data[512];
char ptr;

int stack[32];
int stackNdx;

char *the_program = "[-]>[-]<>++++++++[<++++++++++>-]<.>+++++[<+++++++>-]<-.---.--------.+++++++++++.-----------------.\
++++++++++++.>+++++++[<----------->-]<.>++++++++[<+++++++++++>-]<-.>++++++++[<----------->-]<+.>++++++++[<++++++++++>-]<.\
++.---.--------.+++++++++++.-----------------.++++++++++++.----.----.>+++++++[<---------->-]<+.>+++++++[<++++++++++++>-]<+.\
---.+++.>+++[<------>-]<.+++++.+++++++.--.----.++++++.-.+++++++++++.>++++++++[<----------->-]<.";

int main()
{
	int codeLen = strlen(the_program);
	
	int i;
	for(i = 0; i < codeLen; i++)
	{
		switch (the_program[i])
		{
			case '<': ptr--; break;
			case '>': ptr++; break;
			case '-': data[ptr]--; break;
			case '+': data[ptr]++; break;
			case '.': putchar(data[ptr]); break;
			case ',': data[ptr] = getchar(); break;
			case '[': stackNdx++; stack[stackNdx] = i; break;
			case ']': if (data[ptr]) i = stack[stackNdx]; else stackNdx--; break;
		}
	}
}

Założyłem że uruchamiasz program w brainfucku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1