לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 12-01-2009, 21:35
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 1 שנכתבה על ידי dorM שמתחילה ב "איפה נמצא החלק של קליטת המידע מהקובץ במנוע PHP/Zend ?"

לדעתי יש סיכוי טוב שתלוי כיצד מתרחש שלב ה invocation...

יש הרי Apache2Handler, Apache2Filter, CGI, FastCGI, ISAPI, וכו'...

בכל מקרה, יש משהו אחד שאתה לא הולך לשנות - אתה תצטרך בינארי שמקומפל עבור כל גירסא וגירסא של PHP, שיעשה את הפיענוח, ואת קוד המקור - אסור לך לשנות. שום מוצר הצפנה שדורש לקמפל את סביבת הריצה מחדש אינו מעשי/הגיוני. לכן, כאמור, תצטרך מודול... (ובכל מקרה, מה יעזור לך שינוי קוד המקור? מה תשים שם שאתה לא יכול לשים במודול הבינארי? הרי אתה לא יכול לשים שום חלק של מנוע ההצפנה שם, כי אז לכולם יהיה את קוד הפענוח שלך...)

ה parser, כך נראה, נמצא ב php-X-Y-Z/Zend/zend_language_parser.c ...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 12-01-2009, 21:58
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "לדעתי יש סיכוי טוב שתלוי כיצד..."

שלב הקריאה לא מתרחש דרך apache? הוא זה שאמור להפעיל את מנוע ה-PHP... או שפשוט לא הבנתי את זה נכון

ציטוט:
בכל מקרה, יש משהו אחד שאתה לא הולך לשנות - אתה תצטרך בינארי שמקומפל עבור כל גירסא וגירסא של PHP, שיעשה את הפיענוח, ואת קוד המקור - אסור לך לשנות. שום מוצר הצפנה שדורש לקמפל את סביבת הריצה מחדש אינו מעשי/הגיוני. לכן, כאמור, תצטרך מודול... (ובכל מקרה, מה יעזור לך שינוי קוד המקור? מה תשים שם שאתה לא יכול לשים במודול הבינארי? הרי אתה לא יכול לשים שום חלק של מנוע ההצפנה שם, כי אז לכולם יהיה את קוד הפענוח שלך...)


מודול בינארי זה יענו פשוט מודול שכבר קימפלתי והוא עובד בתיאום עם PHP?

ואיך לכולם יהיה קוד הפענוח שלי? את קוד המקור אפשר לראות רק למי שנגיש לקבצים...


עכשיו כשאמרת את זה הזכרת לי שיש צורך בקימפול כל קבצי ה-PHP...
אבל לא נראה לי שאפשר ליצור מודול בינארי שייפעל על החלק הספציפי הזה של קריאת המידע ופירושו (בקובץ 'zend_language_parser.c' ), ואם כבר אפשר ליצור, אז כמו שאמרת גם זה יהיה נגיש לכולם ויוכלו לדעת את קוד הפיענוח.

כדי שלא יתבלבלו - לא התכוונתי שמתלכתחילה ישימו קוד פיענוח built-in במנוע של PHP, אלא שאם מישהו רוצה (כמו פותח האשכול ההוא) לעשות זאת, אז הוא יעשה את זה באופן ספציפי ואישי.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 13-01-2009, 00:27
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 3 שנכתבה על ידי dorM שמתחילה ב "שלב הקריאה לא מתרחש דרך..."

PHP, בתוך אפאצ'י, בד"כ מותקנת כמודול. כלומר, כל שפת PHP רצה בתוך התהליך של אפאצ'י, כאילו היא אפאצ'י. אני לא כל כך בטוח אם אפאצ'י בא, פותח את הקובץ, מעביר אותו למנוע של PHP, ו PHP מריץ, או שהוא רק נותן ל PHP את השם, ו PHP מריץ. (כש PHP מופעלת דרך CGI הוא בוודאי לא פותח את הקובץ לבד, הוא פשוט מריץ את PHP ונותן לה את שם הקובץ כפרמטר, כאילו הרצת משורת הפקודה, רק שהוא גם מכניס את הכותרים של הבקשה...)

מודול בינארי הכוונה לקוד שמתייחס ל API של PHP, ונכנס לאן שצריך באמצעות ה hook-ים המתאימים.

המודול לא צריך לפעול על קריאת הקובץ (למה שיעשה את זה?), אלא על שלב פיענוח הקובץ. ליתר דיוק, כל שהוא צריך לעשות, הוא ליצור פונקציית פיענוח. את השאר יעשה המקודד - הוא יקודד את הקוד, וייצר קובץ PHP שמכיל בסך הכל קריאה לפונקציית הפיענוח, כשהקלט שלה הוא הקוד שהוצפן. פונקציית הפענוח (שתהיה כאילו חלק משפת PHP אחרי שהיא תטען במודול הפענוח), היא זו שתפתח את הפענוח, ובעצם תעשה משהו שדומה ל eval(). קוד הפענוח לא יהיה זמין לכולם במקרה הזה, מהסיבה הפשוטה שאתה לא תתן את קוד המקור, אלא הבינארי, זה כל הרעיון... אם היה קוד המקור, כל אחד יכל לקחת אותו, להריץ בו את הקובץ המוצפן, ולקבל את קוד המקור המקורי ללא שום בעייה, וזה קצת... מגוחך, תסכים איתי.

לגבי המשפט האחרון שלך - אז שוב - אני לא מבין - אתה רוצה ליצור מוצר ש... הוא בדיוק כמו כאלה שכבר קיימים בשוק, ועושים בדיוק אותו דבר? (בצורה של מודול שמוסיפים בשרת שמריץ PHP ו encoder אצל יצרן התוכנה שמקודד את הקובץ לפני שהוא נותן אותו ללקוח?)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 13-01-2009, 15:08
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 4 שנכתבה על ידי שימי שמתחילה ב "PHP, בתוך אפאצ'י, בד"כ מותקנת..."

תודה על ההסבר (:

עכשיו הבנתי איך זה מבוצע, בכלל לא חשבתי לכיוון שכתבת פה.
כלומר מה שאתה מתכון זה שהקובץ המקודד ייראה לדוגמא בצורה הבאה:

קוד PHP:
 // a PHP file with an encoded PHP code
decode_and_run_dor_code('324tixv,z \][spdl aw';elsafgd s,fg-0'); 


ואז הפונקציה decode_and_run_dor_code תפענח את זה ותשלח את זה לפונקציית eval.

ציטוט:
לגבי המשפט האחרון שלך - אז שוב - אני לא מבין - אתה רוצה ליצור מוצר ש... הוא בדיוק כמו כאלה שכבר קיימים בשוק, ועושים בדיוק אותו דבר? (בצורה של מודול שמוסיפים בשרת שמריץ PHP ו encoder אצל יצרן התוכנה שמקודד את הקובץ לפני שהוא נותן אותו ללקוח?)

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

אבל באופן מעשי, גם הדרך הנ"ל תהיה קצת בעייתית כי יהיה צורך להוסיף מודול ל-PHP, ולא בטוח שבעל השרת יסכים לזה...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 15-01-2009, 19:09
  Shsh Shsh אינו מחובר  
 
חבר מתאריך: 10.05.02
הודעות: 616
אגב,
בתגובה להודעה מספר 10 שנכתבה על ידי שימי שמתחילה ב "אני לא עצבני. סתם רצוי, שאם..."

אף אחת מ"ההצפנות האלו" היא לא באמת הצפנה, אין פה מפתח, שכן, אם למישהו יש אפשרות להריץ את הקובץ, בוודאי שהוא יכול לקרוא את הקוד שלו.
מה שפשוט נעשה בתוך המנוע של Zend זה שהוא מפענח את הטקסט שלך לOpCodes
או מעין שפת ביניים כזאת, כל ה-Encoders רק יודעים לקבל סטרינג שבו מקודד (לא עם מפתח!)
הOpcodes של הקוד PHP כשהוא במצב מקומפל, ואז להריץ אותו.
(בגלל זה גם כל ה-Encoders הם סוג של Accelerators)
לפענח את "קוד המקור" מתוך ה-OpCodes עלול להיות קשה,
זה שקול ללעשות Decompile על קוד של C. כתבת קוד ב-C , קיפלת את זה ל-Assembly
ועכשיו כולם רואים את הקוד שלך, אפשר אפילו לשחק איתו, אבל בין זה לבין להחזיר את קוד ה-C המקורי
יש הרבה עבודה.

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:03

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר