top of page
TOP
מר וירוס - תִּכוּן-עַל (מנוסח בשפה מעט מקצועית...)
וירוס.png

"ה - VAX הזה הוא באמת תופעת טבע" חשב ירון בכעס. "למה לא הזמנתי PC כשאפשר היה ואז הקומפילציה המצחיקה הזו, של פחות מעשרת אלפים שורות CODE, הייתה מסתיימת מזמן... במקום זאת, אני עובד עם המפלצת העייפה הזו ונאלץ להמתין שהיא תועיל בטוּבה להגיב... גם אני הייתי מגיב באיטיות אילו נדרשתי לחלק את זמני בין כמה מאות צרכנים עצבנים".

20.png

צילצול הטלפון ניער אותו ממחשבותיו.

"שלום".

"שלום, ירון?"

"כן שרה, מה שלומך?"

"טוב, תודה. ירון, אהוד מעוניין לפגוש אותך".

"עכשיו?"

"לא, לא... איך שנראה לך, אבל היום"

"זה דחוף?"

"לא, אני חושבת שלא. בכל מקרה הוא לא אמר לי שהפגישה דחופה"

"נבהלתי. בסדר... תני לי רגע לבדוק... ממ.. עוד שעה זה מתאים לו?"

"רק רגע, מה אומר היומן? לא. קצת יותר מאוחר".

"אחרי הפסקת צהרים. זה בסדר?"

"מאה אחוז. בשתיים יש לו חלון".

"מצויין. זה רשום... תגידי, הוא אמר לך מה נושא הדיון?"

"לא... רק אמר שזה מספיק חשוב, כדי שיהיה היום"

"ומי יהיה בדיון?"

"הוא ביקש להפגש רק איתך..."

את המשך השיחה לא הצליח ירון לזכור מעולם. זעה קרה כיסתה את גופו כשמערכת האסוציאציות במוחו החלה לפעול בהגיון משלה. "מזל שלפחות הספקתי לדבג את מר וירוס ידידי" הרהר בהקלה. "עכשיו אני פחות מוטרד משיחות כאלה עם הבוס הגדול. כבר יהיה מי שישלים את העבודה אחרי שהוא יחליט לנפנף אותי". מלמל לעצמו לאחר שהחזיר את אפרכסת הטלפון אל כנה. תחושתו היתה שונה עמוק בקרבו. "וכי מי יכול להשאר אדיש לפיטורין? מי לא יחשוש מרגע האמת?" צרבה המחשבה.

ירון לא המתין לסיום הקומפילציה. ליבו פעם בעוצמה. הקירות החלו לחוג סביבו במעגלים והספרים על המדף התקמרו באופן מוזר. לפתע הבחין שהדמות הניבטת אליו ברישום "דיוקן עצמי" של אֶשֶׁר, חורצת לעברו לשון ארוכה ומלגלגת בצעקה שנשמעה באוזניו כרעם מתגלגל: "עכשיו תורך... תורך... תורך... ת ו ר ך..."

אשר - דיוקן עצמי - 20.png

הדם אזל מפניו והוא חש בחילה. זעה קרה בצבצה ממצחו וכפות ידיו הלחות, נמשכו באופן אוטומטי אל שרוולי מכנסיו. "אולי מר וירוס יתחיל לנשום בקרוב" חשב בחלחלה, "הרבה יותר מהר מכפי ששערתי. עכשיו בדיוק הזמן המתאים לערוך בדיקה אחרונה לכל התפיסה הווירלית שפיתחתי. לא תהיה אפשרות נוספת... במה כדאי להתחיל? בהתחלה, כמובן... כשמחשב ה - VAX מבצע BOOT*.

 

בשלב ראשוני זה מבוצעים תהליכים חד פעמיים כמו הגדרת פרמטרי מערכת, הגדרה של שמות לוגיים, בדיקות מערכתיות שונות. וואו, רשימה הפעולות מגוונת מאוד וקיימות פניות לכל  מיני מקומות במחשב, כולל בדיקות חומרה... בדיקות תקשורת... בדיקת ממשקים... הרי זה העיתוי האידיאלי לבדיקת התאריך האחרון שבו הופעלה תכנית TASK שלי. הבדיקה מאוד מהירה והיא תתבצע כמעט בתחילת ה - BOOT* כדי שלא תעורר חשד בלבו של אף אחד... הבדיקה עצמה לא תתבצע על ידי מר וירוס... הוא עדיין ינום את שנתו המתוקה... הבדיקה מוטלת על אלגוריתם אחר... תפקידו החשוב של מר טריגר, להעיר את מר וירוס מתרדמתו, בבוא העת... הייצור הזה כבר הוכיח את עצמו".

VAX - 20.png

VAX = Virtual Address eXtension

ויקיפדיה

*BOOT: קיצור המושג Booting up

  תהליך שמחשב מבצע מיד בהפעלתו,

  כדי להכין אותו לפעולה.

חץ - חזור.png

אשר - דיוקן עצמי, נובמבר 2016, 3 דקות

*Source File: קובץ שבו שמורות הוראות התכניתן למחשב בשפת תכנות.

בהתרגשות פתאומית קם על רגליו, כאילו רק ברגע זה גילה את העובדה שמר וירוס פעל ללא קשיים ומבלי לעורר כל חשד. "זה התרחש צ'יק צ'ק" חשב בהנאה וחזר אל כסאו. "והכל עבר בשלום... איציק ביצע את ה -BOOT  באדישות הרגילה שלו. לא הייתה כל סיבה שיבחין בבדיקה הנוספת. וזה עבד!!! זה עבד!!!"

הפעולה הפשוטה הזו, שאין בה כל נזק מיידי, הפכה את ירון לאדם מאושר. "ממש מגוחך" נסחף, לרגע, להרהורים נוגים. "תחושת הנקמה הקרבה ובאה, מציפה אותי באושר..."

 ירון נע על כסאו, בהתלהבות, בעיניים זורחות. "החלטה מוצלחת באמת" הרהר בגאווה וחש כיצד מצב רוחו משתפר. "רעיון מבריק" החמיא לעצמו. "אמנם לא חסרים מקרים שבהם המחשב יכול לפעול כמה שבועות רצופים..." הרהר. "אז במקרים האלה תתעכב מעט בדיקת VIRDATE... וזה באמת לא משמעותי... זאת אומרת שבדיקת תאריך הפעלת תכנית TASK תערך רק אחת לכמה שבועות, במקרה הגרוע. ?So What, אז הווירוס יתחיל לרוץ חודש מאוחר יותר". חיוך מטופש פשט על פניו "אני מוכן לוותר בנושא זה".

המבט הרציני שב והציף את עיניו. "ההחלטה השנייה החשובה היא היכן, בדיוק, יירשם התאריך הזה".

"שוב ניהלתי את מחשבותיי בתבונה" שב והחמיא לעצמו. "התאריך האחרון של הפעלת תכנית TASK, שמציינת את יום העבודה האחרון שלי בתע'צ, מוגדר במקום מחבוא אידאלי. מי יחפש נתון חריג, בשורה האחרונה ב - Executable File של תכנית MAIL? פנטסטי!!!" המשיך לחלק מחמאות לעצמו. "וחשוב מכל, את תכנית MAIL לא יורידו מהמחשב כל כך מהר..."

 ירון חייך בסיפוק. "הם רק יפסידו מהמסקנה השגויה שלהם, שאני מיוּתר כאן... זהו. ומה הלאה? אה, כן... עכשיו, אם הפרש הזמנים שבין התאריך בו יבוצע ה - BOOT לבין התאריך האחרון שרשום בתוכנית MAIL, יהיה גדול משלושה חודשים, סימן שפוטרתי. הרי אני מפעיל כמעט בכל יום את תכנית TASK, שמעדכנת את השורה האחרונה בתוכנית MAIL. השלב הבא הוא שבמהלך ביצוע BOOT, יסתבר למר טריגר, שאמנם פוטרתי. הוֹ הוֹ הוֹ,   א י ך  ש ה ו א  י כ ע ס... ואז הוא ייתן את האוֹת. תאריך ביצוע גזר הדין הנקמני האישי שלי, יחוּשב במהירות: שנה אחת בדיוק לאחר גילוי הפיטורין. במשך השנה הזו תתרחש פעילות ענפה וחשאית ביותר. מר וירוס ישוכפל באיטיות, עם הרבה מאוד סבלנות ואורך רוח. לאט לאט יתרבו מספר יחידות התוכנה שנושאות את השם המכובד 'מר וירוס'. קטעי התוכנה האלה יושתלו בקבצים בעלי סיומת EXE, אבל בתהליך שנון במיוחד..."

ירון, בטוּח בעצמו, סָפַק כפיו בהנאה והמשיך לְדַמְייֵן את התהליך בעיני רוחו. "...ההחלטה, איך בדיוק לבצע הפצת ראויה של מר וירוס, באמת... יש מקום למחשבה נוספת... הרעיון הגאוני הוא לא לשתול את מר וירוס בקבצים קיימים אלא בזמן התהוותם של קבצי הפעלה חדשים... Executable files חדשים. הרי כל הזמן עוסקים, בתע'צ, בפיתוח של קבצים כאלה. חלק מפעילות הפיתוח בתע'צ היא יצירה של קבצי מחשב בעלי סיומת EXE!!! אם כך, מדוע לכל הרוחות, לא להצטרף לתהליך שבמילא קיים? נראה מה עושה תכניתן צמרת, כמו דָּוִד, כשהוא כותב אלגוריתם לחישוב קוֹרֵלַצְיָה, למשל, כי חלק מהמשימות שלו זה לכתוב תוכניות מהסוג הזה - כי לא קיימת, עדיין, ספרייה מספיק עשירה של תוכניות... אם כך, בתחילת הדרך הוא כותב את התוכנית שלו ב - Source File*, בשפת מחשב כל שהיא. נניח C. תוכן הקובץ הזה הוא אוסף של מלים שכל אדם מן היישוב יכול לקרוא. זו אנגלית... מה שכתוב בקובץ הזה, אינו חשוּד ואינו מסוּכן כי דָּוִד בעצמו חיבר את הקשקוש שבתוכו. אי אפשר לשתול וירוס שם, כי דָּוִד יעלה על זה מהר מאוד... מצד שני, ברור שה - Source File עצמו חסר ערך ממשי... לצרכי מר וירוס, כמובן... כי המחשב לא מבין אנגלית. לכן דָּוִד חייב לתרגם את מה שהוא כתב לשפה שמובנת לגולם. לשפת מכונה. התרגום מבוצע באמצעות Compiler" הסביר ירון לעצמו דברים שידע היטב, בזכות עבודתו השוטפת, כתכניתן. "וכאשר מריצים קומפילציה" המשיך לשחזר את תהליך פיתוח התוכנה, "כאשר מריצים קומפילציה, מיוצר קובץ חדש עם סיומת OBJ. זהו קובץ מעורר אסוציאציות וירליות, כי אם דָּוִד יציץ לתוכו, הוא לא יבין דבר. זה נראה כמו... כמו סינית. אבל, אם המחשב יקרא אותו, הוא 'יבין' הכל... ואפילו יוכל, אולי, לְחַשֵּׁב את הקורלציה שדָּוִד תכנן. הגיוני שבקובץ כזה אפשר לשתול את מר וירוס, כי מי כבר יבדוק קובץ כזה? אבל, רק רגע! כבר חשבתי על זה והגעתי למסקנה הנכונה שזה מסוכן..." מלמל ירון לעצמו כשתחושת חדשנות מפעמת בקרבו. "קובץ ה - OBJ הזה, צריך להיות משולב בתוכנית מחשב גדולה יותר. חישוב הקורלציה שתכנן דָּוִד, הוא בסך הכל אבן אחת קטנה בפסיפס מורכב הרבה יותר. כדי ליצור תכנית מחשב אמיתית שניתנת להפעלה, צריך ללקט את כל אבני הפסיפס האחרות. בדרך כלל, תכנית מחשב מורכבת מקבצי OBJ רבים שפותחו על ידי תכניתנים שונים. אם בכל קובץ OBJ ימתין מר וירוס קטנטן, מהר מדי עלולים לחשוף קיומה של בעיה. התוכנית המושלמת, המוכללת, קיימת בקובץ בודד, בעל סיומת EXE. אם בכל קובץ OBJ, אמנם יושתל מר וירוס, אז בקובץ EXE ישב גדוד שלם של העתקי מר וירוס... וזה ינפח את התוכנית הרבה מעבר למצופה ויעורר חשד. לכן אסור שמר וירוס יושתל בקובץ OBJ , הוא צריך לשבת ב - Executable file פעם אחת בלבד!!!" חשב, "אם כך, החוליה הבאה בשרשרת הפיתוח, היא החוליה שבמהלכה יוצב מר וירוס אחר כבוד בתוכנית. כאשר משלבים את כל קבצי ה - OBJ בקובץ EXE בודד, נעזרים בתוכנית הידועה בשם LINK. מר וירוס המנומנם יצורף, אפוא, יחד עם אבני פסיפס נוספות, לתוכנית מוכללת שיתכן כי מטרתה הסופית תהייה, אולי, בקרה על איזו מערכת מכ'מ. מה זה חשוב? בלאו הכי הוא ינמנם מרבית הזמן, ולא יעשה דבר. אבל, אם יריצו את הקובץ הנגוע בסביבת המחשב, הוא יברר אם חלפה כבר שנה מהיום. שנה מהיום שבו אהוד יודיע לי על פיטורי. הרי זה יהיה היום בשעה שתיים!!! ואם יסתבר למר וירוס כי עברה שנה, החגיגה תתחיל..."

כמעט בחגיגיות סיכם ירון לעצמו: "אל ה- Executable files שמיוצרים על ידי תכנית LINK של אחת מהשפות העיליותC, PLM, COBOL , PASCAL  או אפילו FORTRAN, יתוסף אלגוריתם זעיר, שישבש מעט את פעולת התוכנה המקורית של המשתמש המסכן. בתאריך ידוע, כאשר תופעל תכנית נגועה, היא לא תשמיד קבצים בצורה ברוטלית, אלא בסך הכל תשבש מידע בצורה מאוד מעודנת. בכל המקומות שבהם יהיה שימוש לחישוב מספרי כמו אחת מארבע פעולות החשבון, או כמו פנייה אל מעבד מתמטי, ישנה מר וירוס את אחד הנתונים, בצורה אקראית, במידה קטנה ביותר. בתחילה, התכניתנים לא יתייחסו לשגיאות. לאחר מכן הם ייחסו זאת לטעויות באלגוריתם שלהם ולכן לא ימהרו לשתף אחרים בבעיה. עד שהם יגיעו למסקנה שמדובר בווירוס, יעבור זמן רב כי אין קשר בין הפרויקטים השונים ולכן הם לא יבחינו בתופעות הדומות בפרויקטים השונים".

בהנאה שפשף ירון את ידיו והמשיך להרהר. "מר וירוס לא יצעק בראש חוצות: Ha ha ha, אני כאן! חפשו אותי! הוא ייתן להם להגיע למסקנה בעצמם שאמנם מישהו זר מכרסם בתוצאות שלהם".

