Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Koodi "lisamine" programmi koodi märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
LKits
HV Guru
LKits

liitunud: 06.09.2007




sõnum 26.06.2011 09:53:08 Koodi "lisamine" programmi koodi vasta tsitaadiga

Tere

Kas selline olukord/teguviis võib olla võimalik?
Kui mul on tervik kood ning soovin sinna midagi juurde lisada, siis kas sellisel meetodil on võimalik?:

addr1 kood1
addr2 kood2
addr3 kood3
addr4 kood4
...


ning muudan selle selliseks

addr1 kood1
addr2 kood2
addr3 JMP lisaaddr1
addr4 kood4
...

ning lisakoodis siis

lisaaddr1 kood3
lisaaddr2 lisakood1
lisaaddr3 lisakood2
...
lisaaddrXX JMP addr4


Loodan, et saate aru.

PS: Sellel on ka mingisugune oma nimetus, kuid täpselt meelde ei tule. Ehk oskab keegi teine täpsustavalt mainida, mis see olla võiks.
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 26.06.2011 10:02:38 vasta tsitaadiga

ikits kirjutas:
Kui mul on tervik kood
Defineeri "tervik kood". Hetkel jääb mulje, et sul on ainult binaar mille vist oled dissassembleriga laiali võtnud ja üritad seda muuta.

Muidu kõik on võimalik piisava aja ja viitsimisega. Teoorias peaks see su välja pakutud variant töötama küll kuid arvatavasti pead kindlaks tegema, et sealt lisakoodist tagasi tulles taastad stacki seisu samasse olukorda mis ta enne jump'i oli.

_________________
Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity"
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 86
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LKits
HV Guru
LKits

liitunud: 06.09.2007




sõnum 26.06.2011 10:06:53 vasta tsitaadiga

Kas on siis võimalik binaari niimoodi teine binaar lisada?

EDIT: Aga, kui lisakood kutsutakse esile "call" funktsiooniga? Siis peaks ju pärast lisakoodist välja tulemist olema kõik täpselt sama, mis sisse minnes?
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 26.06.2011 10:08:04 vasta tsitaadiga

Kui õige koha üles leiad ning stacki seisu taastad siis on see kindlasti võimalik.

Probleeme võib tekitada see, kui tollesse binaari on sisse ehitatud miskit sorti kaitsesüsteemid a'la checksum'i kontroll vmt.


Paraku pole ma viitsinud omale ASM'i tasemel asju päris täpselt selgeks teha seega ma pole eriti kursis kas stacki taastamine käib call'i puhul automaatselt või mitte. Eks pead selle ise selgeks tegema.

_________________
Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity"
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 86
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LKits
HV Guru
LKits

liitunud: 06.09.2007




sõnum 26.06.2011 10:10:55 vasta tsitaadiga

Checksum - arvasingi, et selline asi võib olemas olla.

Aga eks ma katsetan. Lammutan koodi natukene Ollyga ja vaatan, mis stack räägib.

_________________
itLahendused - Arvutite remont ja hooldus, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 26.06.2011 10:13:23 vasta tsitaadiga

lkits kirjutas:
Checksum - arvasingi, et selline asi võib olemas olla.
See on üks triviaalsemaid muutmise vastaseid kaitseid, on ka palju muud mida võib selleks teha. Afaik Skype peaks näiteks kasutama üht keerukamat kaitset ning minu andmetel pole seniste aastate jooksul suudetud seda lahti häkkida.
_________________
Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity"
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 86
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mark11
HV vaatleja

liitunud: 28.01.2006




sõnum 28.06.2011 22:54:13 vasta tsitaadiga

no põhimõtteliselt JMP ei muuda stacki, ta lihtsalt muudab EIPI ja kõik.
et tegelikult praktikas on sama lihtne kui teoorias, peeasi, et kood3 ja JMP instruktsioon suuruselt klapivad, muidu kirjutad miskit üle

huvi mõttes võid alguses ollyga mängida, kus lihtsam, sealt sa saad hiljem patchida need asjad permanently exele


kui kasutad CALL'i siis oleneb funktsioonis Calling conventionist, mis kutsud.

_cdecl = pmst sina oled vastutav, et pärast CALLIst returnimist kustutad ESPIst vajaliku kraami ära(tavalised C runtime funktsioonid)
_stdcall = funktsioon ise hoolitseb(enamus winapi funktsioone)
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 28.06.2011 23:24:51 vasta tsitaadiga

mark11 kirjutas:
no põhimõtteliselt JMP ei muuda stacki, ta lihtsalt muudab EIPI ja kõik.
Seda küll kuid kas mitte too koodiosa kuhu jmp'iga ajutiselt minnakse suure tõenäosusega stacki muutma ei hakka?
_________________
Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity"
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 86
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LKits
HV Guru
LKits

liitunud: 06.09.2007




sõnum 29.06.2011 10:11:07 vasta tsitaadiga

Ja seda see teebki. Küll saan stacki taastada, kuid see võtab omakorda ruumi, mida mul ei ole... krt icon_biggrin.gif


EDIT: Kasutan __stdcall ja probleem lahenes nagu võluväel! Tuli küll 5 lisanduvat bite-i, kuid stack on taastatud.
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Koodi "lisamine" programmi koodi
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.