Piti tehdä valeohjelma.

Sellainen joka kaappaa välistä pääohjelman ja pääohjelman osan, pienemmän ohjelman väliset parametrit ja muuntelee niitä siinä välissä.

Ei pystynyt mitenkään muuten tekemään erästä juttua kuin valeohjelman siihen niiden väliin jotta pääohjelma luulee sitä parametrejä muuntelevaa valeohjelmaa oikeaksi, eikä huomaa mitään.

Kun ei ollut käytössä sellaista ylellisyyttä kuin dokumentaatio, lainkaan.
61679
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Kerro ihmeessä tarkemmin.

Mikä ympäristö? Oliko kohdeohjelmien lähdekoodi saatavilla? Mitä ohjelmointikieltä käytit? Voitko lähdekoodin omasta ratkaisustasi tai edes periaatteen?

Äänestä

DVD-videoiden ja kuvien editointia, adoben ohjelmia... ei lähdekoodia ole saatavilla noissa...

Äänestä

Itse yritin joskus 10 vuotta sitten tehdä Windowissa niin että pakkasin toisen Exen käynnistyvään pinemmän Exen sisään, tämä latasin sitten sen varsinaisen Exen muistista ja yritti käynnistää sen, mutta Windows esti sen laittomana toimintana.

Äänestä
  • Toiminto sinänsä ei ole laiton, mutta pienikin virhe tuollaisen ohjelman toteuttamisessa kylläkin johtaa laittomaan toimintoon !

    vinkki: joskus kannattaa koodata DLL sen iänikuisen EXEn sijasta.

    Esim. näin:

    Sinulla on muualta sellaisenaan saatu ALKUPER.EXE

    Tuosta ALKUPER.EXE ei ole lähdekoodeja, joten joudut itse debuggerin ja/tai disassemblerin avulla selvittämään tuon sisäistä toimintaa, jos jotain haluat muokata.

    Koodaat itse MUOKKAAJA.DLL (Tämän voi aivan yhtä hyvin koodata Delphillä kuin C:llä).

    Myös koodaat itse LATAAJA.EXE

    Myös LATAAJA.EXEn voi koodata Delphillä (toki se C:lläkin on mahdollista tehdä).

    Mitäkö tuo LATAAJA.EXE tekee?

    1. Kutsuu Windows API -funktiota: CreateProcess(..., CREATE_SUSPENDED, ...)

    2. Käytä Windows API -funktioita WriteProcessMemory ja ReadProcessMemory

    Voit myös joutua muokkaamaan uuden prosessin ajoympäristöä: erityisesti rekisterin EIP (32-bit) tai RIP (64-bit) arvoa siten, että se osoittaa uuteen koodiin, jonka itse lisäsit uuteen prosessiin.

    Uuden 4 KiTavun muistialueen lisääminen vieraaseen prosessiin (= ALKUPER.EXE):

    Käytä Windows API -funktioita VirtualAllocEx.

    Joudut kirjoittamaan pienen palan konekielikoodia, joka tekee seuraavaa:

    Muokk := LoadLibrary('MUOKKAAJA.DLL');
    P := GetProcAddress(Muokk, 'OMA_MUOKK');

    sitten kutsut funktiota P, joka on todellisuudessa funktio OMA_MUOKK itse tekemässäsi MUOKKAAJA.DLL.

    Normaalisti hyviin tapoihin kuuluisi ohjelman lopussa kutsua FreeLibrary(Muokk), mutta jos edellä kuvatulla tavalla muokkaat toisen tekemää koodia, niin sinulla ei ole varaa moiseen ylellisyyteen - kun et tarkkaan tiedä, milloin sitä pitäisi kutsua - tämä ei kuitenkaan ole vakava bugi, koska käyttöjärjestelmä vapauttaa lopetettavan prosessin RAM -muistin joka tapauksessa.

    Äänestä

Valeohjelman sijaan voidaan puhua väliohjelmasta, middlewaresta.

Middlewarea käytetään mm. verkkoliikenteessä, kun halutaan lisätä tunnistetiedot lähetettävään http-otsikkoon automaattisesti, ja tarkastamaan onko http-pyynnöllä oikeus johonkin resurssiin.

Äänestä
  • "ja tarkastamaan onko http-pyynnöllä oikeus johonkin resurssiin."

    Onko siis valtion eri palveluissaan (Traficom, Kela, Te-toimisto, omakanta jne.) käyttäjän tunnistamiseen käyttämä suomi.fi -palvelu Middlewarea ?

    Äänestä

Kommentoi aloitusta


Anonyymi kirjoitti:

Sellainen joka kaappaa välistä pääohjelman ja pääohjelman osan, pienemmän ohjelman väliset parametrit ja muuntelee niitä siinä välissä.

Ei pystynyt mitenkään muuten tekemään erästä juttua kuin valeohjelman siihen niiden väliin jotta pääohjelma luulee sitä parametrejä muuntelevaa valeohjelmaa oikeaksi, eikä huomaa mitään.

Kun ei ollut käytössä sellaista ylellisyyttä kuin dokumentaatio, lainkaan.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu