Skip to content

Instantly share code, notes, and snippets.

@KristianLyng
Created November 19, 2018 15:19
Show Gist options
  • Save KristianLyng/9512670621910af539c2d816905322a7 to your computer and use it in GitHub Desktop.
Save KristianLyng/9512670621910af539c2d816905322a7 to your computer and use it in GitHub Desktop.
kly@r2d2:~$ ./foo.c.sh foo.c.sh
0x23 0x21 0x2F 0x62 0x69 0x6E 0x2F 0x62 #!/bin/b
0x61 0x73 0x68 0x0A 0x0A 0x0A 0x5F 0x74 ash..._t
0x65 0x6D 0x70 0x3D 0x24 0x28 0x6D 0x6B emp=$(mk
0x74 0x65 0x6D 0x70 0x29 0x0A 0x0A 0x67 temp)..g
0x63 0x63 0x20 0x2D 0x78 0x20 0x63 0x20 cc.-x.c.
0x2D 0x6F 0x20 0x24 0x5F 0x74 0x65 0x6D -o.$_tem
0x70 0x20 0x2D 0x20 0x3C 0x3C 0x5F 0x45 p.-.<<_E
0x4F 0x46 0x5F 0x0A 0x23 0x69 0x6E 0x63 OF_.#inc
0x6C 0x75 0x64 0x65 0x20 0x3C 0x73 0x74 lude.<st
0x64 0x69 0x6F 0x2E 0x68 0x3E 0x0A 0x23 dio.h>.#
0x69 0x6E 0x63 0x6C 0x75 0x64 0x65 0x20 include.
0x3C 0x63 0x74 0x79 0x70 0x65 0x2E 0x68 <ctype.h
0x3E 0x0A 0x0A 0x69 0x6E 0x74 0x20 0x6D >..int.m
0x61 0x69 0x6E 0x28 0x29 0x20 0x7B 0x0A ain().{.
0x09 0x69 0x6E 0x74 0x20 0x63 0x3B 0x0A .int.c;.
0x09 0x69 0x6E 0x74 0x20 0x64 0x65 0x6C .int.del
0x69 0x6D 0x3D 0x30 0x3B 0x0A 0x09 0x63 im=0;..c
0x68 0x61 0x72 0x20 0x73 0x74 0x72 0x69 har.stri
0x6E 0x67 0x5B 0x31 0x30 0x5D 0x3B 0x0A ng[10];.
0x09 0x77 0x68 0x69 0x6C 0x65 0x28 0x63 .while(c
0x20 0x3D 0x20 0x67 0x65 0x74 0x63 0x68 .=.getch
0x61 0x72 0x28 0x29 0x29 0x20 0x7B 0x0A ar()).{.
0x09 0x09 0x69 0x66 0x20 0x28 0x63 0x21 ..if.(c!
0x3D 0x45 0x4F 0x46 0x29 0x0A 0x09 0x09 =EOF)...
0x09 0x70 0x72 0x69 0x6E 0x74 0x66 0x28 .printf(
0x22 0x30 0x78 0x25 0x30 0x32 0x58 0x20 "0x%02X.
0x22 0x2C 0x63 0x29 0x3B 0x0A 0x09 0x09 ",c);...
0x65 0x6C 0x73 0x65 0x0A 0x09 0x09 0x09 else....
0x70 0x72 0x69 0x6E 0x74 0x66 0x28 0x22 printf("
0x20 0x20 0x20 0x20 0x20 0x22 0x29 0x3B .....");
0x0A 0x09 0x09 0x73 0x74 0x72 0x69 0x6E ...strin
0x67 0x5B 0x64 0x65 0x6C 0x69 0x6D 0x5D g[delim]
0x3D 0x20 0x28 0x69 0x73 0x61 0x6C 0x6E =.(isaln
0x75 0x6D 0x28 0x63 0x29 0x20 0x7C 0x7C um(c).||
0x20 0x69 0x73 0x70 0x75 0x6E 0x63 0x74 .ispunct
0x28 0x63 0x29 0x29 0x20 0x3F 0x20 0x63 (c)).?.c
0x3A 0x20 0x63 0x21 0x3D 0x45 0x4F 0x46 :.c!=EOF
0x3F 0x27 0x2E 0x27 0x3A 0x27 0x20 0x27 ?'.':'.'
0x3B 0x0A 0x09 0x09 0x64 0x65 0x6C 0x69 ;...deli
0x6D 0x2B 0x2B 0x3B 0x0A 0x09 0x09 0x69 m++;...i
0x66 0x20 0x28 0x28 0x63 0x3D 0x3D 0x45 f.((c==E
0x4F 0x46 0x29 0x20 0x7C 0x7C 0x20 0x28 OF).||.(
0x64 0x65 0x6C 0x69 0x6D 0x20 0x3D 0x3D delim.==
0x20 0x38 0x29 0x29 0x20 0x7B 0x0A 0x09 .8)).{..
0x09 0x09 0x73 0x74 0x72 0x69 0x6E 0x67 ..string
0x5B 0x64 0x65 0x6C 0x69 0x6D 0x5D 0x20 [delim].
0x3D 0x20 0x27 0x5C 0x30 0x27 0x3B 0x0A =.'\0';.
0x09 0x09 0x09 0x77 0x68 0x69 0x6C 0x65 ...while
0x28 0x64 0x65 0x6C 0x69 0x6D 0x2B 0x2B (delim++
0x3C 0x38 0x29 0x0A 0x09 0x09 0x09 0x09 <8).....
0x70 0x72 0x69 0x6E 0x74 0x66 0x28 0x22 printf("
0x20 0x20 0x20 0x20 0x20 0x22 0x29 0x3B .....");
0x0A 0x09 0x09 0x09 0x70 0x72 0x69 0x6E ....prin
0x74 0x66 0x28 0x22 0x20 0x25 0x73 0x5C tf(".%s\
0x6E 0x22 0x2C 0x73 0x74 0x72 0x69 0x6E n",strin
0x67 0x29 0x3B 0x0A 0x09 0x09 0x09 0x64 g);....d
0x65 0x6C 0x69 0x6D 0x3D 0x30 0x3B 0x0A elim=0;.
0x09 0x09 0x7D 0x0A 0x09 0x09 0x69 0x66 ..}...if
0x20 0x28 0x63 0x20 0x3D 0x3D 0x20 0x45 .(c.==.E
0x4F 0x46 0x29 0x20 0x0A 0x09 0x09 0x09 OF).....
0x72 0x65 0x74 0x75 0x72 0x6E 0x20 0x30 return.0
0x3B 0x0A 0x09 0x7D 0x0A 0x7D 0x0A 0x5F ;..}.}._
0x45 0x4F 0x46 0x5F 0x0A 0x24 0x5F 0x74 EOF_.$_t
0x65 0x6D 0x70 0x20 0x3C 0x24 0x31 0x0A emp.<$1.
0x72 0x6D 0x20 0x24 0x5F 0x74 0x65 0x6D rm.$_tem
0x70 0x0A p.
#!/bin/bash
_temp=$(mktemp)
gcc -x c -o $_temp - <<_EOF_
#include <stdio.h>
#include <ctype.h>
int main() {
int c;
int delim=0;
char string[10];
while(c = getchar()) {
if (c!=EOF)
printf("0x%02X ",c);
else
printf(" ");
string[delim]= (isalnum(c) || ispunct(c)) ? c: c!=EOF?'.':' ';
delim++;
if ((c==EOF) || (delim == 8)) {
string[delim] = '\0';
while(delim++<8)
printf(" ");
printf(" %s\n",string);
delim=0;
}
if (c == EOF)
return 0;
}
}
_EOF_
$_temp <$1
rm $_temp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment