د کوډرز جګړه: زه او هغه VNC هلک

В دا بلاګ د یو څو پروګرامر کیسې خپرې شوې. زه غواړم زما د زړو احمقانه شیانو یادونه وکړم. ښه، دلته یوه بله کیسه ده.

زه د لومړي ځل لپاره د کمپیوټر سره مینه لرم، په ځانګړې توګه د پروګرام کولو، کله چې زه شاوخوا 11 کلن وم. د لیسې په پیل کې بоما خپل ډیری وړیا وخت زما د C64 سره په ټکر کولو او BASIC لیکلو کې تیر کړ ، بیا د کینچی سره خراب کوډ پرې کړم. زه ټوکې نه کوم، کینچی.

د ښوونځي څخه وروسته (د 16 کالو په شاوخوا کې)، برتانوي ماشومان معمولا کالج ته ځي، چیرته چې دوی پوهنتون ته د تګ دمخه درې یا څلور مضمونونه زده کوي. په کور کې د خنزیر بکس او ټیپ ریکارډر سره زما مینې ته په پام سره ، ما پریکړه وکړه چې په کالج کې د "کمپیوټر ساینس" مطالعه سم انتخاب و.

ما د کورس څخه ډیر خوند واخیست چې ما تمه درلوده؛ هلته ما لومړی پاسکل او ډیلفي ولیدل.

د ټولګیو ترمنځ د وقفې په جریان کې، زده کونکي کولی شي د کمپیوټر په خونه کې په وړیا ماشین کې کار وکړي. تصور وکړئ: یوه لویه خونه، د سلو کسانو لپاره ډیزاین شوې، د میزونو قطارونو سره د ماشینونو څخه ډک شوي، لکه څنګه چې د سیسټم په واحد کې څارونکي ولاړ وي. مینه وال په دوامداره توګه غږ کوي، د موږک بالونه په میزونو غږ کوي، د یوې ثانیې لپاره نه ودریږي. په هوا کې یو عجیب بوی شتون لري، لکه څنګه چې د 50-100 هورمونول تنکي ځوانان په وخت سره د سلګونو پینټیم III چپسونو یخولو لپاره بدلیږي.

د روغتیا خطرونو سره سره، ما په کمپیوټر کې ناست کول خوښ کړل کله چې ما وړیا دقیقې درلودې.

په کوټه کې د وظیفې مدیر یو لنډ، متوسط ​​​​سړی و چې د دې رول لپاره غوره شوی و ځکه چې د بد دیکتاتور کیدو لپاره د هغه د نه منلو وړ غوښتنې له امله وټاکل شو. زه داسې فکر کوم. په دنده کې یو لنډیز دی؛ سړی واقعیا له خپلې دندې سره مینه درلوده. هغه ته دنده سپارل شوې وه چې نظم وساتي ترڅو هیڅوک د ښوونځي کمپیوټر د کوم نامناسب لپاره ونه کاروي.

تر نن ورځې پورې، زما انګیزه ماته وايي چې د مدیر بونس مستقیم د زده کونکو په شمیر پورې اړه لري چې هغه یې په لاس کې نیولی او د کمپیوټر خونې څخه یې ایستلی. زه ډاډه یم چې دې سړي خپل ګروي ژر تادیه کړې.

هغه د کمپيوټر د خونې په لرې کونج کې په يوه کونج کې ناست و. او دا خوندي وه چې فرض کړئ چې د هغه د زیږون څارونکو په اغیزمنه توګه د لنډمهاله امیندوارۍ دورې سره د بیا تولید لپاره لاره موندلې وه، ډیری یې شتون درلود. یو څوک یوازې حیران کیدی شي چې ایا هغه واقعیا د دې ټولو تعقیب لپاره وخت درلود. البته، زه ټوکې کوم ... ایا ما یادونه وکړه چې هغه خپل کار خورا جدي نیولی؟

په هغه وخت کې، د کمپیوټر شبکه وینډوز 2000 چلوله. ما ډیر ژر وموندله چې هرکله چې زه سیسټم ته ننوتم، یو سکریپټ پیل شوی و چې د ډیسټاپ ته د لیرې لاسرسي لپاره د مدیر حساب څخه د VNC سرور پیل کول مشخص شوي. هرکله چې دې سړي غوښتل چې تاسو ته جاسوسي وکړي، هغه به مستقیم ستاسو ماشین سره وصل کړي او وګوري. دا ډارونکی و، او اوس چې زه د هغې په اړه فکر کوم، شاید غیرقانوني وي.

