Acrobase  

Καλώς ήρθατε στην AcroBase.
Δείτε εδώ τα πιο πρόσφατα μηνύματα από όλες τις περιοχές συζητήσεων, καθώς και όλες τις υπηρεσίες της AcroBase.
H εγγραφή σας είναι γρήγορη και εύκολη.

Επιστροφή   Acrobase > Υπολογιστές και Τεχνολογία > Πληροφορική και Επικοινωνία
Ομάδες (Groups) Τοίχος Άρθρα acrobase.org Ημερολόγιο Φωτογραφίες Στατιστικά

Notices

Δεν έχετε δημιουργήσει όνομα χρήστη στην Acrobase.
Μπορείτε να το δημιουργήσετε εδώ

Απάντηση στο θέμα
 
Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-02-10, 17:23
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
Συμπιεση αρχειου σε ascii

Πριν καποια χρονακια διαβαζα ενα αρχειο που κυκλοφορουσε στο δικτυο και στις BBS με τιτλο "Hacker Toolkit" () που ουτε που θυμαμαι ποιος μου το χε στειλει

Αυτο που μου ειχε κανει εντυπωση ειναι οτι τα προγραμματα που ανεφερε στο κειμενο, τα ειχε επισυναψει στο τελος του txt!!!! ωστε ολο μαζι να ηταν πραγματικα μια εργαλειοθηκη

Πως ειχε γινει αυτο;; Αν θυμαμαι καλα τα ειχε συμπιεσει με ενα τροπο ωστε το τελικο συμπιεσμενο αρχειο να μη ειναι binary αλλα ascii, με αποτελεσμα να μπορει να το "μεταφερει" κανοντας το copy σε οποιοδηποτε αρχειο κειμενου. Φυσικα το "αρχειο" αυτο ηταν μια σειρα απο ακαταληπτα αλαμπουρνεζικα στο τελος του κυριως κειμενου.

Κατοπιν το μονο που επρεπε να κανει ο ενδιαφερομενος ηταν να αντιγραψει αυτους τους χαρακτηρες σε αλλο αρχειο, να του δωσει επεκταση πχ .gz (λεμε τωρα) και να το αποσυμπιεσει με καποιες ειδικες παραμετρους

Πραγματικα παιζει κατι τετοιο; Ποιες μπορει να ειναι οι παραμετροι για να μετατρεψεις ενα αρχειο σε printable χαρακτηρες;
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!
Απάντηση με παράθεση
  #2  
Παλιά 04-02-10, 17:57
Το avatar του χρήστη Archmage
Archmage Ο χρήστης Archmage δεν είναι συνδεδεμένος
Μέλος
 

Τελευταία φορά Online: 14-03-18 00:30
Φύλο: Άντρας
Αρχική Δημοσίευση από Gildor Εμφάνιση μηνυμάτων
Κατοπιν το μονο που επρεπε να κανει ο ενδιαφερομενος ηταν να αντιγραψει αυτους τους χαρακτηρες σε αλλο αρχειο, να του δωσει επεκταση πχ .gz (λεμε τωρα) και να το αποσυμπιεσει με καποιες ειδικες παραμετρους

Πραγματικα παιζει κατι τετοιο; Ποιες μπορει να ειναι οι παραμετροι για να μετατρεψεις ενα αρχειο σε printable χαρακτηρες;
Υπάρχουν πολλοί τρόποι.

Με απλά λόγια:

Ένα εκτελέσιμο πρόγραμμα αποτελείται από bytes που λαμβάνουν τιμές μεταξύ 0 και 255, δηλαδή γεμίζουν και τα 8 bits.

Το κείμενο που διαβάζουμε αποτελείται από bytes που λαμβάνουν τιμές μεταξύ 32 και 127, δηλαδή γεμίζουν 7 bits.

Άρα οποιοσδήποτε αλγόριθμος μπορεί να αντιστοιχήσει μονοσήμαντα τα 8 bits της εισόδου στα 7 bits της εξόδου, κάνει τη δουλειά που θες

Πχ ένας χαζός αλγόριθμος μπορεί να είναι:

1. Διάβασε 7 bytes εισόδου
2. Γράψε τα 7 least significant bits σε 7 χαρακτήρες κειμένου (εξόδου)
3. Σύνθεσε τα 7 most significant bits από το κάθε byte εισόδου σε ένα χαρακτήρα κειμένου (εξόδου)

Για την αντίστροφη διαδικασία διαβάζεις 8 χαρακτήρες κειμένου και συνθέτεις 7 bytes.
__________________
may you live in interesting times
Απάντηση με παράθεση
  #3  
Παλιά 04-02-10, 20:02
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Ακούγεται όντως σαν uuencoded αρχείο. Τα πιο κοινά τέτοια formats είναι το uuencode, και το base64. Και τα δύο εφευρέθηκαν για να επιτρέπουν τη μεταβίβαση 8-bit υλικού (binary, ελληνικά, κλπ κλπ) μέσω συστημάτων που επέτρεπαν μόνο 7-bit υλικό (συνήθως us-ascii).