אנחת שביעות רצון נפלטה מפיו והוא המשיך לשקוע בהזיותיו: "זו מתנת הפרידה שלי למפעל. מתנה שיוסי היה צריך לתת, או רבים אחרים ש'לא היו מספיק טובים' כדי לשרוד בתע'צ. זו תהיה מתנה לאלו שבטוחים כל כך בדרכם: סילוק מיידי של כל אלה שאינם מועילים לקידום אינטרסים מידיים... ללא התחשבות בתרומה קודמת או בתרומה עתידית אפשרית..."

 ירון קם על רגליו והחל לצעוד סביב שולחנו כשידיו שלובות מאחורי גבו וחיוך רחב מעטר את פניו. "הדבר החשוב ביותר הוא ששום דבר מפליל לא ייצא מהחשבון שלי. הכל יתקיים ב - SYSTEM. הכל סגור... אין שום ספק שחשבתי על הכל, עד הפרט האחרון. עיתוי שליפת השד מהבקבוק היא ההחלטה המוצלחת ביותר.... והגורם יהיה אהוד... כאשר הווירוס שלי ישנה את פניו, כאשר הוא יתחיל לשבש חישובים באכזריות, זה יהיה בעוד שנה ושלושה חודשים. היום אני יוצא לטיול עם אהוד. עוד חמישה עשר חודשים, מר וירוס ישב כבר בכל מקום. גם בקבצים המגובים. אני רק מתאר לעצמי את הפרצופים החיוורים של 'האנשים הטובים' שהעדיפו אותם על פני, האנשים שימשיכו לעבוד בתע'צ. אחרי שיחשדו בקיום וירוס, הם יגידו בידענות מופלגת: 'לא נורא, מזל שעשינו גיבוי' וימהרו אל הסרטים המגנטיים, יעתיקו אותם שוב, יפעילו ו... הופס, שוב אותה תופעה... ממ..."

 

לפתע חש כאילו החסיר פעימת לב. "מה יקרה אם יחליפו גרסה של תכנית LINK. כל ה'עסק' עלול להתמוטט". נרעש, קם שוב על רגליו והסתובב כאריה בסוגר. "על פי התכנונים המוכרים לי, בעוד שלושה חודשים לא יחליפו LINKER בכל אחת משפות התכנות הנגועות. לכן, קבצי EXE - התוכניות הנגועות הראשונות כבר יסתובבו בשטח. אם כך, כדאי לתת להן תכונות של 'הדבקה' כמו כל תכנית וירוס רגילה. לצורך זה, מר וירוס יהיה נאלץ תחילה, בזמן הפעלת תכנית נגועה, לחפש תכנית אחרת שאינה נגועה, כדי לשתול בתוכה תעתיק של עצמו. זאת אומרת" ציין ירון לעצמו, "לכל תכנית נגועה צריך להיות Flag שיציין למר וירוס 'שמע, חביבי, אני כבר מודבקת. לך לחפש תכנית אחרת'. הוא ינסה מספר מוגבל של פעמים ובכל הפעלה ידביק לכל היותר תכנית אחת, כדי שלא לעורר חשד בהפעלה איטית של התוכנית הנגועה. זאת אומרת שיש פתרון גם לזה, רק שצריך להכניס את השינוי מהר, לפני הפגישה".

בנחישות התיישב מול המסוף, פקק את אצבעותיו והחל להקליד במהירות. בתום פחות משעה, קם בסיפוק מכיסאו. "זהו, בדיקת האלגוריתם של מר וירוס החדש, הסתיימה בהצלחה".

 

 

ירון חש בצורך פתאומי לצעוק בקול רם שיזעזע את קירות המפעל: "א ה ו ד, אני מוכן!!!"

וירוס - 20.png
חץ - חזור.png
חץ - חזור.png
לחצן חזרה.png

המשך בפרק 21 - שיעור בהקשבה

bottom of page