
הטקסט המלא של הדקות הראשונות בהרצאה «פריצה של UnCrackable-Level1 - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזו אנחנו נפצח את הקוד הסודי מאחורי אפליקציית Uncrackable אני ממשיך את ההרצאה הקודמת שהייתה לנו וגילינו בהרצאה הקודמת שהתשובה מסתתרת מאחורי הפונקציה הזאת שאם נתפוס את הערך שהיא מחזירה הפונקציה הזאת נדע את התשובה הסופית את הקוד הסודי את הסיסמה הסודית פה תראו יש
פה סיקרט סטרינג אז גילינו את זה בהרצאה הקודמת עכשיו אנחנו צריכים להגיע לקלאס, זה שם של פקאג', זה שם של קלאס וזה שם של פונקציה.
בואו נעשה קונטרול קליק ונראה. אתם רואים? פונקציה קוראים לה a. הפונקציית a יושבת בקלאס שקוראים לו a. וקלאס שקוראים לו a יושב בתוך פקאג'.
אז אנחנו צריכים לתפוס אותו ולגלות מה הוא מחזיר פה. אני לא יודע מה הוא מחזיר, יש פה איזשהו אלגוריתם הצפנה.
זה פחות מעניין אותי מה הוא עושה, העיקר מה הוא מחזיר. אוקיי, אז איך אנחנו נעשה את זה? אז אנחנו נעשה דבר כזה, אנחנו ניקח את השם של הפקקג', שם של קלאס, שם של זה, ונכתוב אותו מחדש ונתפוס אותו, תכף נעשה את זה.
אז איך אנחנו מתחילים? קודם כל אני מזכיר לכם שיש לנו פקודה בפרידה שאומרת Java Perform תבצע משהו בג'אווה ואנחנו מעבירים לו את השם של הפונקציה והוא מבצע מה שאנחנו נגיד לו.
צורת כתיבה אנחנו כותבים בשפת JavaScript, על עובדים ובאובייקטים של Java. אוקיי, אז אני מזכיר לכם מה היה לנו לפני כן, עשינו var class c ואמרנו לו תיתן לי פוינטר הפניה לזיכרון למקום שבו נמצא הקלאס הזה ואחרי שהיה לנו את ההפניה למקום הזה בזיכרון עשינו לו אימפלמנטציה מחדש לפונקציה מסוימת.
אותו דבר אנחנו נעשה גם עכשיו, אנחנו נעשה גם עכשיו משתנה בשם aa-class ונגיד לו Java use ו-package כזה Class A, אוקיי?
זאת אומרת, package כזה, שימו לב, השם של package מסתיים בנקודה A, ובפנים אנחנו לוקחים בתוך ה-package הזה את ה-class A. אז יוצא פעמיים A בסוף, נקודה A.
לכן הוא נקרא AA, שם של package נקודה שם של class. אז יש לנו עכשיו פוינטר בזיכרון, הפניה בזיכרון, למקום שיש בו את ה-class הזה.
מה אנחנו רוצים ב-class הזה? אנחנו רוצים בקלאס הזה לתפוס את הערך שהפונקציה הזאת מבצעת, כן? אנחנו רוצים לתפוס מה היא תעשה בסוף, מה היא מחזירה בסוף, הרי אנחנו צריכים את התשובה שלה, אוקיי? אנחנו צריכים את התשובה הזאת.
אז איך אנחנו נעשה את זה? מאוד פשוט. קודם כל אנחנו נעשה אימפלמנטציה חדשה לפונקציית a. הרי יש לנו הפניה לקלאס, אחרי שיש לנו את ההפניה לקלאס, אנחנו אומרים לו, תקשיב, קח את הקלאס הזה, שזה הקלאס הזה, ואת הפונקציה שקוראים לה A תעשה לאימפלמנטציה מחדש. שימו לב, ה-A הזה לא קשור ל-A הזה,
זה קלאס, זה שם של פקאג', זה שם של קלאס וזה שם של פונקציה בתוך הקלאס. פשוט נתנו להם אותו שם אז זה מבלבל.
מה עוד חשוב לציין? מה היא בדיוק מחזירה, מה היא מקבלת. זאת אומרת, ה-A החדשה זאת פונקציה שמקבלת שני ערכים.
למה זה כזה חשוב? כדי שזה יהיה תואם למה שקורה כאן. כאילו פה, אתם רואים? פונקציית a מקבלת ערך אחד פסיק הערך שני, זה חייב להיות תואם, כי אני מחליף בזיכרון משהו, אז זה חייב לקבל אותו דבר ולהחזיר אותו דבר.
אוקיי, אז יש לנו עכשיו את הקוד החדש שלנו פה, אנחנו נכתוב את הקוד החדש. עכשיו, אין לי כוח להעתיק את כל מה שהם עשו, אז אני עושה כזה דבר.
אני קורא ל-a המקורית, לפונקציה המקורית, this מצביע לפונקציה המקורית, ל-a המקורי שלה, ומעביר לה את אותם הדברים שקיבלתי כאן. זאת אומרת, אני קורא לקוד המקור,