Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Kääntäjä?

Sivun loppuun

makeuu [11.03.2004 08:02:47]

#

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

remontti-reiska [11.03.2004 08:10:23]

#

Onhan se mahdollista. Pitäisi minunkin koettaa onneani ja pistää se vaikka koodivinkkeihin. Eikös se ole pelkkää nollaa ja ykköstä. :)

Antti [11.03.2004 10:31:47]

#

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.

nomic [11.03.2004 10:38:11]

#

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 :)

sqwiik [11.03.2004 10:51:37]

#

Binäärikoodin saa purettua Assembleriksi, ja täysin kommentoimaton asm-koodi ilman muuttujia (pelkät muistiviittaukset) on ilkeää luettavaa.

thefox [11.03.2004 13:53:28]

#

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.

Sharph [11.03.2004 13:57:28]

#

Java class-tiedostojakin voi decompiloida erillisillä decompilereilla. Mutta nehän ei oo exejä..

hunajavohveli [11.03.2004 14:38:50]

#

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ä?

nomic [11.03.2004 15:43:22]

#

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...

T.M. [11.03.2004 15:50:33]

#

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.

remontti-reiska [11.03.2004 17:58:02]

#

Ähhää. Enpäs jaksakkaan edes koettaa onneani :D. Eihän se olisi mukavaa tehdä tuollaista kenellekkään valmiiksi, jos tuollaista osaisi tehdä.

thefox [11.03.2004 22:29:16]

#

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.

Monkkats [11.03.2004 22:52:32]

#

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..

Antti [12.03.2004 11:43:02]

#

Tässähän näitä työkalija on, mutta yksikään ei ole toistaiseksi toiminut erittäin hyvin...

http://scgwiki.iam.unibe.ch:8080/SCG/370

makeuu [14.03.2004 13:13:35]

#

Heh, en olisi uskonut että näin monta vastausta tulee sinä aikana (ei sinänsä monta) kun olin pois tietokoneelta ja reissussa :D

thefox [14.03.2004 13:21:47]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta