pitäisi vähän muokata yhtä .net ohjelmaa joka käsittää yhden .exe tiedoston. olen avannut ohjelman .net reflectorilla ja löytänyt kohdan johon ilmeisesti pitäisi tehdä pieni muutos.
jos kuvitellaan että yhden flagin arvoksi tulee "true" kun tietyt asiat on kohdallaan niin nyt pitäisi lisätä rivi jotta sen arvoksi tulee "true" joka tapauksessa oli asiat kohdallaan tai ei.
kysymys kuuluu että miten tällainen tehdään ei tuolla ohjelmalla ainakaan onnistu?
jos kuvitellaan että yhden flagin arvoksi tulee "true" kun tietyt asiat on kohdallaan niin nyt pitäisi lisätä rivi jotta sen arvoksi tulee "true" joka tapauksessa oli asiat kohdallaan tai ei.
kysymys kuuluu että miten tällainen tehdään ei tuolla ohjelmalla ainakaan onnistu?
Vastaukset 12
Vanhimmat
Avaat ohjelman lähdekoodien projektin esim. Visual Studioon ja muokkaat, ja sitten käännät ohjelman siihen .exe tiedostoon.
siis ei ole kuin pelkkä .exe tiedosto ei ole mitään lähdekoodia ja olen saanut sen .net reflectorilla avattua ja löydettyä muutettavan kohdan (ainakin näin luulisin että sitten se alkaa toimia) mutta nyt en saa tehtyä muutoksia. jos laitan visual studion niin saako sillä avattua jo valmiin .exen ?
Ei sitä valmista .exe tiedostoa käytännössä muuteta. Muutokset tehdään lähdekoodin ja siitä käännetään se .exe tiedosto.
lähdekoodia ei ole saatavilla joten nyt on pakko tehdä valmiista exestä että saan ohjelman toimimaan.
Varmaan kannattaisi olla yhteydessä ohjelman tekijään, että korjaa siinä olevan vian.
no ei vaan nyt pitäisi saada tietoa että miten sen saan korjattua ihan itse. kun kerta saan sen .net reflectorilla auki ja tutkittua niin kai se jotenkin täytyy saada muokattuakin!
kysymys kuuluu että miten valmis .exe saadaan avattua ja muutettua ja sitten kasattua takaisin. siis saatavilla on valmis .exe tiedosto ei mitään lähdekoodeja tai muitakaan ja tämä on tehtävä näillä ei ole mahdollisuuksia muuhun.
.exe -> .exe muutos on lähinnä sitä, että otat heksaeditorin ja muokkaat jotain bittejä. On vaan vähän vaikeata kun ei ole ihmisen luettavassa muodossa.
https://en.wikipedia.org/wiki/.NET_Reflector
Tuossa sanotaan, että .NET reflectorilla saa purettua sen CLI koodin esim. C#:ksi.
Eli käytännössä, voit sillä .NET reflectorilla purkaa siitä .exe:stä lähdekoodia ja muutella sitä sitten.
Tästä lähdekoodista tehdään sitten uudestaan .exe, kääntäjällä, joka löytyy esim. Visual Studiosta. Siihen sitten ei käytännössä ole mitään lyhyttä yleisohjetta, että menee ohjeiden lukemiseksi sitten siinä kohtaa.
Pointti lähinnä se, että .exe tiedostoja ei käytännössä muokata suoraan. Ne tehdään lähdekoodeista. Heksaeditorilla jos tarkastelet sitä ohjelmaa niin se näyttää sitten tältä: https://fi.wikipedia.org/wiki/Tiedosto:Hexedit-screenshot.png
Että siitä on sitten helvetin paljon vaikeampaa tulkita. Uuden ohjelman tekee silloin helpommin.
Jos binaarikoodiin ei ole lähdetiedostoja, niin yhden ihmisen resurseilla ei voi kummoisia tehdä.
Eli tuo tarkoittaa että suljetun koodin ohjelmistot ovat paremmin turvattuja. Avoimen koodin ohjelmistoista saa helpommin tehtyä haittaohjelmia.
Siksi niitä haittaohjelmia varmaankin on MS-tuotteissa niin paljon ollutkin. :D
Ohjelmistoja ei muuteta haittaohjelmiksi. Ohjelmissa oleville turva-aukoille tehdään haittaohjelmia.
Sillä ei ole käytännössä mitään merkitystä onko lähdekoodeja vai ei.
http://www.digitoday.fi/tietoturva/2015/08/15/raju-syytos-virustorjuja-sabotoi-kilpailijoita--ja-heidan-asiakkaitaan/201510396/66
Vai oliko asia vastoinpäin?