Få binær kode ud af tegnblok ? // Hjælp til mere information om .so injection
Følgende kan kategoriseres under både software og programmering idet mine 2 spørgsmål går på hhv. det ene og det andet emne.
Jeg sidder og prøver at få følgende tekst til at give mening:
http://www.phiral.net/blackhatbloc/phrack/phrack59/p59-0x08.txt
Indrømmet, jeg følger at det fortsat er vel over min formåen idet jeg ikke er specielt glad for assembly og jeg har kun en ringe forståelse af ELF-formatet (men har dog læst noget)
Nuvel!
Slutningen af artiklen har er en *lang* blok af tegn som angiveligt skulle kunne munde ud i en tgz fil med et komplet eksempel. Jeg håber at kunne læse dennes kildekode og ad den vej bedste forstå hvordan de enkelte snippets som artiklen viser i praksis kombineres.(Idet jeg har nogen forståelse af ptrace(), er rimelig kompetent hvad angår C og besidder en nogenlunde primitiv forståelse af makefiles mv -- derfor burde jeg fra eksemplet kunne forstå de sidste ting)
Nuvel!
Jeg ville gætte på at blokken var/er base64 encoded idet netop denne encoding er ret populær når man skal transmitere binær data igennem et medie som kun tillader tekst (det bruges bl. a. ved HTTP-post til at gøre dette!).
PROBLEMET er at jeg slet og ret ikke kan få noget brugbart ud af det. Først forsøgte jeg at gemme blokken af tekst i en fil, ssh_code.txt, for derefter at skrive:
$ cat ssh_code.txt | base64 -d
base64: invalid input
Dernæst forsøgte jeg mig med et andet program
$ cat ssh_code.txt | openssl base64 -d
Dernæst prøvede jeg at fjerne alle newlines såfremt dette måske kunne være problemet (ville give mening i min verden idet artiklens tekst er formatteret og base64-strenge garanteret ikke er specielt glade for disse ekstra tegn)
tr -d '\n' < ssh_code.txt | base64 -d -i
1r�Md�base64: invalid input
(-i == ignore garbage)
Mit spørgsmål er således om nogen evt. har andre forslag til hvad det kunne være encoded som?
Når jeg kigger nærmere og sammenholder blokken med tabellen over base64 tegn fra Wikipedia slår det mig at en del tegn ikke syntes brugt i base64. Base85 syntes dog mere sandsynlig men jeg kan ikke umiddelbart lige finde en måde at konvertere det på....
Andre forslag modtages selvfølgelig også
((Det andet, alternative spørgsmål ville være, om nogen evt. kendte til andre eksempler på det som artiklen skriver om -- pt. er jeg interesseret i alt der kan tilbyde en lignende evne til at injecte object filer således at mine metoder kan kaldes før end de oprindelige metoder.))
Jeg sidder og prøver at få følgende tekst til at give mening:
http://www.phiral.net/blackhatbloc/phrack/phrack59/p59-0x08.txt
Indrømmet, jeg følger at det fortsat er vel over min formåen idet jeg ikke er specielt glad for assembly og jeg har kun en ringe forståelse af ELF-formatet (men har dog læst noget)
Nuvel!
Slutningen af artiklen har er en *lang* blok af tegn som angiveligt skulle kunne munde ud i en tgz fil med et komplet eksempel. Jeg håber at kunne læse dennes kildekode og ad den vej bedste forstå hvordan de enkelte snippets som artiklen viser i praksis kombineres.(Idet jeg har nogen forståelse af ptrace(), er rimelig kompetent hvad angår C og besidder en nogenlunde primitiv forståelse af makefiles mv -- derfor burde jeg fra eksemplet kunne forstå de sidste ting)
Nuvel!
Jeg ville gætte på at blokken var/er base64 encoded idet netop denne encoding er ret populær når man skal transmitere binær data igennem et medie som kun tillader tekst (det bruges bl. a. ved HTTP-post til at gøre dette!).
PROBLEMET er at jeg slet og ret ikke kan få noget brugbart ud af det. Først forsøgte jeg at gemme blokken af tekst i en fil, ssh_code.txt, for derefter at skrive:
$ cat ssh_code.txt | base64 -d
base64: invalid input
Dernæst forsøgte jeg mig med et andet program
$ cat ssh_code.txt | openssl base64 -d
Dernæst prøvede jeg at fjerne alle newlines såfremt dette måske kunne være problemet (ville give mening i min verden idet artiklens tekst er formatteret og base64-strenge garanteret ikke er specielt glade for disse ekstra tegn)
tr -d '\n' < ssh_code.txt | base64 -d -i
1r�Md�base64: invalid input
(-i == ignore garbage)
Mit spørgsmål er således om nogen evt. har andre forslag til hvad det kunne være encoded som?
Når jeg kigger nærmere og sammenholder blokken med tabellen over base64 tegn fra Wikipedia slår det mig at en del tegn ikke syntes brugt i base64. Base85 syntes dog mere sandsynlig men jeg kan ikke umiddelbart lige finde en måde at konvertere det på....
Andre forslag modtages selvfølgelig også
((Det andet, alternative spørgsmål ville være, om nogen evt. kendte til andre eksempler på det som artiklen skriver om -- pt. er jeg interesseret i alt der kan tilbyde en lignende evne til at injecte object filer således at mine metoder kan kaldes før end de oprindelige metoder.))
Kommentarer3
Re: Få binær kode ud af tegnblok ? ...
Prøv med uudecode.
Du har fuldstændigt ret!
I fremtiden kan du bruge