דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
רחמיםר

רחמים

מורחק
אודות
פוסטים
1.6k
נושאים
156
קבוצות
0
עוקבים
1
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • הגנת DLL ו EXE בדוט נט משיטת patch
    רחמיםר רחמים

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

    1. הקוד מקור ולזה ערפול סביר עושה את העבודה כי כבר לא שווה לפורץ הפוטנציאלי להתעסק איתו אלא לכתוב את הקוד לבד.
    2. מניעת עריכת הDLL בשיטת patch הנ''ל ולזה כמעט שלא יכול לעזור הערפול כיון שהפורץ ניגש ישר לפונקציה שבה התוכנה מתחילה [ entrypoint ] ומשנה אותה או מוחק את הקוד הפנימי שלה. או שהוא ניגש לכל פונקציה אחרת שמזהה אותה כבודקת רשיון וכדומה.

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

    פורסם במקור בפורום CODE613 ב07/08/2013 11:34 (+03:00)


  • הגנת DLL ו EXE בדוט נט משיטת patch
    רחמיםר רחמים

    @magicode

    זה היה הקש (או האבן) ששבר את גב הגמל ומאז אני ממעט לפתח בנט.

    אז במה אתה כן מפתח?

    @magicode

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

    זה סיפור מצמרר וגם אני שמעתי סיפורים על כמה מתכנתים שפירסמו את התוכנות שלהם ללא עירפול מינימלי.

    @magicode

    אבל אף פעם זה לא יהיה חסום הרמטי.

    אם אתה רוצה לראות מה זה ערפול כמו שצריך פתח ברפלקטור את הרפלקטור בעצמו....

    פורסם במקור בפורום CODE613 ב06/08/2013 12:59 (+03:00)


  • הגנת DLL ו EXE בדוט נט משיטת patch
    רחמיםר רחמים

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

    Build Statistics    Total  Renamed  Percent Renamed
    Types:                 70       13           18.57%
    Methods:              446       78           17.49%
    Fields:               558      148           26.52%
    

    וחוץ מזה יש עוד בעיה איתו שהוא בונה את כל הDLL מחדש ואז ה'האש' של ה DLL משתנה והוא כבר לא מתאים להאש שבמניפסט [מדובר על תוסף לוורד] ואי אפשר להתקין.

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

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

    פורסם במקור בפורום CODE613 ב06/08/2013 11:41 (+03:00)


  • הגנת DLL ו EXE בדוט נט משיטת patch
    רחמיםר רחמים

    עוד המון פרטים וקוד מקור של השיטה כאן:
    http://www.codeproject.com/KB/msil/reflexil.aspx

    יש למישהו רעיונות להגנה :?:

    פורסם במקור בפורום CODE613 ב05/08/2013 11:38 (+03:00)


  • הגנת DLL ו EXE בדוט נט משיטת patch
    רחמיםר רחמים

    כידוע יש שיטה של עריכה לקבצים בינאריים של דוטנט שמוחקים כמה שורות של בדיקת רשיון וכדומה וכך פורצים את התוכנה, מישהו התנסה בלהקשות או למנוע דבר כזה?
    קצת על שיטה:
    http://stackoverflow.com/questions/5731857/how-to-patch-a-line-of-code-in-a-dll

    פורסם במקור בפורום CODE613 ב04/08/2013 16:07 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

    @ayalaleora

    ולמעשה למה אתה צריך את זה?

    בשביל לעשות ערפול לקוד.

    פורסם במקור בפורום CODE613 ב22/08/2013 08:44 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

    @דוד ל.ט.

    ג. בקובץ VB.NET קל יחסית למצוא משתנים, אבל בקובץ C# זה קשה מאוד! כך נראה לי.

    בC# עדיין לא ניסיתי אבל ב VB זה אכן קל.

    פורסם במקור בפורום CODE613 ב02/08/2013 18:05 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

    @ארכיטקט

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

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

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

    פורסם במקור בפורום CODE613 ב02/08/2013 13:14 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

    כן מדובר על VBA אבל המאקרו הזה נועד לעריכת הקוד מקור של כל השפות ולא לעריכה של הDLL או ה EXE המקופלים, כך שזה לא משנה באיזו שפה אתה כותב.

    פורסם במקור בפורום CODE613 ב02/08/2013 08:23 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

    שלוש עשרה צפיות [זה כמעט כל הפורום ... <!-- s:-) --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":-)" title="מחייך" /><!-- s:-) --> ] ואף אחד לא יודע?

    פורסם במקור בפורום CODE613 ב01/08/2013 19:53 (+03:00)


  • מאקרו של ויזואל סטודיו
    רחמיםר רחמים

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

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

    Sub IsCodeTypeExample()
    
        ' NOTE: This example requires a reference to the System.Text 
        '       namespace.
    
        ' Before running this example, open a code document from a project.
        Dim item As ProjectItem = dte.ActiveDocument.ProjectItem
        Dim sb As New StringBuilder
    
        RecurseElements(item.FileCodeModel.CodeElements, 0, sb)
    
        MsgBox(item.Name & " contains the following elements:" & vbCrLf & _
            vbCrLf & sb.ToString())
    
    End Sub
    
    Sub RecurseElements(ByVal elems As CodeElements, _
        ByVal level As Integer, ByVal sb As StringBuilder)
    
        Dim elem As CodeElement
        For Each elem In elems
            ' Add element to the list of names.
            sb.Append(" "c, level * 8)
            sb.Append(elem.Name & " [" & elem.Kind.ToString() & "]" & _
                vbCrLf)
    
            ' Call this function recursively if element has children.
            If elem.Kind = vsCMElement.vsCMElementNamespace Then
                RecurseElements(CType(elem, CodeNamespace).Members, _
                    level + 1, sb)
            ElseIf elem.IsCodeType Then
                RecurseElements(CType(elem, CodeType).Members, _
                    level + 1, sb)
            End If
        Next
    End Sub
    

    פורסם במקור בפורום CODE613 ב30/07/2013 16:28 (+03:00)


  • קידוד URL לעברית באמצעות VBA
    רחמיםר רחמים

    איך ?

    פורסם במקור בפורום CODE613 ב01/08/2013 19:51 (+03:00)


  • קידוד URL לעברית באמצעות VBA
    רחמיםר רחמים

    כדי שלא יחליף לך בין אותיות אמצעיות לסופיות נסה לכתוב במקום

    CASE "ם"
     (CASE CHR(141
    

    או שתעשה כך

    Function EncodeOneCharToURL(char As Byte)
    Dim Encode As String
    Select Case char
    Case 128
     Encode = "%D7%90"
    Case 129
     Encode = "%D7%91"
     
     '.....
    End Function
    

    וההסבר הוא שיש Binary Compare ויש Text Compare
    מה שאתה עשית כנראה שVBA מפרש כמו השוואה של טקסט ובטקסט מ' ום' שוות אבל מבחינה בינארית יש חילוק בינהם ולהם הצעתי שהבדיקה תהיה בינארית.

    פורסם במקור בפורום CODE613 ב29/07/2013 08:31 (+03:00)


  • על ואודות האתר, ומפת דרכים
    רחמיםר רחמים

    @CODE613M

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

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

    שמחתי מאוד לראות דברים אלו!
    על זה נאמר משלי פרק ג, ו בְּכָל דְּרָכֶיךָ דָעֵהוּ וְהוּא יְיַשֵּׁר אֹרְחֹתֶיךָ:
    כי מי שנכנס לתיכנות ושוכח בשביל מה, שוכח גם לצאת משם מדי פעם....

    פורסם במקור בפורום CODE613 ב26/07/2013 16:55 (+03:00)


  • חילוץ טקסט מ PDF
    רחמיםר רחמים

    כדאי שתפתח על זה אשכול בפני עצמו

    פורסם במקור בפורום CODE613 ב22/10/2015 08:14 (+03:00)


  • חילוץ טקסט מ PDF
    רחמיםר רחמים

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

    רק הבעיה שהוא מביא את השורות מסוף העמוד לתחילתו ברוורס...
    לכן היתי צריך לכתוב קצת אחרת את הפונקציות הבאות:

    Private Function ReadPdfFile2(fileName As String) As String
            Dim text As New StringBuilder()
    
            If File.Exists(fileName) Then
                Dim pdfReader As New pdf.PdfReader(fileName)
                For page As Integer = 1 To pdfReader.NumberOfPages
                    text.AppendLine(parser.PdfTextExtractor.GetHebTextFromPage(
                            pdfReader, page) & vbCrLf)
                Next
                pdfReader.Close()
            End If
            Return text.ToString()
    
        End Function
    

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

    public static String GetHebTextFromPage(PdfReader reader, int pageNumber)
            {
                PdfReaderContentParser parser = new PdfReaderContentParser(reader);
                return parser.ProcessContent(pageNumber, new LocationTextExtractionStrategy()).GetResultantHebText();
            }
    

    ועוד פונקציה אחרונה חדשה

    public string Reverse(string input)
            {
                char[] chars = input.ToCharArray();
                Array.Reverse(chars);
                return new String(chars);
            }
    
            public virtual String GetResultantHebText()
            {
    
                if (DUMP_STATE) DumpState();
    
                locationalResult.Sort();
    
                StringBuilder sb = new StringBuilder();
                StringBuilder sb2 = new StringBuilder();
                TextChunk lastChunk = null;
                foreach (TextChunk chunk in locationalResult)
                {
                    if (lastChunk == null)
                    {
                        sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                    }
                    else
                    {
                        if (chunk.SameLine(lastChunk))
                        {
                            sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                        }
                        else
                        {
                            sb2.Append(chunk.text[0] > 127 ? chunk.text : Reverse(chunk.text));
                            sb.AppendLine(Reverse(sb2.ToString()));
                            sb2 = new StringBuilder();
                        }
                    }
                    lastChunk = chunk;
                }
                return sb.ToString();
            }
    

    פורסם במקור בפורום CODE613 ב26/07/2013 16:28 (+03:00)


  • חילוץ טקסט מ PDF
    רחמיםר רחמים

    זו השגיאה:

    שגיאה.PNG

    מה לחפש ?

    פורסם במקור בפורום CODE613 ב25/07/2013 23:28 (+03:00)


  • חילוץ טקסט מ PDF
    רחמיםר רחמים

    ניסיתי את XPDF אבל קיבלתי הודעת שגיאה שהוא לא תומך בגירסאות PDF מעל 1.4
    אני לא כותב (בנתיים) ב JS אבל האם אפשר לתקשר עם DLL המדובר של JS בדוט נט?

    פורסם במקור בפורום CODE613 ב25/07/2013 22:00 (+03:00)


  • חילוץ טקסט מ PDF
    רחמיםר רחמים

    מישהו יודע איך לעשות את זה בצורה טובה?
    היכן יש מידע ברור איך קבצי PDF בנוים?
    פתחתי קובץ PDF בפנקס רשומות ויש שם כותרות מעין אלו:
    endstream
    endobj
    258 0 obj
    <</Filter/FlateDecode/Length 3493>>stream

    ובין הכותרות מידע בינארי. איפה אפשר ללמוד על כל זה?
    אגב מי שהתרשמתי ממנו שעשה עבודה טובה וחילץ את הטקסט מPDF בצורה מדוייקת כמו אקרובט זה אוצר החכמה הנה קישור להורדה חינמית שהם פירסמו:
    http://80.179.48.194/importpdf.zip
    שילוב של כמה שפות תיכנות.

    פורסם במקור בפורום CODE613 ב25/07/2013 21:13 (+03:00)


  • VBA: for each reverse order
    רחמיםר רחמים

    האם אינך יכול לעשות כמו שהציעו שם בדומה לקוד הבא?

    For i as integer = myStringList.Count-1 to 0 step -1
        dim s as string = myStringList.Item(i)
        ' Do your stuff with s
    Next i
    

    רק שב VBA זה עם שינויים קלים בתחביר

    פורסם במקור בפורום CODE613 ב25/07/2013 15:39 (+03:00)

  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום