ABA


"חסימת הפצת התוכנה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #6170 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 6170
הררי פוטר

   22:33   05.06.03   
אל הפורום  
  חסימת הפצת התוכנה  
 
   אם נגיד בניתי תוכנה ומישהו רוצה שאני ישלח לו אבל אני לא רוצה שהוא יתחיל להפיץ את התוכנה איך אני יכול לחסום את זה בשיטה הכי טובה שיש? יכול להיות הרבה רעיונות לזה אני חשבתי על כמה אבל אולי יש כמה טובים יותר.

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

אבל רק בויזואל בייסיק אם אתם יודעים.

תודה מראש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  שאלה מענינת codmaster 05.06.03 23:52 1
     ראיתי הודעה שמדברת על זה בפורום אחר Vidi 06.06.03 00:06 2
         לא מומלץ codmaster 06.06.03 00:31 4
     אבל אם הIP משתנה זה קצת בעייה לא...VIDI hll 06.06.03 00:30 3
         IP זו דוגמא אחת codmaster 06.06.03 00:32 5
             תגובה הררי פוטר 06.06.03 19:45 6
                 אבל מה יקרה Michael 06.06.03 20:45 7
                     נשמע מעניין Quant86 06.06.03 21:06 8
                         הרעיון בפורום הוא בערך כמו הרעיון ב 7 Vidi 06.06.03 21:12 9
  כעקרון אין דרך shsh1 06.06.03 21:15 10
     זה מה שאמרתי: Vidi 06.06.03 21:28 11
         אני לא יגיד למה השימוש של התוכנה אבל היאפועלת הררי פוטר 06.06.03 22:54 12
     Reverse Assembly זה לא כזה מסובך. dryice 07.06.03 00:50 13
         נו, אז מה שאמרתי לכם זה לעשות את זה Quant86 07.06.03 01:40 14
             למערכת ההפעלה תמיד היכולת להתערב, dryice 07.06.03 15:14 18
     אין דרך למנוע.. הדבר הכי טוב לדעתי : adiadi 07.06.03 01:43 15
         זה כבר מסובך מדי בשבילי בינתיים אני נשאר עם הררי פוטר 07.06.03 02:23 16
             יש עוד שאלה בקשר שיוכלו ''לפרוץ לתוכנה'' ולשנ.. mega-killer 07.06.03 13:33 17
         התחלת יפה בזה שאמרת ש''אין דרך למנוע''... Dudenland 08.06.03 14:35 19
             לא סלט... adiadi 09.06.03 02:48 20

       
codmaster

   23:52   05.06.03   
אל הפורום  
  1. שאלה מענינת  
בתגובה להודעה מספר 0
 
   עבר עריכה לאחרונה בתאריך 05.06.03 בשעה 23:52
 
נושא זה העסיק אותי לא מעט
וישנם פתרונות מסובכים ולא כולם יעילים כל כך
אבל אני אתן לך הצעה חביבה.
בתוכנה שאתה כותב , ברגע הטעינה שלה תבצע התחברות לשרת (אפליקציה קטנה שתרוץ למשל אצלך במחשב) שיוודא את ה-IP של המחשב שבו הופעלה התוכנה.
אם ה-IP זהה לזה הנמצא באפליקציית השרת תחזיר תגובה לתוכנת הלקוח שמאשרת המשך הרצה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות
   00:06   06.06.03   
אל הפורום  
  2. ראיתי הודעה שמדברת על זה בפורום אחר  
בתגובה להודעה מספר 1
 
ואף מציעה פיתרון האם מותר לי לפרסם לינק להודעה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
codmaster

   00:31   06.06.03   
אל הפורום  
  4. לא מומלץ  
בתגובה להודעה מספר 2
 
   תנסה להסביר את ההצעה אם אתה יכול


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   00:30   06.06.03   
אל הפורום  
  3. אבל אם הIP משתנה זה קצת בעייה לא...VIDI  
בתגובה להודעה מספר 1
 
   עבר עריכה לאחרונה בתאריך 06.06.03 בשעה 00:32
 
שלח לי לפרטי זה מעניין...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
codmaster

   00:32   06.06.03   
אל הפורום  
  5. IP זו דוגמא אחת  
בתגובה להודעה מספר 3
 
   וחוץ מזה אם זה כל כך סודי על הלקוח יהיה לספק IP חדש במידה והוא רוצה
להמשיך ולהשתמש בתוכנה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הררי פוטר

   19:45   06.06.03   
אל הפורום  
  6. תגובה  
בתגובה להודעה מספר 5
 
   דבר ראשון עם I.P זה לא טוב לעשות כי זה משתנה בכמעט כל התחברות לאינטרנט והתוכנה שאני עשיתי המטרה שלה זה שכל 30 שניות היא מתנתקת ומתחברת לאינטרנט כדי שה-I.P שלה יהיה שונה אז ככה שזה לא טוב להשתמש ב-I.P

דבר שני אני חשבתי על רעיון שכתבתי על זה בפורום ש-Vidi מדבר עילו (אגב מה הניק שלך שם?) הנה הרעיון-

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Michael

   20:45   06.06.03   
אל הפורום  
  7. אבל מה יקרה  
בתגובה להודעה מספר 6
 
   עבר עריכה לאחרונה בתאריך 06.06.03 בשעה 20:56
 
אם הוא יעתיק את הקובץ zip לפני שהוא פתח אותו וישלח למשהו אחר?,
או שהוא פשוט ישתמש בתוכנה כמו norton undelete בשביל לשחזר את הקובץ.
אז יהיה אפשר להפיץ את התוכנית שלך.

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

אני יודע שזה מסובך אבל זה פתרון דיי טוב.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Quant86

   21:06   06.06.03   
אל הפורום  
  8. נשמע מעניין  
בתגובה להודעה מספר 7
 
   עבר עריכה לאחרונה בתאריך 06.06.03 בשעה 21:08
 
ומה בדיוק השימוש בתוכנה שמשנה אי פי כל 30 שניות?

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

ד"א השיטות הכי טובות שאני מצאתי כדי לבצע חסימה כזאת היא שימוש בCPUID או בHDDID... הכי סבבה
(אני לא ממשיך לפרט כי אני לא רוצה לגלות את ה-כ-ל אבל אם תחפשו תראו שזה מספיק מידע כדי להצליח)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות
   21:12   06.06.03   
אל הפורום  
  9. הרעיון בפורום הוא בערך כמו הרעיון ב 7  
בתגובה להודעה מספר 8
 
עבר עריכה לאחרונה בתאריך 06.06.03 בשעה 21:13
 
הוא בודק מספר סידורי של אחד הרכיבים...
ובגלל שלכל רכיב מספר סידורי ייחודי בכל העולם לא יהיה ניתן להפיץ (כמובן שניתן פשוט זה יקשה)
הנה הקוד מהפורום ההוא:
"היי,
הדרך המקובלת ביצירת רשיונות תוכנה היא לבדוק את המזהה של כרטיס הרשת (MacAddress) של המחשב בו מותקנת התוכנה (זהו מזהה חד-חד ערכי בעולם). מכיון שאתה כנראה לא מעונין להתחיל להתעסק עם רשיונות תוכנה להפצת התוכנה אלא אתה מדבר רק על מחשב ספיציפי של חבר אחד, תוכל לבדוק ממש בתוך הקוד האם התוכנה הופעלה במחשב עם מזהה כרטיס הרשת של אותו חבר, ואם לא, לצאת מהתוכנה (כדאי גם שתרשה לכרטיס של המחשב שלך להפעיל את התוכנה).
הנה איך:


Private Declare Function UuidCreateSequential Lib "rpcrt4.dll" (ByVal UUID As Long) As Long
Private Declare Function UuidToString Lib "rpcrt4.dll" Alias "UuidToStringA" (ByVal UUID As Long, ByRef StringUuid As String) As Long

Private Type Guid
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type

Function GetMacAddr() As String
Dim MyUUID As Guid
Dim pUUID As Long
Dim ret As Long
Dim UUIDStr As String
Dim Index As Integer
Dim tmpStr As String
Dim tmpData As Integer

ret = UuidCreateSequential(VarPtr(MyUUID))
UUIDStr = ""
For Index = 2 To 7
tmpStr = Hex(MyUUID.Data4(Index))
If Len(tmpStr) = 1 Then tmpStr = "0" & tmpStr
UUIDStr = UUIDStr & tmpStr & "-"
Next
UUIDStr = Left(UUIDStr, Len(UUIDStr) - 1)

GetMacAddr = UUIDStr
End Function

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

בהצלחה,

אורן."
דרך אגב אתה שאלת את השאלה בפורום ההוא (הררי פוטר)
ואני לא רשום שם אלאא חבר שלי TAsn זה הניק שלו...
אבל הוא כבר בקושי מתחבר כי הרמה שם ירדה מאוד... תאמת שאני מסכים איתו :\


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
shsh1

   21:15   06.06.03   
אל הפורום  
  10. כעקרון אין דרך  
בתגובה להודעה מספר 0
 
   למנוע את זה , משום שגם אם בדקת אי פי או בדקת סיריאל או בדקת סיריאל של מעבד , תמיד ניתן להיכנס לכל disassembler
לפתוח את הקובץ ובמשפט תנאי (cmp) שבו הוא בודק אם הערך (ip,סיריאל...) נכון או לא , פשוט לשנות......


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות
   21:28   06.06.03   
אל הפורום  
  11. זה מה שאמרתי:  
בתגובה להודעה מספר 10
 
ציטוט: (Vidi רשם ;))
(כמובן שניתן פשוט זה יקשה)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הררי פוטר

   22:54   06.06.03   
אל הפורום  
  12. אני לא יגיד למה השימוש של התוכנה אבל היאפועלת  
