הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   רישיון למערכת? (https://hosts.co.il/forums/showthread.php?t=91332)

Erez | TrustMedia.co.il 11-08-11 09:22

ציטוט:

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

לא פרסמתי את הקוד של המערכת ואני (נכון לעכשיו) גם לא מתכנן לפרסם.


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

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

PHP קוד:

$name "Daniel";
$text "My name is ".$name;
echo 
$text

זה יצא משהו דומה ל-
PHP קוד:

$sdkal "Daniel";
$gsgkl "My name is ".$sdkal;
jfhjk($gsgkl);

function 
jfhjk($zzz) {
$fsd "ec";
$kkk $fsd."ho";
$kkk($zzz);


היא עוברת על הקוד ככה משהו כמו 5-6 פעמים אם אני זוכר נכון...
לאחר מכן, היא מפצלת חלקים ממנו ומשתמשת בפונקציות שונות כדי להקשות על מי שינסה לפענח -
eval(base64_decode(...));

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

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

Kfir.G 16-08-11 19:14

קודם כל תלוי מה ההסכם שלך עם הלקוח, כמו שדניאל אמר יש לקוחות שלא ממש ירצו דבר כזה.
ובכל מקרה אם אתה רוצה יש פתרונות חזקים יותר ממה שדניאל הציע. כל עוד לא השתמשת בפיצ'רים שדורשים את הinterpenter של PHP אתה יכול לקמפל את הקוד שלך וליצור קבצים בינאריים. אחרי שיצרת קבצים בינאריים אתה יכול לעבור על הsymbols table ולשנות אותה ככה שלא יהיו שמות של פונקציות\מחלקות וכד'. זה אמור להגן על המערכת שלך משינויים של המתכנת הלא מנוסה או של מי שלא מוכן להשקיע מספיק זמן. אחרי זה אתה יכול להצפין את הקבצים הבינאריים שלך ככה שלא יהיה אפשר לעשות disassemble בצורה פשוטה ועל הדרך לדאוג שיש רישיון מתאים. אני הייתי משתמש במודל הצפנה מהיר יחסית כי אתה לא רוצה לפגוע בהרבה בביצועים, נגיד AES256, הוא חזק ודי מהיר. בתור מפתח הייתי משתמש בסיריאל של הרישיון בתוספת הMAC של המערכת ככה שהגרסה שנתת ללקוח תעבוד רק בשרת המוסכם. אם הרישיון מיועד ליותר משרת אחד הייתי יוצר איזה פונקציה מתמטית שתחזיר את אותה התוצאה עבור הMACים השונים ברישיון ומשתמש בפלט של הפונקציה בתור חלק מהמפתח. אם תסתכל על פונקציות HASH פשוטות אתה בטח תצליח למצוא משהו מתאים. אם ההגנה הזאת עדיין לא מספיקה לך ואתה דואג שהמשתמש יחלץ את הקוד הבינארי מהזיכרון של השרת בזמן ריצה (כמו שפורצים את ההגנה של אפל על אפליקציות לIOS) אתה יכול להוסיף הגנות שיפריעו כמו INT 3 (breakpoint) ועוד מגוון טריקים אחרים. בסופו של דבר עם מספיק השקעה יהיה אפשר לשבור גם את זה אבל זה יהיה קשה יותר וידרוש זמן רב. לדעתי זאת הגנה חזקה מספיק לרישיון של תוכנה. אם זה עדיין לא מספיק בשבילך אז כנראה שהתוכנה שלך באמת שווה ממש הרבה והייתי ממליץ לך להיעזר במומחה לאבטחת מידע :)

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


כל הזמנים הם GMT +2. הזמן כעת הוא 18:47.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