O se tilotilo i le faʻaogaina o mea vaivai

A o ou tulimatai atu i le faʻaauau pea ona talanoaina lenei mataupu, seʻi ou taʻu atu ia te oe se vaega o talaʻaga, talitonuga, ma faʻataʻitaʻiga luga vaivaiga. Ua tatou faʻalogo uma i le taimi nei, o le le saʻo e mafai ona taugata tele, ua tatou iloa uma lava e tatau ona tatou tausisi pea i le tatou polokalame, ua tatou iloa uma o le tele o faʻafouga e mafua mai i le saogalemu bugs. Ae o le asō o le a ou taʻuina atu ia te oe sina mea e uiga i nei mea sese ua maua ma faʻaaogaina 🙂 Ae e te leʻi faia lenei mea o le a matou faʻamalamalamaina ni nai auiliiliga ina ia maua ai se sili lelei vaʻaiga lautele.

Ae e te leʻi amata

Muamua ou te fia taʻu atu ia te oe o le a matou taulaʻi atu i le muamua vaivai na ou aʻoaʻo e faʻaoga, le iloa Faʻafe le tafe, i lenei lamatiaga tatou faʻaaogaina le le lava o le manatuaina faʻamaoniga e faia ai mea malie let's Ae seʻi o tatou faʻamanino atili teisi e uiga i ai.

E leʻo se mea moni lea a le lalolagi

E le mafai ona ou aʻoaʻoina latou e gagau soʻo se polokalame latou te matamata ai - muamua ona e mataʻutia mo a latou komepiuta, lona lua aua e sili atu nai lo laʻu masani upu o upu.

Matou te o i se malaga i le 80s

O le a le mea o le a ou faʻaalia ia te oe e mafai ona ou faia i luga o laʻu komipiuta feaveaʻi, ae le o lona uiga e mafai ona faia i aso nei i se auala faigofie 🙂 tele o nei manatu na maeʻa faʻaogaina i le tele o taimi e fou auala puipuia ma fou auala e sola ese ai. ua latou aliaʻe 😛 ae o le toe faʻafoʻi mai tatou i le nofoaga e tasi, e leai se avanoa e taʻu atu ai i na mea uma 🙂

Atonu e le galue i lau masini faʻagasologa

E ui lava o le a ou faʻaaogaina se sili faigofie faʻataʻitaʻiga, ou te manaʻo ia sili ona manino mai le amataga o auiliiliga o lenei e matua tele ma eseese lava e pei ona mafai ona oʻo mai i fafo tutusa ma aʻu, pe a e manaʻo e faʻataʻitaʻia. , o le manaʻoga aafiaga ono le mafai foi ona ausia 🙂 Ae mafai ona e mafaufauina e le mafai ona ou faʻamatalaina i lenei avanoa, aemaise lava talu ai ma lenei folasaga ua uma ona ou faia sili atu nai lo 300 upu, o lea tatou te saʻo ai i lo tatou manatu.

O le a Buffer Lafoaʻi

Ina ia taliina lenei mea tatou muamua malamalama i le muamua afa o lenei tuʻufaʻatasiga.

Buffers

E pei o mea uma e uiga i le manatuaina i totonu o se komepiuta, e fetaui lelei e tatau ona i ai ni ituaiga o faʻamatalaga container. A tatou talanoa e uiga i meafaigaluega galuega faatino, matou o saʻo mai i le mataupu o le faʻamau. Ina ia faapuupuuina, a taofi O se manatua avanoa o faʻamatalaina tele o le a tatou o le a teu ai se aofaʻiga o faʻamatalaga, faigofie 🙂

O le soʻoga e tupu, pei ona faʻaalia i le igoa, pe a faʻatumu e se faʻamau se tele o faʻamatalaga nai lo le mea e mafai ona ia gafatia. Ae aisea e taua ai lenei?

faʻaputu

Faʻailoaina foʻi faʻaputuga, o ni faʻamatalaga faigata e mafai ona tatou iai faaputuga faamatalaga, latou autu autu o le i ai o latou okaina LIFO (Mulimuli I Le Muamua I Totonu). Sei tatou mafaufau mo se sekone e uiga i se faaputuga o papatusi, matou tuʻu i luga luga taʻitasi, ona matou aumaia lea i fafo taʻitasi mai luga, o lenei faia le ipu mulimuli na matou tuʻuina (le tasi o loʻo i le pito i luga ) o le ipu muamua lea o le a tatou ave i fafo, e mautinoa lava pe a mafai ona tatou aveʻese mai le tasi ipu i le taimi ma tatou filifili ai e faia i lena faʻatonuga: P.

Lea ua e iloa nei manatu e lua, e tatau ona tatou faʻatulaga lelei. O faaputuga e taua aua e tofu lava le polokalame tatou te tamoe ai faaputuga faaputuga. Ae o lenei faaputuga ei ai uiga faapitoatupu i lalo. Pau lava le mea e tatau ona e iloa e uiga i lenei o le a o se polokalama o tamoʻe, pe a fai o se gaioiga e valaʻau, o le faaputuga alu ese mai le numera X i le manatuaina i se numera (Xn). Ae ina ia mafai ona faʻaauau e tatau ona tatou malamalama i se tasi manatu.

Faʻasino igoa

Lenei o se manatu e faʻateʻa ai le tele o polokalame pe a latou amata i le lalolagi o C, o le mea moni o le malosiʻaga tele o polokalame C e mafua mai i se vaega o le faʻaaogaina o faʻasino. Ina ia faʻafaigofie, o se faʻasino tusi tusi i le tuatusi manatua. Lenei foliga faigata, ae e le faigata tele, e iai uma le RAM i totonu o a tatou masini e saʻo? Ia, o lenei e mafai ona faʻamatalaina o se faʻasologa sosoʻo o poloka, o nei nofoaga e masani ona faʻaalia i numera hexadecimal (mai le 0 i le 9 ma le mai le A i le F, pei o le 0x0, 0x1, 0x6, 0xA, 0xF, 0x10). Lenei o se fiailoa tusi, 0x10 LEAI e tutusa ma le 10 😛 pe a tatou faʻaliliuina i le decimal order e tutusa lava ma le fai atu 15. O se mea lea e faʻaletonuina foi le sili atu ma le tasi i le taimi muamua, ae tatou o ifo i ai.

Faamaumauga

E gaosi le aufaigaluega ma le numera o faamaumauga, lea e galue e lafoina nofoaga mai faʻamanatu tino i le masini, mo fausaga e faʻaaoga ai 64-bits, o le numera o lesitala e tele ma faigata ona faʻamatalaina iinei, ae ia maua le manatu, o lesitala e pei o faʻasino tusi, latou faʻailoa i isi mea mea , avanoa avanoa (nofoaga).

Faʻataʻitaʻi nei

Ou te iloa o le tele o faʻamatalaga e faʻagaioia e oʻo mai i le taimi nei, ae o le mea moni o ni faigata mataupu o loʻo ou taumafai e faʻamatala i se auala faigofie lava, o le a matou vaʻaia se tamaʻi polokalame e faʻaaoga ai buffers ma o le a matou o solia ia malamalama i lenei e uiga i overflows, mautinoa o lenei tasi e le O se moni polokalama, ma o le a tatou o "aloese" tele o le countermeasures o loʻo faʻaaoga i aso nei, na o le faʻaalia pe na faʻapefea ona faia mea muamua 🙂 ma ona o nisi o nei mataupu faʻavae e manaʻomia ina ia mafai ai ona aʻoaʻo atili mea faigata 😉

GDB

O se sili lelei polokalama e le masalomia o se tasi o sili ona faʻaaogaina e tagata fai polokalame C. Faatasi ai ma le tele o amio lelei ua tatou maua le mea moni e mafai ai ona tatou vaʻai i nei mea uma na tatou talanoaina e oʻo mai i le taimi nei, tusi resitala, faʻaputuga, faʻamau, ma isi. Seʻi tatou vaʻai i le polokalama lea o le a tatou faʻaaogaina mo a tatou faʻataʻitaʻiga.

toe fa'aulu.c

Umia Christopher Diaz Riveros

O se polokalama faigofie lenei, o le a tatou faʻaaogaina le faletusi stdio.h ia mafai ona maua faʻamatalaga ma faʻaali atu i se terminal. E mafai ona tatou vaʻaia se gaioiga e taʻua return_input e tupu a taofi valaau faatulagaga, lea e i ai le umi o le 30 togi (o le char data ituaiga o 1 byte umi).

O le galuega gets(array); talosagaina faʻamatalaga e ala i le faʻamafanafana ma le aoga printf() faʻafoʻi mai mea o loʻo tuʻufaʻatasia ma faʻaali i luga ole lau.

Uma polokalama tusia i C amata i le gaioiga main(), o lenei o le a naʻo le vaʻaia o le valaʻauina return_input, o lea o le a tatou tuʻufaʻatasia le polokalama.

Umia Christopher Diaz Riveros

Sei o tatou aveina sina vaega o le mea na ou faia. O le filifiliga -ggdb taʻu i le gcc e tuʻufaʻatasia le polokalama ma faʻamatalaga mo gdb ia mafai ai ona debug lelei. -fno-stack-protector O se filifiliga e mautinoa e le tatau ona tatou faʻaaogaina, ae o le a tatou faʻaaogaina aua a leai o le a mafai ona faʻatupuina le faʻaputuga ova i luga o le faaputuga. Ile iʻuga ua ou faʻataʻitaʻia le iʻuga. ./a.out naʻo le faʻatautaia o le mea na faʻatoa ou tuʻuina mai, na te fesili mai ia te aʻu mo faʻamatalaga ma toe faʻafoʻi mai. Tamoe 🙂

Lapataiga

Le isi tusi iinei. O mafai ona e iloa atu lapataiga? manino o se mea e amanaʻia pe a tatou galulue ma le code pe tuʻufaʻatasia, o lenei e fai si manino ma e i ai ni nai polokalama o aso nei ua i ai le aoga gets() I le numera. Tasi le aoga o Gentoo o le tuʻufaʻatasia o polokalame taʻitasi, e mafai ona ou vaʻaia le mea e sese, e le tatau ona i ai se polokalama "lelei", ae e te ofo i le tele o polokalame tetele o loʻo iai nei lapataiga aua e MATUĀ tele lava ma faigata ona faʻamaumau ia latou.mamaʻa gaioiga pe a fai e tele lapataiga i le taimi e tasi. Afai tatou te faʻaauau pea

Debugging le polokalama

Umia Christopher Diaz Riveros

Lenei o lenei vaega e mafai ona fai si le mautonu, ae talu ai ua uma ona ou tusia teisi, ou te le gafatia e faʻamatala mea uma, faʻamolemole pe a e vaʻai mai o lea ou te alu saosaoa 🙂

Disarming le numera

Tatou amata ile vaʻavaʻai atu i le matou polokalame masini gagana tuʻufaʻatasia.

Umia Christopher Diaz Riveros

Lenei o le numera o la tatou autu galuega i Aoao Faitulafono, o le mea lea e malamalama i ai le matou masini, o le laina i le agavale o le tuatusi faʻapitoa i le mafaufau, o le <+ n> ua lauiloa o faʻasalaga, masani lava le mamao mai le amataga o le gaioiga (autu) i lena faʻamatalaga (lauiloa o opcode). Ona tatou vaʻaia lea o le ituaiga o faʻatonuga (tulei / Mov / callq…) ma le tasi pe sili atu resitara. Aoteleina e mafai ona tatou fai atu o le faʻailoga mulimuli mai e le mafuaʻaga / amataga ma le taunuʻuga. <return_input> faasino i le tatou galuega lona lua, seʻi o tatou vaʻai atu.

Faʻafoʻi mai

Umia Christopher Diaz Riveros