בתגובה להודעה מספר 11
 
   מצויין וזה לא מפסיק לשנות I.P

ואני ינסה לנסות כמה מהדברים שכתבתם תודה לכולם!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   00:50   07.06.03   
אל הפורום  
  13. Reverse Assembly זה לא כזה מסובך.  
בתגובה להודעה מספר 10
 
   בדיקה כזאת של MAC אפשר לאתר ללא קושי רב. והעריכה של הקובץ
היא נאיבית.

כמו כן, אני עובד על מערכת לינוקס, ואני מחליף את כתובת
הMAC שלי כל הזמן, זה נפלא בשביל לעבוד על switched networks
אני פשוט עושה:
ifconfig eth0 hw ether NewMacAddress

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

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Quant86

   01:40   07.06.03   
אל הפורום  
  14. נו, אז מה שאמרתי לכם זה לעשות את זה  
בתגובה להודעה מספר 13
 
   דרך הCPUID, ואם אתם לא רוצים לחשוש מדיאסמבלי אז תסבכו את זה עם לולאות ובלאגנים... (סערה בכוס מים) ואז כשמישהו מגיע לערוך את זה זה כבר לא שינוי קטן של JE ל JNE.... הבקשה של הCPUID מתבצעת ישירות דרך אסמבלר ולא נראה לי שמערכת ההפעלה מתערבת....


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   15:14   07.06.03   
אל הפורום  
  18. למערכת ההפעלה תמיד היכולת להתערב,  
בתגובה להודעה מספר 14
 
   כל הרעיון של לשים את המעבד בprotected modef
זה לתת למערכת ההפעלה יכולת להתערב בכל מיני פקודות
שאתה מריץ.

ואפילו אם שינוי מערכת ההפעלה בשביל לעקוף דברים כאלו
יהיה מאוד מסובך(ויכול להיות שזה המצב)
תמיד תמיד תמיד אפשר לעשות reverse-assembly.


DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
adiadi

   01:43   07.06.03   
אל הפורום  
  15. אין דרך למנוע.. הדבר הכי טוב לדעתי :  
בתגובה להודעה מספר 10
 
   קצת מסובך אבל אפשרי : חלק מהקובץ הבינארי (השלם ממש) תפרק לשני חלקים. החלק הגדול - תן למשתמש, ואת החלק הקטן תשמור אצליך. התוכנה תעלה (עם קובץ אחר כמובן) ותחבר את שני החלקים בזיכרון (או בקובץ זמני שיהיה קשה לעלות עליו) ותריץ אותו. כך - גם אם יפרצו את התוכנה (disAssembly) לא יוכלו לעשות עם זה כלום כי הטבלאות לא יהיו שלימות, וכדי להשלימן דרוש הקטע שאתה מחזיק ואותו אתה נותן online רק למיועד. ברור שאם הוא יעלה על החלק שאתה שולח ויבין את מטרתו אז הוא יוכל לפתור בעיה זו - אבל עד שהוא יבין את השיטה ייקח לו הרבה זמן. זו השיטה הכי טובה נגד disAssembly שאני מכיר.. גם את הפרוסס שרץ בזיכרון יש לפרק והרכיב כדי להקשות על הגילוי (טבלה תהיה מחולקת בכמה פרוססים, ופרוסס אחר יחבר ויפרק אותן.. לא משנה..)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הררי פוטר

   02:23   07.06.03   
אל הפורום  
  16. זה כבר מסובך מדי בשבילי בינתיים אני נשאר עם  
בתגובה להודעה מספר 15
 
   הרעיון שאני נתתי עם המחיקה של הקצים שיאפשרו לזה לפעול (כמו שכתבתי למעלה יותר) כי מי שאני ישלח אליהם הם לא עד כדי כך חכמים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   13:33   07.06.03   
אל הפורום  
  17. יש עוד שאלה בקשר שיוכלו ''לפרוץ לתוכנה'' ולשנ..  
בתגובה להודעה מספר 16
 
   עבר עריכה לאחרונה בתאריך 07.06.03 בשעה 13:35
 
ולשנות את התנאי:
אם אני יעשה כמה תנאים (אותו הדבר) שכולם יהיו בטימרים שונים ורק טימר אחד יהיה מופעל
וכל תנאי משהו שונה שהוא בודק

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



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

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


Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
adiadi

   02:48   09.06.03   
אל הפורום  
  20. לא סלט...  
בתגובה להודעה מספר 19
 
   התוכנה לא עולה בשלמותה, אלא, בחלקים (פרוססים שונים) ששום האקר שבעולם - לא יהיה לו זמן לחברם. התוכנה באופן דינאמי תחבר את החלקים (ממש כמו שעושים עם סיפריות דינאמיות). מסכים עם כולם פה שאין הרמטיות, אבל זמן הדרוש לפיענוח הוא גדול מאוד גם אם האפליקציה קטנה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net