Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Βοήθεια με δημιουργία exe kαι EOF

Îåêßíçóå áðü ôï ìÝëïò teDeV. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 20-04-2010, 20:47. Υπάρχουν 24 απαντήσεις.
Σελίδα 2 από 2 (25 εγγραφές)   < 1 2
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-01-2010, 01:52 56634 σε απάντηση της 56627

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    βαγγέλη σε ευχαριστώ πολύ για την απάντησή σου, ακούγεται πολύ λογική. το είχα σκεφτεί απλώς δεν ξέρω πως να το αποδείξω ώστε να μπορέσω να αλλάξω το checksum.

    θα ρίξω μια ματιά μήπως και καταφέρω να βγάλω άκρη.

    αν βρείς κάτι, ή σκεφτείς κάτι πάνω στο θέμα, παρακαλώ πες μου.

    η εφαρμογή είναι .net

    To 2007 tha ta poume stin agora :)
  •  24-01-2010, 12:40 56635 σε απάντηση της 56634

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    ΑΝ κατάλαβα καλά, μάλλον θες να βάλεις ένα binary watermark μέσα στο assembly. Συνήθως αυτό το κάνουν οι obfuscators. Δεν έχω δει source code που να κάνει τέτοια δουλειά, ωστόσο μπορείς να το κάνεις με διάφορα tools/utilities:

     


    Vir prudens non contra ventum mingit
  •  25-01-2010, 00:38 56643 σε απάντηση της 56635

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Μερικά σημεία για προσοχή:

    • Το να προσθέσεις δεδομένα στο τέλος ενός αρχείου .exe και να προσπαθείς να κάνεις το αρχείο .exe να διαβάζει και να αλλάζει τον εαυτό του, είναι "ανορθόδοξο". Αυτό δεν είναι άποψη κάποιων μέσα στο forum, αλλά γενική αποδεκτή πρακτική. Το .exe αρχείο είναι σε θέση να μεταφέρει δεδομένα, μέσα στα data segments που έχει, είτε σε πιθανά resources segments που διαθέτει. Γενικά ένα αρχείο .exe, δεν πρέπει να αλλάζει από τη στιγμή που δημιουργείται από τον compiler. Σε περιβάλλοντα υψηλής ασφαλείας, με την χρήση active directory, είναι πιθανό τέτοια αρχεία να μην τρέχουν καθόλου, μιας και το CRC τους μεταβάλετε κάθε φορά που εκτελείται. Ας μην ξεχνάμε, ότι οι περισσότερες εταιρείες, πλέον υπογράφουν "ψηφιακά" τα εκτελέσιμά τους - και .exe και .dll - ακριβώς για να μην μπορούν να αλλάξουν από την στιγμή που δίνονται στους τελικούς χρήστες.
      • Πιθανώς ένα παλαιότερο λειτουργικό - Windows XP - και προγενέστερα λειτουργικά συστήματα - να σου επιτρέπουν να ολοκληρώσεις ένα τέτοιο εγχείρημα σε περιβάλλον εργαστηρίου, αλλά σίγουρα στα νεότερα λειτουργικά συστήματα, αυτό θεωρείται παραποίηση του .exe και δεν νομίζω ότι είναι δυνατό να γίνει, είτε να μπορεί να γίνει χωρίς να απαιτηθούν elevated priviledges από την μεριά του χρήστη.
      • Κανένα antivirus πρόγραμμα που έχει heuristics ενεργοποιημένα, δεν θα το επιτρέψει επίσης. Θα το θεωρήσει σαν "επίθεση" και θα το "κόψει" ή στην καλύτερη θα ζητήσει από τον χρήστη "άδεια" για να το επιτρέψει.
    • Νομίζω ότι είναι κατανοητό ότι η "τεχνική" που προσπαθείς να υλοποιήσεις, ενώ μπορεί υπό προϋποθέσεις να φαίνεται "ιδανική" και να δουλεύει σε περιβάλλον εργαστηρίου, το σίγουρο είναι ότι θα δημιουργήσει "πονοκεφάλους" και σε αυτόν που θα το φτιάξει, μιας και δεν έχει ουσιαστική λύση στο πρόβλημά του, καθώς και σε αυτόν που θα θελήσει να το τρέξει μιας και θα έχει "γκρίνιες" από τα προγράμματα ασφαλείας που χρησιμοποιεί, είτε και από το λειτουργικό σύστημα.
    • Για να γίνει ένας παρόμοιος μηχανισμός με αυτόν που περιγράφεις ότι θες να υλοποιήσεις, θα μπορούσε να χρησιμοποιηθεί το resources segment του εκτελέσιμου αρχείου για να γράψεις δεδομένα, όπως έχει υποδειχτεί από τον Παναγιώτη σε προηγούμενη απάντηση, αλλά θα πρέπει να υπάρχει ένα ξεχωριστό εκτελέσιμο που θα τρέχει για να κάνει την αυτή αλλαγή - κάτι σαν bootstraper που εκκινείται πριν από το κυρίως εκτελέσιμο ή από το κυρίως εκτελέσιμο, και που είτε δίνεται μαζί με το εκτελέσιμο είτε βγαίνει από τα resources του εκτελέσιμου.
    • Προσωπική επιλογή, αποτελούν themes ασφαλείας που το .exe είναι υπογραμμένο "ψηφιακά" για να μην μπορεί να γίνει tampered, και περιέχει time-bomb κώδικα για να σταματήσει την λειτουργία του υπό-προϋποθέσεις.
    • Επίσης θα ήθελα να τονίσω, ότι όταν προσπαθείς να δημιουργήσεις ένα μηχανισμό ασφαλείας, το πρώτα πράγματα που πρέπει να κάνεις, είναι να μην είσαι αφελής και ανημέρωτος - να νομίζεις ότι μπορείς να το φτιάξεις μόνος σου, και να μην ψάχνεις να δεις τι υπάρχει ήδη έτοιμο και μπορείς να χρησιμοποιήσεις. Φαντάζεσαι, ότι με τα χρόνια έχουν δημιουργηθεί πολλοί μηχανισμοί ασφαλείας και κάποιοι "έσπασαν" και κάποιοι όχι. Αυτό που ξέρουμε σίγουρα είναι ότι, ο χρόνος και η επιμονή να σπάσει ένα πρόγραμμα εξαρτάται, από το πόσο εύκολα μπορεί να το βρει κανείς - αν θα είναι διαθέσιμο για όλους να κατέβει από το Internet - και ποια είναι η αξία του - αν κάτι κάνει €10 δεν αξίζει κάποιος να χάσει το χρόνο του να το σπάσει.
      • Το συμπέρασμα που απορρέει είναι ότι αν έχεις κάτι, που μπορείς να το πουλήσεις σε περιορισμένους πελάτες, μετρημένους, και θα τους το δίνεις εσύ προσωπικά, για να βγάζεις πολλά λεφτά από αυτό, βρίσκεσαι στον λάθος δρόμο γιατί ο μόνος τρόπος να το καταφέρεις αυτό είναι να έχεις ένα "υψηλής ασφαλείας" σύστημα που μπορεί να φτιάξει μόνο ένας πολύ έμπειρος προγραμματιστής, που προφανώς εσύ δεν είσαι.
      • Αν το κάνεις επειδή φτιάχνεις ένα πρόγραμμα και πιστεύεις ότι δεν θα αποζημιωθείς για τον κόπο που έχεις κάνει, ή θα προσπαθήσουν να σε εξαπατήσουν, πάλι βρίσκεσαι στον λάθος δρόμο, γιατί μπορείς να βρεις έτοιμο "software", φτηνό ή δωρεάν, που μπορεί να σε βοηθήσει να προστατέψεις την δουλειά σου, και θα το κάνει ορθούς και δοκιμασμένους τρόπους, και να είσαι σίγουρος για το αποτέλεσμα.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  25-01-2010, 19:40 56669 σε απάντηση της 56634

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Θοδωρη,

    θα σου προτεινα να ψαξεις για το .NET CLR και ειδικοτερα πως ενα managed module κανει χρηση του PE32 (PE32+) header, CLR header, Metadata kai IL Code. Ειναι πολυ μεγαλη συζητηση για αυτα για να ειπωθουν εδω. Αρχισε απο αυτα και οταν τα διαβασεις kai "παιξεις", θα εισαι μελος μια πολυ μικρης κοινοτητας που καταλαβαινει πραγματικα τι γινεται στο .NET :-). Δεν εχω μια συγκεκριμενη αρχη να σου πω, χρονια πριν ηξερα οτι ο Jeffrey Richter ειχε καποια καλα βιβλια πανω σε αυτα και ειναι δυσκολο να σου μαζεψω 20 χρονια απο Windows Internals σε 2 γραμμες.  Ειμαι σιγουρος οτι τωρα θα μπορεις να βρεις τα σχετικα στο Internet. Δεν ξερω ακριβως τι προσπαθεις να κανεις, αλλα νομιζω οτι το γεγονος πως το "ψαχνεις" το θεμα ειναι πολυ θετικο. Μην απογοητευεσαι απο αλλα postings. Ειναι αληθεια οτι πολυ κοσμος εχει γραψει και εχει σκεφτει κωδικους για διαφορα πραγματα αλλα αμα δεν το ψαξεις μονος σου, δεν θα εχεις ιδεα τι πραγματικα γινεται, ασε που το μεγαλυτερο ποσοστο απο αυτα ειναι για πεταμα. Αμα αυτο που θελεις να κανεις ειναι για τον εργοδοτη σου, τοτε πες τι ακριβως ειναι ο σκοπος. Οπως καποιος αλλος παρομοια ειπε, υπαρχουν "Industry standard" μεθολογιες που υποστηριζονται και απο τη Microsoft, οποτε ο εργοδοτης σου θα ειναι πολυ χαρουμενος που τα ακολουθησες. Αμα το κανεις για προσωπικο λογο, και εχεις τον χρονο, τοτε συνεχισε το ψαξιμο :-) Ολα τα συστηματα εχουν εξαιρεσεις, οχι επειδη αυτοι που τα φτιαξανε ειναι χαζοι, αλλα επειδη το ενα συστημα βασιζεται σε προηγουμενο και ο χρονος δεν ειναι ποτε αρκετος (η κερδοφορος) για να καλυψεις/ανακαλυψεις ολες τις τρυπες...

  •  29-01-2010, 11:49 56780 σε απάντηση της 56669

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    Συγνώμη που άργησα να απαντήσω, απλώς είμαι πολύ απασχολημένος.

    Προς KelMan.
    Όχι καμία σχέση με αυτό που λες. Εγώ θέλω να μπορώ στο τέλος του exe να βάζω ένα string με κάποια πληροφορία, για να ξέρω ότι αυτό το exe έχει τρέξει σε κάποιο συγκεκριμένο pc.
    Δεν θέλω κανένα άλλο τρόπο. Ούτε registry, ούτε άλλα αρχεία, ούτε σε κάποια βάση. Θέλω μόνο το exe.

    Προς G.Kapnias
    για το 1ο και 2ο που είπες....

    αν το να αλλάξω μία πληροφορία σε ένα exe είναι "ανορθόδοξο" θα το αποφασίσω εγώ, όταν μιλάω φυσικά για μία δική μου εφαρμογή. Και τα XP, και τα Vista και τα 7αρια, το δέχονται μια χαρά όπως το κάνω. Και τρέχω και σε active directory. Ακόμα και τα antivirus να είχαν κάποιο πρόβλημα με αυτό που θέλω να κάνω, ακόμα και για αυτό έχω λύση, χωρίς να ενοχλώ το χρήστη μου. Αυτό που λέω δεν είναι λόγια του αέρα. Το λέω επειδή το έχω κάνει και ξέρω ότι γίνεται.

    για το 3ο που είπες....
    ναι θεωρητικά έτσι πρέπει να γίνει. Έχω διαβάσει ένα σωρό πράγματα, και περιμένω κάτι να δω αν όντως ισχύει, ώστε να πάρω και την λύση μου.

    τέλος....
    δεν είμαι ούτε αφελής ούτε ανημέρωτος ούτε κάποιος αν-έμπειρος προγραμματιστής ο οποίος ξύπνησε μια μέρα, και λέει "γουάου, γαμάτο θα φτιάξω αυτό". Απο ότι είδες, σας έδειξα κώδικα με αυτό που είχα κάνει μέχρι εκείνη τι στιγμή σαν δοκιμή. Έφτιαξα παραδείγματα για να δείτε ότι γίνεται, σας απέδειξα ότι γίνεται, σας έδειξα που δεν γίνεται, σας έδειξα τι έχω κοιτάξει και τι έχω διαβάσει. Μου δώσανε τα παιδιά (σας ευχαριστώ πάλι για το χρόνο σας) άρθρα να διαβάσω για PE Headers, exe structure, Και ένα σωρό άλλα.




    Προς vaggelis....
    Βαγγέλη σε ευχαριστώ πολύ απο την απάντηση σου, χαίρομαι που είδα σε αυτό το post 1-2 άτομα τα οποία, έχουν ανοιχτό μυαλό, δεν το βάζουν κάτω, και προσπαθούν να υποστηρίξουν μια τρελή ή όχι ιδέα κάποιου. Αυτό είναι ο προγραμματισμός. Τρελές ιδεές χωρίς όρια, τουλάχιστον για μένα.

    Αυτά τα φτιάχνω για μένα, και όχι για κάποιον άλλο. Smile


    Ευχαριστώ
    Θοδωρής

    To 2007 tha ta poume stin agora :)
  •  29-01-2010, 15:09 56785 σε απάντηση της 56780

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    teDeV:

    για το 3ο που είπες....
    ναι θεωρητικά έτσι πρέπει να γίνει. Έχω διαβάσει ένα σωρό πράγματα, και περιμένω κάτι να δω αν όντως ισχύει, ώστε να πάρω και την λύση μου.

    Θόδωρε,

    Συγνώμη, που θα σπαταλήσω το χρόνο σου, γιατί η ερώτηση που θα κάνω είναι σαρκαστική και ανούσια, αλλά μπορείς να μου εξηγήσεις τι ακριβώς "περιμένεις" να έρθει/περάσει για να "δεις" ότι όντως αυτά που έχεις διαβάσει και σου έχουν πει ισχύουν;

    • Πιστεύεις ότι οι απαντήσεις στο forum που σου έχουν δοθεί, προσπαθούν να σε εξαπατήσουν ή σου κρύβουν την αλήθεια;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  29-01-2010, 15:53 56787 σε απάντηση της 56785

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    γιώργο είπα ποτέ κάτι τέτοιο? όταν είπα "περιμένω κάτι να δω αν όντως ισχύει" δεν εννούσα απο εσάς.

    αυτό που ήθελα να πω, είναι ότι διάβασα κάποια πράγματα, έβγαλα μια μικρή και μπερδεμένη άκρη, και τώρα θέλω λίγο ελεύθερο χρόνο, να κάτσω να δω, αν αυτά που διάβασα, μπορώ να τα βάλω στη σειρά, και όντως να βρώ (εγώ) μία λύση στο πρόβλημά μου.

    απο που και ως που να πιστεύω ότι θέλουν να με εξαπατήσουν? (αν εννοείς σε φράσεις όπως "δεν γίνεται"), τότε απλά δεν τις λαμβάνω υπόψιν μου. δεν είπα ποτέ "α! αυτός το λέει αυτό, επειδή δεν θέλει εγώ να το πετύχω ή κάτι τέτοιο".

    με παρεξηγείτε χωρίς να έχω δώσει λόγο η αφορμή και δεν ξέρω γιατί.

    φιλικά
    Θοδωρής

    To 2007 tha ta poume stin agora :)
  •  29-01-2010, 19:33 56793 σε απάντηση της 56787

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    teDeV:

    με παρεξηγείτε χωρίς να έχω δώσει λόγο η αφορμή και δεν ξέρω γιατί.

    Θόδωρε,

    Δεν πιστεύω ότι υπάρχει κάποιος μέσα στο forum, που να έχει σκοπό ή όφελος να σε παρεξηγήσει, είτε με λόγο και αφορμή, είτε χωρίς.

    Καταλαβαίνεις όμως, ότι μερικά από τα πράγματα που γράφεις, δεν είναι τόσο ξεκάθαρα. Προσωπικά, έχοντας την ευθύνη της λειτουργίας του forum, όταν γίνεται λόγος για την ορθότητα των απαντήσεων που δημοσιεύονται, μέσα στο forum, σαν απαντήσεις σε ερωτήσεις των μελών του, δεν θέλω να υπάρχει η παραμικρή αμφιβολία.

    Περιττό να αναφέρω, ότι για τους moderators του forum, εκτός την συνεχή παρουσία και συνεισφορά τους στο forum για συναπτά έτη, και τους ξέρω προσωπικά, και έχω άποψη για το βάθος της τεχνικής τους κατάρτισης. Η καταξίωσή τους στο χώρο της πληροφορικής δεν έχει γίνει μέσα από το forum, αλλά από τη καθημερινή εργασία τους και την συμμετοχή τους σε εκδηλώσεις εκτός του forum.

    Δεν έχω ξανασυναντήσει κάποιο μέλος που είχε σχόλιο, για τις τεχνικές συμβουλές που του δόθηκαν, αν θα έπρεπε να τις ακολουθήσει, ή αν ταίριαζαν στο στυλ του. Οι τεχνικές λύσεις που συστήνονται, περιέχουν συσσωρευμένη εμπειρία που κάποιος έχει από την επαγγελματική του ενασχόληση, και όχι από την ενασχόληση του στον ελεύθερο του χρόνο.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  20-04-2010, 19:51 58196 σε απάντηση της 56634

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    καλησπερα 

    Αυτο το  θεμα ειναι λιγο  παλιο  αλλα τωρα  μολις  το ανακαλυψα  

    Επειδη λοιπον  ο φιλαρακος θελει να γραψει καποια πραγματα  στο  αρχειο που  εχει  δημιουργησει    

    οριστε  ο τροπος  που  μπορει να το υλοποιησει   (Builder-Stub )

    Στο κομματι  του Builder

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim strStub As String
    
    Open App.Path & "\stub.exe" For Binary As #1
       strStub = Space(LOF(1))
       Get #1, , strStub
    Close #1
    
    Open App.Path & "\test.exe" For Binary As #1
       Put #1, , strStub
       Put #1, , "-[@]-"
       Put #1, , txtdata1.Text
       Put #1, , "-[@]-"
       Put #1, , txtdata2.Text
    Close #1
    Στο κομματι  του Stub 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim strMe As String, strSplitted() As String
    
    Open App.Path & "\" App.Filename For Binary As #1
      strMe = Space(LOF(1))
      Get #1, , strMe
    Close #1
    
    strSplitted = Split(strMe, "-[@]-")
    MsgBox "data1: " & strSplitted(1)
    MsgBox "data2: " & strSplitted(2)


    Rookie learn to fly U are my Inspiration...
    Who said Multithreading is impossible
    Try it First and after Deside if is Possible
  •  20-04-2010, 20:47 58197 σε απάντηση της 58196

    Απ: Βοήθεια με δημιουργία exe kαι EOF

    ntaryl, αν προσέξεις τη συζήτηση θα δεις ότι το θέμα είναι πιο περίπλοκο από το πως διαβάζεις και γράφεις σε αρχεία με τη VB6. Ακόμα και αν ήταν καλή ιδέα να πειράξεις το exe πάντως, καλύτερα θα ήταν να χρησιμοποιήσεις τις κλάσεις του FileSystemObject και όχι τα αρχαϊκά ακόμα και για VB6 Open, Close κλπ.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Σελίδα 2 από 2 (25 εγγραφές)   < 1 2
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems