Voiko jotenkin ohjelmatiedoston ja binääritiedoston yhdistää? Ja vielä niin että ohjelmasta pääsisi dataan käsiksi? Yritän tehdä itsepurkautuvan ohjelmatiedoston.
Ja kieli on ANSI C ja ympäristö Linux.
Ja kieli on ANSI C ja ympäristö Linux.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
Voi yhdistää. Esim. allaoleva pätkä tulostaa ruutuun alkua tän foorumin html-koodista
#include
#include
int main(){
char data[]={
0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,
0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x53,0x75,0x6F,0x6D,0x69,0x32,0x34,0x20,0x4B,
0x65,0x73,0x6B,0x75,0x73,0x74,0x65,0x6C,0x75,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65,
0x3E,0x0D,0x0A,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,
0x75,0x69,0x76,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,
0x65,0x22,0x20,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,
0x2F,0x68,0x74,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x69,
0x73,0x6F,0x2D,0x38,0x38,0x35,0x39,0x2D,0x31,0x22,0x3E
};
int i;
int n;
n=strlen(data);
for (i=0;i
Mistä saisi ohjelman joka muuttaa binaari-tiedoston ascii Hex-tiedostoksi?
Kuinka suuri ascii hex-tiedosto(char data[]) saa olla?(niin että kääntäjä hyväksyy sen?)
Mutta jos datatiedosto on vaikka jpg-kuva?
Eli tarkoitus tehdä ohjelman joka yhdistää vaikka 10 tiedostoa yhteen ja tekee siitä ajettavan ohjelman. Ja kun ajaa tämän ohjelman, niin se purkaa nämä tiedostot.
Eli vähän niin kuin zip tiedosto exe päätteellä, mutta ilman pakkausta.
En ole c/c koodaaja niin ei varmana ole kovin laadukasta koodia =)
Jos talletit ohjelman nimellä roska.cpp ja käänsit roska.exe:ksi niin rivillä:
"roska binaryfile.dat" se lukee tuon tiedoston tavu kerrallaan muuttaen tavut lennosta 2 merkkisiksi heksakoodeiksi ja pukkaa ne couttiin mikä yleensä tarkoittaa näyttöä.
"roska binaryfile.dat >outputti.txt" voi olla kätevämpi ;)
Bugejakin voi olla, en vaivautunut testaamaan muuta kun että se näytti tekevän mitä pitää ;)
#include
#include
using namespace std;
void main(int argc, char *argv[])
{
char c, buf[3];
ifstream infile;
if(argc!=2) {
cout
>datatiedosto on vaikka jpg-kuva
No eipä tuo tilanne muuksi muutu, dataksi taulukkoon vaan koko tiedosto. Taulukosta sitten tiedostoon levylle. Useille tiedostoille voi tehdä useita taulukoita (kankeaa) tai mielummin ehkä 2-ulotteisia, jossa 1. indeksi kertoo tiedoston ja toinen kys. tiedoston datan. Taulukkoon voi ennen varsinaista dataa pistää vaikka 32-bittisenä kokonaislukuna tiedoston pituuden eli vars. data alkaa vasta char-taulukossa indeksillä 4, 0-3 menevät pituudelle. Tai jotain tuohon suuntaan.
..tiedä tuosta taulukosta. Mitä jos datatiedosto on gigan kokoinen? Aika iso taulukko pitäisi olla, ja muistia koneessa, jotta koko ohjelma mahtuisi muistiin.
Tätä et kysynyt, mutta laitan kuitenkin tiedoksi, eli, ohjelmia itsepurkautuvan asennusohjelman tekemiseksi:
- 'Inno Setup' is a free installer for Windows programs. Käyttökelpoinen asennuspaketin kokoaja ja mikä tärkeintä, se on ilmainen ja toimii ok.
- 'WinZip Self-Extractor'lla voi tehdä itsepurkautuvia asennuspaketteja.
- 'InstallShield' kaupallinen asennuspaketteja kokoava ohjelma. Kevennetty versio sisältyy Borland C Builder kääntäjän mukana tuleviin apuohjelmiin.
Googlella löydetty eräs freeware asennusohjelma on 'GSfx Wizard' osoitteessa:
http://www.gdgsoft.com/gsfx/index.aspx
Ohjelman toimivuudesta ei ole mitään tietoa.