E fai lava si faigata lenei mea, ae naʻo loʻu manaʻo ia e siaki ni nai mea, e iai le igoa e valaʻau <gets@plt> ma le tasi mulimuli opcode valaʻauina retq faʻailoa mai le iʻuga o le gaioiga. O le a tatou tuʻuina ni togi faʻapitoa, tasi i le faʻagaioiga gets ma le isi i le retq.

Umia Christopher Diaz Riveros

momoʻe

O lea o le a tatou tamoeina le polokalama e vaʻai pe faʻafefea ona amata le gaioiga.

Umia Christopher Diaz Riveros

E mafai ona tatou vaʻaia o se tamaʻi u fanafana foliga mai o loʻo faʻaalia ai le opcode le mea o tatou i ai, ou te manaʻo latou te mafaufau i le itu 0x000055555555469b, ole tuatusi lea pe a uma le valaʻau ia return_input i gaioiga main , e taua lenei ona o le mea lea e tatau ona toe foʻi ai le polokalama pe a maeʻa ona e mauaina le faiga, tatou o atu i le gaioiga. O lenei o le a tatou siakiina le manatuaina ae le i ulufale i le gaioiga gets.

Umia Christopher Diaz Riveros

Ua ou toe tuʻuina le galuega autu mo oe, ma ua ou faʻamamafaina le tulafono sa ou faʻasino i ai, pei ona e vaaia, ona o le faʻamaoni ua vavaeʻese i ni vaega se lua, ou te manaʻo latou te mafaufau i le itu 0x7fffffffdbf0 (o le muamua mai le agavale ina ua maeʻa le commando x/20x $rsp) talu ai o le nofoaga lenei e tatau ona tatou faʻaaogaina e siaki ai iʻuga o mauaina, tatou faʻaauau:

Solia o le polokalama

Umia Christopher Diaz Riveros

Na ou faamamafaina na 0x44444444aua o latou o sui o a tatou Ds 🙂 nei ua amata ona tatou faʻaopopoina faiga i le polokalame, ma e pei ona e vaʻaia, e naʻo le lua laina mai la matou tuatusi manaʻomia, o le a matou faʻatumuina seʻia oʻo i luma tonu o tuatusi na matou faʻamamafaina i le laʻasaga muamua.

Suia o le auala toe foi

O lenei ua mafai ona tatou ulufale i totonu o lenei vaega o le numera i le mea o loʻo faʻailoa mai ai le toe foʻi mai o le gaioiga, seʻi o tatou vaʻai pe o le a le mea e tupu pe a tatou suia le tuatusi o le a sou finagalo pe a tatou toe foʻi i return_input? Ae mo lenei, e tatau ona tusia le tuatusi tatou te manaʻo ai i le binary, o le a tatou faia ma le gaioiga printf mai bash 🙂

Umia Christopher Diaz Riveros

Lenei ua matou mauaina faʻamatalaga faʻalua 😀 mautinoa o le polokalama e leʻi faia mo lena, ae ua mafai ona tatou solia le tulafono ma faia ia toe faia se mea e le tatau ona faia.

Mafaufauga Loloto

O lenei suiga faigofie e mafai ona mafaufauina a faaaogā matua taua 🙂 na ia mafai ona solia le polokalama ma faia se mea tatou te mananaʻo na te faia.

Naʻo le sitepu muamua lava lea ile lata mai o le lisi o mea e vaʻai ma faʻaopopo, e iai auala e faʻaopoopo ai mea e tele nai lo le naʻo le faʻataʻitaʻi o se faʻatonuga, ae ole taimi lea ua tele mea na ou tusia ma mea uma e fesoʻotaʻi ma atigi figota o se mataupu e tusia sili atu nai lo tusitusiga, maeʻa tusi ou te fai atu ai. Faʻamolemole pe a fai ua le mafai ona ou suʻesuʻeina teisi atu i mataupu ou te manaʻo ai, ae e mautinoa lava o le a iai se avanoa 🙂 Talofa ma faʻafetai mo lou taunuʻu mai iinei.


