Onko mahdollista tehdä sellaista kääntäjää, joka kääntää exe:t koodiksi? Se olisi erittäin hauska ja kun niitä kommentteja ei tallenneta exeen niin ne voisi jättää kokonaan pois :D.
edit: jos osaa konekieltä :D
Onhan se mahdollista. Pitäisi minunkin koettaa onneani ja pistää se vaikka koodivinkkeihin. Eikös se ole pelkkää nollaa ja ykköstä. :)
Tuota tekniikkaa kutsutaan termillä "reverse engineering". Takaisin koodiksi ei käännettyä binääriä saa muualla kuin kunnianhimoisissa haaveissa, mutta Visual Studion työkaluista löytyy työkalut, joilla käännettyä koodia pääsee ihailemaan... suurin osa on käsittämätöntä mössöä ja oikeasti pojat - ei ne ykköset ja nollat ole luettavassa muodossa... ne kuvastavat eri "kytkimien" tiloja.
joo, siis binaaria ei saa enää koskaan puhtaaksi lähdekoodiksi sen jälkeen kun se on käännetty, tietty siitä jotain saadaan irti aina kunhan jaksaa säätää mutta liukunumeroidut koodit on aika tuskallista :D
ja antti, näin on :)
Binäärikoodin saa purettua Assembleriksi, ja täysin kommentoimaton asm-koodi ilman muuttujia (pelkät muistiviittaukset) on ilkeää luettavaa.
Liukunumeroidut koodit? Mitähän tuo mahtaa tarkoittaa? :-)
Kuten sqwiik sanoi, kyllähän se mahdollista on mutta ilkeää luettavaa. Tosin nykyisin on olemassa niin hyviä disassemblereita että ne auttavat jo paljon jos kiinnostaa tietää miten jokin ohjelma toimii.
Java class-tiedostojakin voi decompiloida erillisillä decompilereilla. Mutta nehän ei oo exejä..
Mutta jos esim. QB lukee tiedostoa, niin sehän näyttää kaikki ykköset ja nollat ASCII-koodeina. Siitä vaan sitten muuttaa luetut ASCII-koodit tavuiksi binäärimuotoon, niin pitäisi saada ne nollien ja ykkösten sarjat. Vai olenko nyt ihan väärässä?
lainaus:
Liukunumeroidut koodit? Mitähän tuo mahtaa tarkoittaa? :-)
Kuten sqwiik sanoi, kyllähän se mahdollista on mutta ilkeää luettavaa. Tosin nykyisin on olemassa niin hyviä disassemblereita että ne auttavat jo paljon jos kiinnostaa tietää miten jokin ohjelma toimii.
liukunumeroidut vai? luin sen jostain ja on jotain tän tyylistä:
jokaisella rivillä on oma numerointi ja kun hypitään niin ei hypitäkkään rivejä vaan päästetään eteenpäin ja luodaan virtuaalirivejä jotta ohjelma toimisi nopeammin, en kyllä tiiä onko asia näin, että ihan nettitietoa jne... oli vain pakko kirjoittaa mukaan kun kuulosti niin hienolta :DDD
mutta voisin kyllä vielä yrittää ettii siitä tietoa jotta saisi varmistuksen...
Saa nähdä mitä tulevaisuus tuo tullessaan... Ehkäpä tämäkin on joskus mahdollista :P
Itse kyllä toivon, ettei tälläistä keksittäisi koskaan.
Olisi varmaan aika helvetin tylsää koodata mitään, jos toinen voisi varastaa vuosien ohjelmointityön, ja tehdä sillä vaikkapa rahaa.
Ähhää. Enpäs jaksakkaan edes koettaa onneani :D. Eihän se olisi mukavaa tehdä tuollaista kenellekkään valmiiksi, jos tuollaista osaisi tehdä.
Siis kyllähän näitä on jo olemassa mutta luonnollisesti ne eivät toimi hirveän hyvin. Kommentit ja muuttujien nimet menetetään tietysti mikä on ihan luonnollista.
Tuo koodin varastaminen on helppoa jo nyt binäärimuodossa. Ei siihen lähdekoodia tarvita. Moni ei vain alennu tuollaiseen.
nomic, en oikein tajunnut mitä yritit selittää. Jos tarkoitit ihan muistiosoitteita niin niinhän se on. Liukunumerointi on kyllä erikoinen termi.
Sellanen varmaa onnistus avaamalla tiedoston joka on binäärisenä (esim. TextBoxiin) ja sitte vaa kaikki koodit muutettas tähän tyylii vb-koodeiks:
Text1.Text = Replace(Text1.Text, "ÿ � Windir � ", "Environ(""windir"")") 'Tähän en kyl ryhtyis! Liian iso homma..
Tässähän näitä työkalija on, mutta yksikään ei ole toistaiseksi toiminut erittäin hyvin...
Heh, en olisi uskonut että näin monta vastausta tulee sinä aikana (ei sinänsä monta) kun olin pois tietokoneelta ja reissussa :D
Monkkats, ei onnistuisi lähellekään noin helposti :)
Visual Basic-versioista vain 3.0:lle on olemassa lähestulkoon täydellinen decompileri, 4.0:lle hieman vajaampi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.