Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
LKits
HV Guru

liitunud: 06.09.2007
|
26.06.2011 09:53:08
Koodi "lisamine" programmi koodi |
|
|
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 |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
26.06.2011 10:02:38
|
|
|
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 |
|
 |
LKits
HV Guru

liitunud: 06.09.2007
|
26.06.2011 10:06:53
|
|
|
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 |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
26.06.2011 10:08:04
|
|
|
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 |
|
 |
LKits
HV Guru

liitunud: 06.09.2007
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
26.06.2011 10:13:23
|
|
|
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 |
|
 |
mark11
HV vaatleja
liitunud: 28.01.2006
|
28.06.2011 22:54:13
|
|
|
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 |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
28.06.2011 23:24:51
|
|
|
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 |
|
 |
LKits
HV Guru

liitunud: 06.09.2007
|
29.06.2011 10:11:07
|
|
|
Ja seda see teebki. Küll saan stacki taastada, kuid see võtab omakorda ruumi, mida mul ei ole... krt
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 |
|
 |
|
lisa lemmikuks |
|
|
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
|
|