په BASIC او C64 کې زما غاښونه پرې کولو سره، ما اوس په C او حتی لږ C++ کې لیکلي. په هغه وخت کې، زه لاهم د D ژبې سره ډیره علاقه درلوده، کوم چې د C++ ځینې نیمګړتیاوې یې سمې کړې، لکه څنګه چې ما ولیدل.

زه به د کمپیوټر خونې ته تللم چې په D کې نوی څه ولولم یا د ډیجیټل مارس D کمپیلر سره لوبې وکړم. کله ناکله، کله چې زه د D د لوی راتلونکي په اړه فکر کولو څخه لیرې وم، ما د C کوډ لیکلی ترڅو د دوی د کړکۍ له لارې نور Win32 پروګرامونه هیک کړي. لاسونه

د Win32 برنامه کولو په پخوانیو ورځو کې ، د کړکۍ هینډل موندل د نورو برنامو هیک کولو ترټولو اسانه میتود و. په ښکاره ډول، په وینډوز کې د GUI ټول پروګرامونه یوه کړکۍ درلوده، حتی که دا په سکرین کې نه ښکاري. د یو برنامه لیکلو سره چې بل پروسې ته د لاسوند بیرته ترلاسه کولو لپاره (په لازمي ډول دې ته لینک) ، تاسو کولی شئ دې ته پیغامونه واستوئ. دا د ځینې لومړني عملیاتو لپاره اجازه ورکوي لکه د برنامه کړکۍ پټول / ښودل ، په بیله بیا واقعیا ښه شیان لکه د پروسې مجبورول چې د خپل حافظې ځای کې خپل سري DLL بار کړي او د کوډ اجرا کول پیل کړي. د DLL انجیکشن وروسته، تفریح ​​​​پیل شو.

په لومړۍ نیمه میاشت کې ، دې جاسوس ما ډیر ځور نه کړ؛ دا زما په ماشین کې یوازې یو یا دوه ځله د VNC سرور سره وصل شو. مګر یوه ځانګړې ناسته ممکن د هغه علاقه پیدا کړي. ما د ماین سویپر وینډوز پټولو لپاره ځینې C کوډ لیکلی و (پرته له دې چې دوی یې بند کړي) ترڅو په ټولګي کې لوبې کول اسانه کړي ، کله چې ما ولیدل چې د سیسټم ټری کې سپین VNC عکس تور شوی و. د دې معنی دا وه چې هغه اوس ماته ګوري.

ما د معمول په څیر کوډ کولو ته دوام ورکړ، هڅه مې وکړه چې هغه له پامه غورځوي. په عین وخت کې، ماشین ورو پیل کړ، هڅه یې کوله چې د کوټې په کونج کې د بې شمیره څارونکو څخه یو ته د فریم اعظمي حد لیږد کړي. وینډوز تقریبا ځواب ورکول بند کړل، کله چې زما صبر پای ته ورسید، ما لاګ آوټ شوم او د ورځې لپاره پای ته ورسیدم.

د کمپیوټر خونې ته په ورستیو لیدنو کې، کولمبو د هغه څه سره ډیره علاقه درلوده چې زه نږدې هر وخت کوم. د څلورم ځل وروسته، ما پریکړه وکړه: زه باید پدې اړه یو څه وکړم.

زه دا منم چې یو معقول، منطقي سړی کولی شي دا مسله په مستقیم ډول د هغه یا د هغه مالک سره راپورته کړي. په هرصورت ، ما تل لالچ ته غاړه کیښوده او په چټکۍ سره یې د یوې بشپړې مختلفې ستراتیژۍ په خپلولو خبرې وکړې.

- تاسو د دې VNC سرور پرته هیڅ نشئ کولی! - ما په آرامۍ او پریکړه لیک سره څو ځله خپل ځان ته وویل.

دا اړینه وه چې VNC ووژني.

ما د زده کونکو له لویو ډلو سره د کمپیوټر خونې ته لاړم او د امکان تر حده د څارونکو سره د کونج څخه لرې ناست وم. دې د یو څه وخت لپاره کار وکړ او ما ته یې د نظرونو ازموینې لپاره یو څه وخت راکړ.

زما لومړۍ هڅه، زه فکر کوم چې تاسو به موافق یاست، خورا کمزوری و. د سیسټم ټری کې د VNC آیکون باندې ښیې کلیک کول ، ما د جادو لیکونو EXIT سره مینو ولید. له بده مرغه، لیکونه په خړ متن کې لیکل شوي. مدیر د ګروپ پالیسي ایډیټر له لارې د "Exit" مینو توکي غیر فعال کړي دي. ما هڅه وکړه چې پروسه د ټاسک مدیر څخه ووژنم ، مګر البته دا زما لپاره پټ و ځکه چې دا د یو مختلف ، ډیر امتیاز لرونکي حساب لاندې روان و. دا کار ونه کړ.

د VNC سرور د TCP پورټ 5900 پرمخ ځي، ما یاد کړ. زما بل پلان دا و چې فاسد کڅوړې دې بندر ته ولیږدول شي ترڅو دا غورځوي.

ما لږترلږه څو ورځې د پروتوکول سره په ټکر کې تیرې کړې ، د 5900 بندر ته د ښه جوړښت شوي کریپ مختلف ډولونه لیږل او امید لرم چې دا به مات شي. په پای کې، دا هم کار ونه کړ.

ما لا دمخه په دې فکر کولو پیل کړی و چې زه به ونه توانیدم له دې شی څخه ځان خلاص کړم ، کله چې ناڅاپه راڅرګند شو: هلته باید یوه کړکۍ وي! موږ باید دا ښکاره کړو. شاید دا به یو ښه جوس لرونکی "خاموش" تڼۍ ولري چې زه یې خورا ښه کار کولی شم!

ما د بل پروسې اصلي کړکۍ ته د لاسوند موندلو لپاره خپل نږدې بشپړ C کوډ وګرځاوه - او ډاډه اوسئ ، VNC وموندل شو. ما د الهام احساس وکړ کله چې زما ګوتې ټایپ کړې WM_SHOWWINDOW. هڅه وکړئ اټکل وکړئ چې ما په مخ کې څه ولیدل؟

هیڅ نه!

اوس زه لیواله وم ... دا یوه کړکۍ درلوده، مګر دا زما پیغامونه له پامه غورځول. ما خپل کوډ دوه ځله چیک کړ ترڅو ډاډ ترلاسه کړم چې دا کار کوي. دا په څو نورو پروسو کې ازموینه وکړه او دا خورا ښه کار وکړ. ما د VNC کړکۍ ته د نورو پیغامونو لیږلو هڅه وکړه، او لاهم هیڅ نه.

او بیا دا په ما باندې راپورته شو!

د ډیر موټی څخه مننه کتاب چارلس پیټزولډ ما په احتیاط سره مطالعه کړې چې څنګه د Win32 پروسې په سیسټم کې کار کوي. هر Win32 غوښتنلیک یوه کړکۍ او همدارنګه د "پیغام کتار" لري. پیغامونه چې د کارونکي متقابل عمل لخوا رامینځته شوي ، په بیله بیا د وینډوز لخوا لیږل شوي پیغامونه په کتار کې راځي ، او غوښتنلیک پخپله پریکړه کوي چې دوی څنګه پروسس کړي.

په خپل ځان کې ډیر په زړه پوري ندي. مګر کله چې زه پوه شوم چې د کافي لوی غیر پروسس شوي پیغام کتار د کړکۍ پروسې مدیر لپاره د ځړول شوي پروسې کې د مداخلې لپاره د هوریستیک په توګه عمل وکړ ، ما د خالص سیروټونین خولې کول پیل کړل.

پرته له دې چې یوه ثانیه ضایع کړم، زه خپل C کوډ ته راستون شوم، اصلي VNC کړکۍ ته بل پیغام لیږلو ته چمتو کوم WM_SHOWWINDOW. په یوه دوره کې. ابدي. نو، ډیری پیغامونه. WM_SHOWWINDOW، کوم چې زه اوس پوهیدم VNC به هڅه وکړي په بشپړ ډول له پامه غورځوي ... په خطر کې.

ما د خپل ژوند ترټولو خپلواکي خوښونکي کوډ 4KB تالیف او چل کړ. شاوخوا درې ثانیې وروسته ، وینډوز راپور ورکړ چې پروسه vncserver.ехе ځواب نه ورکوي، او یو وړاندیز یې وکړ چې زه یې په ساده ډول رد نشم کولی:

ایا تاسو غواړئ دا پروسه بشپړه کړئ؟

دوزخ هو!

اجازه راکړئ اعتراف وکړم چې د پاتې ورځې لپاره زه د خپل ځان څخه د نه منلو وړ خوښ وم.

څو ساعته وروسته له هغه چې زما د نوي زبر ځواک په هضمولو کې تیر کړل، ما پریکړه وکړه چې څنګه به یې وکاروم. دا خورا اسانه وه چې یوازې د هغه په ​​​​وړاندې ناسته ووژني. ما یو ښه نظر درلود - په بشپړ ډول ورک شو.

وروسته د ساکټ پروګرام کولو سره د اور بپتسما زه پوهیدم چې زه کولی شم کوډ ولیکم چې دوه شیان به وکړي. دا به لومړی د نوي آزاد شوي TCP پورټ 5900 قبضه کړي، چې مخکې د بې خبر VNC سرور پروسې لخوا نیول شوی و. بیا به دا د ځانګړي ماشین VNC سرور ته نوی TCP پیوستون رامینځته کړي. کوډ به په ساده ډول د دوه ساکټونو تر مینځ ټول معلومات پراکسي کړي، او کولمبو به فکر وکړي چې هغه زما سره وصل دی، کله چې په حقیقت کې هغه به د بشپړ مختلف VNC سرور سره وصل وي.

زما کوډ به زما او زما د انتخاب ځینې نور غریب روح تر مینځ د پټ پل په توګه عمل وکړي. دا په زړه پورې وه.

ما سمدلاسه زما د جعلي VNC پل لیکل پیل کړل. کولمبو څو څو ځله له ما سره اړیکه ونیوله، مګر ما د هغه په ​​​​مخ کې پروګرام ته دوام ورکړ. زه دې پایلې ته ورسیدم چې هغه نه پوهیږي چې زه څه کوم، که څه هم ما واضح شیان لیکلي لکه د پورټ شمیرې او تبصرې لکه // Прощай, жуткий шпион VNC.

د څو ورځو وروسته زه نشم کولی کوډ ترلاسه کړم چې سم کار وکړي. د مسلې خرابولو لپاره ، ما د سیسټم ټری کې د تور VNC آئیکون سره نږدې په دوامداره توګه کار کاوه. پداسې حال کې چې دا وصل شوی و، زه نشم کولی د خپل کوډ ازموینې لپاره بندر خوشې کړم.

که زه هغه وخت پوهیدم netcat!

په پای کې، زما اعصابو ته لاره ورکړه؛ په هرصورت، زه یو بې صبره 17 کلن هلک وم. د سپینې VNC سرور آئیکون په لیدو سره چې بیا تور شو ، زه حیران شوم ، اصلي کوډ یې خلاص کړ چې د پیغام کتار یې آباد کړی و ، او د هغه مخې ته یې منډه کړه. ما حتی د کلیک کولو دمخه څو ثانیې انتظار وکړ End Process، یوازې د ډاډ ترلاسه کولو لپاره چې هغه یې لیدلی.

که د دې تڼۍ فشار زه په بشپړ ډول قانع نه کړم چې دا ارزښت لري، نو هغه د خپل څارونکي کلا شاته کودتا وکړه چې ژر تر ژره ما ته نږدې شي او ما له کوټې څخه بهر راوغوښت.

د پایلې په توګه، زه د دوو اونیو لپاره د شبکې څخه منع شوی وم. یو عادلانه سزا، ما فکر کاوه. شاوخوا درې اونۍ وروسته ، د VNC سرور د بوټ سکریپټونو څخه ورک شو او هیڅکله بل چیرې څرګند نه شو. زه هیڅکله نه پوهیږم چې زما پیښې پدې کې کوم رول لوبولی یا نه ، مګر دا زما پلان په بشپړ ډول له مینځه وړی چې زما د VNC ټوپک په پلورلو سره په ټول هیواد کې د کالج کمپیوټر تالارونو کې خپګان زده کونکو ته په خورا بډایه توګه بډایه شي.

سرچینه: www.habr.com

Add a comment