{"id":40151,"date":"2020-01-31T20:49:28","date_gmt":"2020-01-31T17:49:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/bitva-koderov-ya-protiv-togo-parnya-s-vnc"},"modified":"2020-01-31T20:49:28","modified_gmt":"2020-01-31T17:49:28","slug":"bitva-koderov-ya-protiv-togo-parnya-s-vnc","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/bitva-koderov-ya-protiv-togo-parnya-s-vnc","title":{"rendered":"Kodart\u00e4vling: Jag mot den d\u00e4r killen med VNC","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>I <noindex><a rel=\"nofollow\" href=\"https:\/\/martinrue.com\/\">denna blogg<\/a><\/noindex> Det har publicerats en hel del programmeringshistorier. Jag gillar att minnas mina gamla dumheter. H\u00e4r kommer \u00e4nnu en s\u00e5dan historia.<\/p>\n<p>Jag blev intresserad av datorer, s\u00e4rskilt programmering, n\u00e4r jag var ungef\u00e4r 11 \u00e5r gammal. I b\u00f6rjan av h\u00f6gstadiet<b>b\u00e4sta resultatet (subjektiv \u00e5sikt).<\/b>tillbringade jag mestadels min fritid med min C64 och skrev i BASIC, f\u00f6r att sedan klippa bort d\u00e5lig kod med en sax. <noindex><a rel=\"nofollow\" href=\"https:\/\/martinrue.com\/give-yourself-more-playtime\/\">Jag skojar inte, med en sax.<\/a><\/noindex>.<\/p>\n<p>Efter skolan (vid ungef\u00e4r 16 \u00e5rs \u00e5lder) g\u00e5r brittiska barn vanligtvis p\u00e5 college, d\u00e4r de v\u00e4ljer tre till fyra \u00e4mnen att studera innan de g\u00e5r vidare till universitetet. Med tanke p\u00e5 min k\u00e4rlek till den beige l\u00e5dan och kassettbandspelaren hemma, beslutade jag att studera \"datavetenskap\" p\u00e5 college var det r\u00e4tta valet.<\/p>\n<p>Kursen \u00f6vertr\u00e4ffade mina f\u00f6rv\u00e4ntningar; d\u00e4r fick jag f\u00f6r f\u00f6rsta g\u00e5ngen l\u00e4ra mig Pascal och Delphi.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nUnder pauserna kunde studenterna arbeta vid vilken ledig dator som helst i datorsalen. F\u00f6rest\u00e4ll dig: ett stort rum som rymmer omkring hundra personer, med rader av bord fyllda med datorer med sk\u00e4rmar p\u00e5 systemen. Det st\u00e4ndiga surrandet av fl\u00e4ktar, muskul\u00e4ra klot som rullar \u00f6ver borden utan att stanna. I luften finns en konstig doft, som om 50-100 hormonproducerande ton\u00e5ringar periodiskt bytte plats f\u00f6r att kyla hundratals Pentium III-chips.<\/p>\n<p>Trots h\u00e4lsoriskerna gillade jag att sitta vid datorn n\u00e4r jag fick en ledig minut.<\/p>\n<p>I rummet fanns en administrat\u00f6r, en medel\u00e5lders man av kort v\u00e4xt som valdes f\u00f6r den h\u00e4r rollen p\u00e5 grund av sin oemotst\u00e5ndliga vilja att bli en elak diktator. Jag antar det. Att vara vakt \u00e4r en underdrift; killen \u00e4lskade verkligen sitt jobb. Han fick ansvaret att h\u00e5lla ordning s\u00e5 att ingen anv\u00e4nde skoldatorerna f\u00f6r ol\u00e4mpliga syften.<\/p>\n<p>Och \u00e4n idag s\u00e4ger min intuition mig att administrat\u00f6rens bel\u00f6ning direkt berodde p\u00e5 antalet studenter han f\u00e5ngade och f\u00f6rvisade fr\u00e5n datorsalen. Jag \u00e4r n\u00e4stan s\u00e4ker p\u00e5 att den killen tidigt betalade av sitt bol\u00e5n.<\/p>\n<p>Han satt i det avl\u00e4gsna h\u00f6rnet av datorsalen vid ett h\u00f6rnbord. Och man kunde med s\u00e4kerhet anta att hans fruktbara sk\u00e4rmar hade hittat ett s\u00e4tt att reproducera sig med en imponerande kort graviditetstid - s\u00e5 m\u00e5nga var de. Det \u00e5terstod bara att gissa om han verkligen lyckades h\u00e5lla koll p\u00e5 dem alla. Sj\u00e4lvklart sk\u00e4mtar jag... n\u00e4mnde jag att han tog sitt jobb v\u00e4ldigt p\u00e5 allvar?<\/p>\n<p>Vid den tiden k\u00f6rde datan\u00e4tverket p\u00e5 Windows 2000. Snart uppt\u00e4ckte jag att varje g\u00e5ng jag loggade in startade ett skript som startade VNC-servern med administrat\u00f6rskontot f\u00f6r fj\u00e4rr\u00e5tkomst till skrivbordet. Varje g\u00e5ng denna kille ville spana p\u00e5 dig, kopplade han direkt till din maskin och observerade. Det var obehagligt, och om man nu t\u00e4nker efter, troligen olagligt.<\/p>\n<p>Efter att ha slipat t\u00e4nderna p\u00e5 BASIC och C64 skrev jag nu i C och lite i C++. Vid den tiden hade jag ocks\u00e5 blivit v\u00e4ldigt intresserad av D-spr\u00e5ket, som enligt mig \u00e5tg\u00e4rdade vissa brister i C++.<\/p>\n<p>Jag brukade g\u00e5 in i datorsalen f\u00f6r att l\u00e4sa n\u00e5got nytt om D eller leka med Digital Mars D-kompilatorn. Ibland, n\u00e4r jag blev distraherad fr\u00e5n tankar om D:s storartade framtid, skrev jag kod i C f\u00f6r att hacka andra Win32-program genom deras f\u00f6nsterns handtag.<\/p>\n<p>P\u00e5 gamla goda dagar av programmering i Win32 var s\u00f6kandet efter f\u00f6nsterhandtag den enklaste metoden f\u00f6r att hacka andra program. Det \u00e4r uppenbart att alla program med grafiskt gr\u00e4nssnitt i Windows hade ett f\u00f6nster, \u00e4ven om det inte visades p\u00e5 sk\u00e4rmen. Genom att skriva ett program f\u00f6r att extrahera handtaget till en annan process (i huvudsak en l\u00e4nk till den) kunde du skicka meddelanden till den. Detta gjorde det m\u00f6jligt att utf\u00f6ra vissa grundl\u00e4ggande operationer, som att d\u00f6lja\/visa programmets f\u00f6nster, samt riktigt coola saker, som att f\u00e5 processen att ladda en godtycklig DLL i sitt minnesutrymme och b\u00f6rja exekvera kod. Efter DLL-injektionen b\u00f6rjade det riktigt intressanta.<\/p>\n<p>Under de f\u00f6rsta en och en halv m\u00e5naden oroade inte denna detektiv mig s\u00e4rskilt, han kopplade upp sig mot VNC-servern p\u00e5 min maskin endast en eller tv\u00e5 g\u00e5nger. Men en specifik session v\u00e4ckte troligen hans intresse. Jag skrev n\u00e5got kod i C f\u00f6r att d\u00f6lja f\u00f6nster i Minesweeper (utan att st\u00e4nga dem), f\u00f6r att g\u00f6ra det l\u00e4ttare att spela i klassen, och m\u00e4rkte pl\u00f6tsligt att den vita VNC-ikonen i systemf\u00e4ltet blivit svart. Det innebar att han nu \u00f6vervakade mig.<\/p>\n<p>Jag fortsatte att koda som vanligt, f\u00f6rs\u00f6kte att inte bry mig om honom. Under tiden b\u00f6rjade datorn verkligen lagga, n\u00e4r den f\u00f6rs\u00f6kte \u00f6verf\u00f6ra maximal bildfrekvens till en av de otaliga sk\u00e4rmarna i h\u00f6rnet av rummet. Windows svarade knappt, och n\u00e4r mitt t\u00e5lamod brast loggade jag ut och avslutade f\u00f6r dagen.<\/p>\n<p>Under de kommande bes\u00f6ken i datorsalen visade Colombo n\u00e4stan varje g\u00e5ng ett stort intresse f\u00f6r vad jag gjorde. Ungef\u00e4r efter fj\u00e4rde g\u00e5ngen best\u00e4mde jag mig f\u00f6r att g\u00f6ra n\u00e5got \u00e5t detta.<\/p>\n<p>Jag inser att en f\u00f6rnuftig, rationell person kanske skulle ha tagit upp fr\u00e5gan direkt med honom eller hans chef. Men jag har alltid fallit f\u00f6r frestelsen och snabbt \u00f6vertygat mig sj\u00e4lv att v\u00e4lja en helt annan strategi.<\/p>\n<p>\u2014 Du kan inte g\u00f6ra n\u00e5gonting utan den h\u00e4r VNC-servern! \u2014 sa jag lugnt och best\u00e4mt f\u00f6r mig sj\u00e4lv ett par g\u00e5nger.<\/p>\n<p>Jag var tvungen att d\u00f6da VNC.<\/p>\n<p>Jag b\u00f6rjade g\u00e5 in i datorsalen med stora grupper av studenter och satte mig s\u00e5 l\u00e5ngt bort fr\u00e5n h\u00f6rnet med sk\u00e4rmar som m\u00f6jligt. Ett tag fungerade detta och gav mig lite tid att kontrollera id\u00e9er.<\/p>\n<p>Mitt f\u00f6rsta f\u00f6rs\u00f6k, som jag tror ni h\u00e5ller med om, var ganska svagt. Genom att h\u00f6gerklicka p\u00e5 VNC-ikonen i systemf\u00e4ltet s\u00e5g jag en meny med magiska bokst\u00e4ver E-X-I-T. Tyv\u00e4rr var bokst\u00e4verna skrivna med gr\u00e5 konturtecken. Administrat\u00f6ren hade st\u00e4ngt av alternativet \"Logga ut\" via grupprincipredigeraren. Jag f\u00f6rs\u00f6kte d\u00f6da processen fr\u00e5n Aktivitetshanteraren, men f\u00f6rst\u00e5s var den osynlig f\u00f6r mig eftersom den k\u00f6rdes under ett annat, mer privilegierat konto. Inget fungerade.<\/p>\n<p>VNC-servern k\u00f6rs p\u00e5 TCP-port 5900, kom jag ih\u00e5g. Min n\u00e4sta plan var att skicka trasiga paket till denna port f\u00f6r att krascha den.<\/p>\n<p>I spent several days analyzing the protocol, sending various forms of correctly structured junk to port 5900, hoping it would break. Eventually, that didn\u2019t work either.<\/p>\n<p>I was starting to think I wouldn\u2019t be able to get rid of this thing when it suddenly hit me: there\u2019s likely a window! I need to display it. Maybe there\u2019s a nice juicy \u2018Shutdown\u2019 button in it that I can put to good use!<\/p>\n<p>I ran my nearly perfect C code to find the main window handle of another process\u2014and indeed found VNC. I was elated as my fingers typed out <code>WM_SHOWWINDOW<\/code>. Guess what I saw in front of me?<\/p>\n<p>Nothing!<\/p>\n<p>Now I was curious\u2026 it had a window, but it ignored my messages. I double-checked my code to ensure it was working. I tested it on several other processes, and it worked great. I tried sending other messages to the VNC window, still nothing.<\/p>\n<p>And then it hit me again!<\/p>\n<p>Thanks to the very thick <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.co.uk\/Programming-Windows%C2%AE-Microsoft-Charles-Petzold\/dp\/157231995X\">bok<\/a><\/noindex> Charles Petzold, I studied how Win32 processes work within the system. Every Win32 application has a window and a \"message queue.\" Messages triggered by user interaction, as well as messages sent by Windows itself, go into the queue, and the application decides how to handle them.<\/p>\n<p>Not overly interesting by itself. But when I realized that a sufficiently large unprocessed message queue acts as a heuristic for interfering with a hung process by the Window Process Manager, I was drenched in pure serotonin.<\/p>\n<p>Without wasting a second, I returned to my C code, preparing to send another message to the VNC main window <code>WM_SHOWWINDOW<\/code>. In a loop. An eternal one. So, a multitude of messages <code>WM_SHOWWINDOW<\/code>, which I now knew VNC would try to completely ignore\u2026 at its own peril.<\/p>\n<p>I compiled and ran 4 KB of the most rebellious code of my life. About three seconds later, Windows reported that the process <code>vncserver.exe<\/code> is not responding, and made an offer I just couldn\u2019t refuse:<\/p>\n<blockquote><p><i><b>Do you want to terminate this process?<\/b><\/i><\/p><\/blockquote>\n<p>\nHell yes, I DO!<\/p>\n<p>Let me confess that for the rest of the day I was unbearably pleased with myself.<\/p>\n<p>Efter flera timmar av att sm\u00e4lta min nya superkraft best\u00e4mde jag mig f\u00f6r hur jag skulle anv\u00e4nda den. Att bara d\u00f6da sessionen framf\u00f6r hans \u00f6gon var f\u00f6r enkelt. Jag hade en b\u00e4ttre id\u00e9 \u2013 att f\u00f6rsvinna helt.<\/p>\n<p>Efter <noindex><a rel=\"nofollow\" href=\"https:\/\/martinrue.com\/zzuy-a-lesson-in-perseverance\">stridst\u00e4md med programmering av sockets<\/a><\/noindex> Jag ins\u00e5g att jag kunde skriva kod som skulle g\u00f6ra tv\u00e5 saker. F\u00f6rst skulle den ta den nyligen frigjorda TCP-porten 5900, tidigare upptagen av den okunniga VNC-serverprocessen. Sedan skulle den skapa en ny TCP-anslutning med VNC-servern p\u00e5 den angivna maskinen. Koden skulle helt enkelt vidarebefordra all data mellan de tv\u00e5 sockets, och Columbo skulle tro att han ansl\u00f6t till mig, n\u00e4r han i sj\u00e4lva verket skulle ansluta till en helt annan VNC-server.<\/p>\n<p>Min kod skulle fungera som en hemlig bro mellan mig och n\u00e5gon annan stackars sj\u00e4l efter mitt val. Det var fantastiskt.<\/p>\n<p>Jag b\u00f6rjade genast skriva min fejkbrygga f\u00f6r VNC. Columbo ansl\u00f6t flera g\u00e5nger till mig, men jag fortsatte att programmera framf\u00f6r hans \u00f6gon. Jag kom fram till att han inte hade en aning om mina handlingar, \u00e4ven om jag skrev uppenbara saker som portnummer och kommentarer som <code>\/\/ \u041f\u0440\u043e\u0449\u0430\u0439, \u0436\u0443\u0442\u043a\u0438\u0439 \u0448\u043f\u0438\u043e\u043d VNC<\/code>.<\/p>\n<p>Efter ett par dagar kunde jag inte f\u00e5 koden att fungera korrekt. Vad som var \u00e4nnu v\u00e4rre, jag jobbade praktiskt taget oavbrutet med den svarta VNC-symbolen i systemf\u00e4ltet. S\u00e5 l\u00e4nge den var ansluten kunde jag inte frig\u00f6ra porten f\u00f6r att testa min kod.<\/p>\n<p>Om jag bara hade vetat om <code>netcat<\/code>!<\/p>\n<p>Till slut orkade nerverna inte l\u00e4ngre, jag var trots allt en ot\u00e5lig 17-\u00e5ring. N\u00e4r jag \u00e5terigen s\u00e5g den vita VNC-serverns symbol bli svart, blev jag galen, \u00f6ppnade den ursprungliga koden som fyllde meddelandek\u00f6n och k\u00f6rde den framf\u00f6r honom. Jag v\u00e4ntade till och med n\u00e5gra sekunder innan jag tryckte p\u00e5 <code>Avsluta process<\/code>, bara f\u00f6r att vara s\u00e4ker p\u00e5 att han s\u00e5g det.<\/p>\n<p>Om tryckningen p\u00e5 den h\u00e4r knappen \u00e4nnu inte helt \u00f6vertygat mig om att det var v\u00e4rt det, s\u00e5 var hans hopp fr\u00e5n sin plats vid sk\u00e4rmarna f\u00f6r att snabbt g\u00e5 fram till mig och f\u00f6sa ut mig ur rummet definitivt v\u00e4rt det.<\/p>\n<p>Till slut fick jag n\u00e4tverksf\u00f6rbud i tv\u00e5 veckor. En r\u00e4ttvis bestraffning, t\u00e4nkte jag. Ungef\u00e4r tre veckor senare f\u00f6rsvann VNC-servern fr\u00e5n boot-skripten och d\u00f6k aldrig upp igen. Jag fick aldrig veta om min incident spelade n\u00e5gon roll i detta eller inte, men den f\u00f6rst\u00f6rde helt min plan f\u00f6r en sagolik berikning genom att s\u00e4lja min VNC-hackade utrustning till f\u00f6rtryckta studenter i datorsalar p\u00e5 h\u00f6gskolor \u00f6ver hela landet.<br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/485756\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u0433\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0441\u043a\u0438\u0445 \u0431\u0430\u0435\u043a. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u044f\u0445. \u0427\u0442\u043e \u0436, \u0432\u043e\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f. \u042f \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u043c\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043e\u043a\u043e\u043b\u043e 11 \u043b\u0435\u0442. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0448\u043a\u043e\u043b\u044b \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044f \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c C64 \u0438 \u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u0411\u0435\u0439\u0441\u0438\u043a\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0440\u0435\u0437\u0430\u043b \u043d\u043e\u0436\u043d\u0438\u0446\u0430\u043c\u0438 \u043f\u043b\u043e\u0445\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-40151","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u0433\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0441\u043a\u0438\u0445 \u0431\u0430\u0435\u043a. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/bitva-koderov-ya-protiv-togo-parnya-s-vnc\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 \u043a\u043e\u0434\u0435\u0440\u043e\u0432: \u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u0442\u043e\u0433\u043e \u043f\u0430\u0440\u043d\u044f \u0441 VNC | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u0433\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0441\u043a\u0438\u0445 \u0431\u0430\u0435\u043a. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/bitva-koderov-ya-protiv-togo-parnya-s-vnc\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-31T17:49:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-01-31T17:49:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kodarkampen: jag mot killen med VNC | ProHoster","description":"I den h\u00e4r bloggen har det publicerats en hel del programmerarhistorier. Jag tycker om att minnas mina gamla dumheter.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/bitva-koderov-ya-protiv-togo-parnya-s-vnc","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 \u043a\u043e\u0434\u0435\u0440\u043e\u0432: \u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u0442\u043e\u0433\u043e \u043f\u0430\u0440\u043d\u044f \u0441 VNC | ProHoster","og:description":"\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u0433\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0441\u043a\u0438\u0445 \u0431\u0430\u0435\u043a. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u044f\u0445.","og:url":"https:\/\/prohoster.info\/sv\/blog\/bitva-koderov-ya-protiv-togo-parnya-s-vnc","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-31T17:49:28+00:00","article:modified_time":"2020-01-31T17:49:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"40151","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:44:38","updated":"2022-09-29 08:39:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/40151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=40151"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/40151\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=40151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=40151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=40151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}