Miten saisi koodistakäsin lisättyä exeen jotakin (tiedoston),ja vaihdettua iconin?
Hohhoijaa. Miksi näin pitäisi ylipäätänsä tehdä?
Ja suoraansanottuna turha edes kuvitella onnistuvansa muuttamaan ohjelmaa toimimaan toisella tavalla.
Miksi siihen exeen pitäisi lisätä mitään?
tuomas kirjoitti:
Ja suoraansanottuna turha edes kuvitella onnistuvansa muuttamaan ohjelmaa toimimaan toisella tavalla.
En ole muuttamassa ohjelman toimintaa, tahtoisin saada vain koon hieman muuttumaan. (muutamia kt)
Avaa se binäärimoodissa ja kirjoita ihan tavallisesti haluamas data sen loppuun.
Mutta eikö se sekoita tiedoston käyttökelvottomaksi?
Ei, jos teet sen jollain hexa-editorilla. XVI32 on yksi hyvä.
EDIT: ainiin joo. Tässähän ollaan koodamassa :) Eli avaa se tosiaan binääri moodissa.
Open "filu.exe" for binary as #1
Ja sitten "puttaat" vaan. Put #1, ,0
En ole varma pitääkö tohon pilkkujen väliin laittaa se kohta mihin tallennataan eli tiedoston loppu eli tiedoston koko, joten kannattaa ottaa joku varmuuskopio.
Ohjelmaa voi jatkaa tähän tyyliin. Ensin avataan tiedosto binääritilassa ja siirrytään sen loppuun. Sitten vain kirjoitetaan omat tiedot valmiina olevien jatkoksi. Seuraava ohjelma liittää tiedostoon 10000 tavua, jotka ovat taulukossa.
Dim tiedot(10000) As Byte Open "c:\vb\testi.exe" For Binary As #1 Seek #1, LOF(1) + 1 Put #1, , tiedot Close #1
Parin kokeilun perusteella ohjelman toiminta ei häiriinny, vaikka sen jatkeeksi pistäisi omaa tietoa. Muistaakseni exe-formaatin alussa on kyllä tiedoston kokoon liittyvä arvo, mutta tätä ei ilmeisesti tarkisteta ohjelmaa ajettaessa.
Omaa ohjelmaa ei pysty muokkaamaan ajon aikana (lukeminen saattaa kyllä onnistua).
Mietin itsekkin aluksi tuota vaihtoehtoa, mutta sitten ajattelin, että se tekee exen käyttökelvottomaksi, mutta ei se näemmä teekkään. Kiitos kaikille!
Mutta entä iconin vaihto?, vai onko se liian vaikeata toteuttaa?
Ikonia voi vaihtaa, se löytyy sieltä jostain resursseista, mutta varaudu viettämään joitakin tunteja lukemassa tuosta exejen resurssiformaatista.
Jos tuo on tarve tehdä vain tehdä, voit toki käyttää jotain valmista ohjelmaa, kuten PE Resource Exploreria, näyttäis olevan Delphi-sorsat mukana, joten siitä voi saada jotain vinkkiä tuohon mahdolliseen omaankin toteutukseen.
Ohjelman kuvake on toki tallennettu tavalla tai toisella ohjelman sisään, mutta enpä tiedä, kuinka vaikeaa sen muuttaminen on jälkeenpäin. Ainakin jos omaa VB-ohjelmaa tarkastelee heksaeditorilla, kuvakkeen pikselit pystyy näkemään. Kuvake on siis ilmeisesti ohjelman sisällä samassa muodossa kuin kuvaketiedostossakin (ico).
Aihe on jo aika vanha, joten et voi enää vastata siihen.