O mataupu o le tusitusiga e tausisi ia tatou mataupu silisili o amio lelei faʻatonu. E lipotia se mea sese kiliki iinei.

14 manatu, tuʻu lau

Tuʻu lau faamatalaga

o le a le lomia lou tuatusi imeli.

*

*

  1. E tali atu mo faʻamatalaga: Miguel Ángel Gatón
  2. Faamoemoega o faʻamatalaga: Pulea le SPAM, faʻamatalaga pulega.
  3. Tulaga faʻatulafonoina: Lau maliega
  4. Fesoʻotaʻiga o faʻamatalaga: O faʻamatalaga o le a le fesoʻotaʻi atu i isi vaega vagana i tulafono faʻatulafonoina.
  5. Teuina o faʻamatalaga: Faʻamaumauga tuʻufaʻatasia e Occentus Networks (EU)
  6. Aia Tatau: I soo se taimi e mafai ai ona e faʻatapulaʻaina, toe maua ma aveʻese au faʻamatalaga.

  1.   2p2 malo

    Ia e tuusao atu. Tusi itiiti ma taulaʻi i mea e taua

    1.    ChrisADR malo

      Talofa, faafetai mo le faamatalaga.

      Ina ia taʻu le mea moni, ua ou tipiina se lelei tele o aitia, ae tusa lava pe o le a le mea ia te aʻu na ou tuua le maualalo ina ia mafai ai e se tasi e leai sona polokalame malamalama ona maua se aitia.

      Tali i le upusii

      1.    Faalilolilo malo

        O le faʻafitauli o i latou e leai ni malamalamaʻaga faʻapolokalameina o le a le iloaina e uiga i se mea ona e faigata tele ona amataina, ae o latou e iloa pe faʻapefea ona polokalame faʻafetaia le sili tuʻusaʻo.

        Ou te manatu e le mafai ona e oʻo atu i tagata uma, e tatau ona e filifili, ma i lenei tulaga ua e agasala e te manaʻo e ufiufi tele.

        I le ala, ou te fai atu ia te oe o se lelei faitioga, ou te fiafia i nei mataupu ma ou te manaʻo ia e faʻaauau tusitusiga tusitusiga, faʻamalo!

    2.    Faalilolilo malo

      Ou te manatu tutusa.

      1.    ChrisADR malo

        Faafetai lava ia te outou uma !! E mautinoa e faigata ona malamalama pe faʻafefea ona oʻo atu i le au maimoa aʻo le mea moni o le numera o tagata ma le alualu i luma tulaga o polokalame e faitau i nei tusitusiga e maualalo (sili atu e mafai ona malamalama e faʻavae i luga o le faʻamatalaga)

        Ua ou agasala lava mai le manaʻo e faʻafaigofie se mea e manaʻomia ai se malamalama lautele faʻavae ia malamalama ai. Ou te faamoemoe ua e malamalama talu ai o lea faatoa ou amata i le blogging, ou te leʻi mauaina lava le tulaga tonu o loʻo iloa ai e laʻu au faitau ma malamalama ai i mea ia ou te fai atu ai. Ole mea e faʻafaigofie ai ona taʻu le mea moni 🙂

        O le a ou taumafai e faʻapuʻupuʻu pe a talafeagai e aunoa ma le faʻailoaina o le faʻatulagaina, talu ai o le tuʻu eseʻeseina o le ala o le tusitusi mai le anotusi e fai si faigata tele nai lo le tasi ono mafaufauina, o le mea sili ua ou fesoʻotaʻi, ae ou te manatu o le a mafai ona ou e faʻaopopo laina i lo le tipiina o mea.

        Tali i le upusii

  2.   Mário malo

    O fea e te maua ai nisi faʻamatalaga e uiga i le mataupu? E iai se tusi fautuaina?

    1.    ChrisADR malo

      O le faʻataʻitaʻiga na aumai mai le The Shellcoder's Handbook e Chris Anley, John Heasman, Felix Linder ma Gerardo Richarte, ae ina ia mafai ona faia le faaliliuga 64-bit sa tatau ona ou aʻoaʻoina e uiga i laʻu tusiata fale, o le tusi lesona a le intel developer, voluma 2 ma le 3 o ni aulelei faʻavae mautinoa mo lena. E lelei foʻi le faitau i faʻamaumauga a le GDB, e o mai ma le 'info gdb' command, Ia aʻoa le Assembly ma le C e tele tusi lelei, seʻi vagana o tusi a le Assembly e fai si leva ona iai le avanoa e faʻatumu ai seisi ituaiga tusitusiga.

      O le atigipusa lava ia e le toe aoga i nei aso ona o mafuaʻaga eseese, ae e manaia pea le aʻoaʻoina o metotia fou.

      Talosia e fesoasoani teisi 🙂 Talofa

  3.   Franz malo

    Lelei tusitusiga, ua toe fanaufouina le blog tuai desdelinux =)
    A e fai mai o le atigi atigi e le lelei tele, o lona uiga o fesuiaʻiga fuafuaina e faʻaitiitia ai osofaʻiga, latou taʻua o le leaga le puipuiga.
    Talofa ma tumau ai

    1.    ChrisADR malo

      Faafetai tele lava Franz 🙂 upu agalelei tele, o le mea moni na ou fai atu o le Shellcoding i aso nei e sili atu ona faigata nai lo le mea tatou te vaʻaia iinei. O loʻo ia i matou le ASLR (random memory location generator) le faʻaputuga puipuiga, o fua eseese ma faʻafitauli e faʻatapulaʻaina ai le numera o opcodes e mafai ona tuiina i totonu o se polokalame, ma ua naʻo le amataga.

      Faafetai,

  4.   Free Software malo

    Talofa, e te faia se isi vaega faʻalauteleina le autu? E manaia

    1.    ChrisADR malo

      Talofa, o le autu e mautinoa lava e manaia, ae o le maualuga o le faigata o le a tatou faia o le a avea ma maualuga tele, masalo e aofia ai le tele numera o pou e faʻamatala ai le tele o mea e manaʻomia ia malamalama i le isi. Masalo o le a ou tusia e uiga i ai, ae le o le a avea ma lalo pou, ou te manao e tusi ni nai autu ae leʻi faʻaauau pea ma lenei tasi.

      Talofa, ma faafetai mo le fetufaai

  5.   cactus malo

    Lelei tele che! O loʻo e faia saofaga sili pou! Tasi le fesili, ua ou amataina lenei mea IT Security i le faitauina o se tusi ua faʻaigoaina "Faamautinoa le saogalemu e ala i le suʻega peni". O fautuaina lenei tusi? Faʻafefea ona e fautua mai e amata ona ou fesili e uiga i nei mataupu?

    1.    ChrisADR malo

      Talofa cactus, o se atulaulau atoa e uiga i vaivaiga, ma isi, ia taʻu le mea moni e faalagolago tele i mea e tosina mai i ai lou mafaufau, ma manaʻoga o ia te oe, e le manaʻomia e se pule IT le iloaina o le mea e tasi e pei o se peni-suʻega, Pe o se tagata suʻesuʻe vaivai, poʻo se tagata suʻesuʻe faʻapitoa, o se vaega e toe faʻaleleia mea faʻafuaseʻi e matua eseʻese lava ona tomai. E manino lava o latou taʻitasi e manaʻomia se eseʻese tulaga o le poto faʻapitoa, ou te fautua atu ia e amata mauaina tonu le mea e te manaʻo ai, ma amata 'ai tusi, tusitusiga, ma isi, ma sili ona taua, faʻataʻitaʻi mea uma e te faitau ai, tusa lava pe ua tuai., Lena o le a faia se eseesega i le iuga.
      Faafetai,

  6.   Sefulutasi malo

    Talofa!
    Faʻafetai tele lava mo le faʻamalamalamaina o lenei mataupu, faʻapea foi ma le faʻamatalaga mo lena faʻamatalaga atili ua matou maua "Le Shellcoder's Handbook". Ua i ai laʻu faitauga faʻatalitali 😉