Αν βρεις κάτι σαν «begin 666 filename.zip» πριν από το block των χαρακτήρων, και οι περισσότερες γραμμές ξεκινούν με «M», τότε είναι uuencoded. Αν το block χαρακτήρων έχει και μικρά και κεφαλαία λατινικά γράμματα, είναι base64.

Το uuencode (unix-to-unix encode) είναι της εποχής του UUCP (Unix-to-Unix CoPy), του πρώτου τρόπου μετάδοσης email, news κλπ μεταξύ σταθμών στο ARPAnet. Ναι, είναι τόσο παλιό. Το base64 είναι νεώτερο, και χρησιμοποιείται κυρίως σε email. Το uuencode έχει ξεκάθαρη αρχή και τέλος, οπότε συνήθως απλά έβαζες ένα uuencoded αρχείο χύμα μέσα σε email (δε χρειάζονταν επισυνάψεις). Το πρόγραμμα uudecode δε μπερδευόταν καθόλου από το άσχετο κείμενο. Αυτό δεν ισχύει στο base64, όμως.

Επίσης δεν είναι συμπίεση, αλλά φούσκωμα! Ο λόγος είναι προφανής: δεδομένα σε ποσότητες των 8 bits (octets) πρέπει να χωρέσουν σε ποσότητες των 7 (7-bit bytes). Το κόλπο είναι να θεωρήσεις ότι αυτές οι ποσότητες είναι strings από bits, όχι από bytes, και να ανακωδικοποιήσεις το string σε bytes.

Πχ, το octet string «Gildor!» είναι ως εξής σε δυαδικό σύστημα:

Κώδικας:
01000111 01101001 01101100 01100100 01101111 01110010 00100001
Αν το ενώσεις, παίρνεις το bit string:

Κώδικας:
01000111011010010110110001100100011011110111001000100001
Κόβεις το bit string σε 7-bit ποσότητες:

Κώδικας:
0100011 1011010 0101101 1000110 0100011 0111101 1100100 0100001
Δηλαδή, 7 octets (56 bits) μετατρέπονται σε 8 7-bit bytes (56 bits πάλι), χωρίς απώλεια πληροφορίας. Το μέγεθος του αρχείου σε octets αυξάνεται κατά 1/7 ως αποτέλεσμα της κωδικοποίησης σε 7-bit bytes.

Αυτό είναι η θεωρία. Στην πράξη, δε μπορούμε να χρησιμοποιήσουμε 7 bits. Το 7-bit ASCII περιλαμβάνει ένα κάρο χαρακτήρες που δεν περνάνε «καθαρά» από όλα τα συστήματα. Οι χαρακτήρες 0–31 είναι ειδικοί και συνήθως δεν εμφανίζονται καν, και το ίδιο συμβαίνει με τον χαρακτήρα 127. Επίσης, θέλουμε (προφανώς) ακέραιο αριθμό bits, δηλαδή δύναμη του 2. Έχουμε 95 χαρακτήρες στη διάθεσή μας (ASCII 32–126), και η καλύτερη δύναμη του δύο που έχουμε είναι η 6η: 2^6 = 64 χαρακτήρες.

Έτσι επιλέγουμε να κωδικοποιήσουμε octets σε 6-bit bytes. Αυτό μας δίνει ένα θεωρητικό φούσκωμα 133% (3 octets γίνονται 4 6-bit bytes).

Το uuencode χρησιμοποιεί ένα πίνακα που αντιστοιχεί τους 64 χαρακήρες [κενό] και «!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]» στις τιμές 0–63 (000000–111111), και αυτός ο πίνακας είναι η βάση της κωδικοποίησης.

Προγραμματιστικά, η τεχνική είναι σχετικά απλή: διαβάζεις 3 octets, και τις αντιστοιχείς με bit operations σε 4 6-bit bytes. Εξάγεις τις τιμές με τη βοήθεια του πίνακα αντιστοιχίας, διαβάζεις τα επόμενα 6 octets, και ούτω καθ'εξής. Αν το αρχείο δεν έχει μέγεθος (σε octets) πολλαπλάσιο του 3, συμπληρώνεις με όσα μηδενικά χρειάζεσαι. Έστω ότι τα octets σου τα ορίζεις ως octets[3] στη C, και τα 6-bit bytes ως bytes6[4], κάνεις αυτό:

Κώδικας:
octets: 010001110110100101101100
bytes: 010001110110100101101100
Κώδικας:
bytes6[0] = (octets[0] >> 2) & 077;
bytes6[1] = (octets[0] & 003) | (octets[1] >> 4) & 077;
bytes6[2] = (octets[1] & 007) | (octets[2] >> 6) & 077;
bytes6[3] = (octets[2] & 077) | 077;
Αυτά τα τεχνικά. Λόγω του έξτρα όγκου του uuencoded αρχείου (εκείνες τις εποχές της μη σπατάλης, αυτό μας απασχολούσε), τα πιο πολλά uuencoded αρχεία ήταν συμπιεσμένα με κάποιο άλλο τρόπο (δηλαδή έκανες zip ένα αρχείο, και μετά uuencode το zip). Ίσως γι'αυτό μα το μπερδεύεις με συμπίεση.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #4  
Παλιά 04-02-10, 20:19
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Επί τη ευκαιρία, αν χρησιμοποιείς Python, μπορείς να κωδικοποιήσεις οποιοδήποτε string σε uuencode ή base64, γράφοντας κάτι τέτοιο:

print some_string.encode('uu')

ή

print some_string.encode('base64')

Υπάρχουν επίσης και οι προφανείς αντίστοιχες .decode('uu') και .decode('base64') methods που αποκωδικοποιούν strings που περιέχουν uuencoded/base64encoded δεδομένα.

Σε POSIX περιβάλλον, οι εντολές uuencode και uudecode κάνουν το προφανές. Με την παράμετρο -m (ή --base64) (απο)κωδικοποιούν base64. Στο Linux υπάρχει και αυτούσια εντολή base64.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #5  
Παλιά 04-02-10, 20:26
Το avatar του χρήστη Xenios
Xenios Ο χρήστης Xenios δεν είναι συνδεδεμένος
Administrator
 

Τελευταία φορά Online: 12-11-16 11:12
Φύλο: Άντρας
Που με ταξιδεύετε τώρα ... που έστελνα πακέτα με qwk της acro, σε μερικά φοιητάκια στο μεγάλο νησί
__________________
όταν γράφεται η ιστορία της ζωής σου,
μην αφήνεις κανέναν να κρατάει την πένα
Απάντηση με παράθεση
  #6  
Παλιά 04-02-10, 21:22
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Αρχική Δημοσίευση από Xenios Εμφάνιση μηνυμάτων
Που με ταξιδεύετε τώρα ... που έστελνα πακέτα με qwk της acro, σε μερικά φοιητάκια στο μεγάλο νησί
Κι εγώ νόμιζα ότι θα έλεγες πως κατέβαζες uuencoded τσόντες από το Usenet.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #7  
Παλιά 04-02-10, 21:31
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
Οντως ειναι uuencode

begin 664 binwarez.zip

Πολυ steampunk φαση ακουγεται
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!

Τελευταία επεξεργασία από το χρήστη Gildor : 04-02-10 στις 21:38
Απάντηση με παράθεση
  #8  
Παλιά 04-02-10, 23:24
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Αρχική Δημοσίευση από Gildor Εμφάνιση μηνυμάτων
Πολυ steampunk φαση ακουγεται
Κι όμως, υπάρχουν πολλοί δεινόσαυροι στο internet που κάνουν τέτοιες κωδικοποιήσεις απαραίτητες. Άλλωστε ακόμα και σήμερα, η πλειονότητα των email έχει επισυνάψεις σε base64, οπότε όλοι οι MTA υποθέτουν ότι όλο και κάποιος server θα είναι 7-bit.

...και φαντάσου ότι δε μπήκαμε καν στο ζήτημα του EBCDIC. Εκεί να δεις steampunk, ψυχολογικά θρίλερ και βαρύ σαδομαζοχισμό.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #9  
Παλιά 05-02-10, 00:14
Το avatar του χρήστη Xenios
Xenios Ο χρήστης Xenios δεν είναι συνδεδεμένος
Administrator
 

Τελευταία φορά Online: 12-11-16 11:12
Φύλο: Άντρας
Αρχική Δημοσίευση από Gildor Εμφάνιση μηνυμάτων
Πολυ steampunk φαση ακουγεται
Αν μπεις στην παλιά AcroBase, εκεί κατεβάζω ακόμα με uuencode
__________________
όταν γράφεται η ιστορία της ζωής σου,
μην αφήνεις κανέναν να κρατάει την πένα
Απάντηση με παράθεση
  #10  
Παλιά 05-02-10, 20:57
jimm Ο χρήστης jimm δεν είναι συνδεδεμένος
Οργανωτής Club
 

Τελευταία φορά Online: 22-01-17 22:16
Φύλο: Άντρας
...θυμάμαι minicom που είχε μία hacked έκδοση που υποστήριζε telnet [1] και έκανα copy-paste το uuencoded acro.rep, μόλις είχα αρχίσει να παίζω με linux.

Δ.

[1] ή το υποστήριζε έτσι κι αλλιώς, δεν θυμάμαι
__________________
Let's call it an accidental feature -- Larry Wall
Απάντηση με παράθεση
Απάντηση στο θέμα


Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες)
 
Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι σε λειτουργία

Που θέλετε να σας πάμε;


Όλες οι ώρες είναι GMT +3. Η ώρα τώρα είναι 19:01.



Forum engine powered by : vBulletin Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.