Issues:[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ][ 10 ][ 11 ][ 12 ][ 13 ][ 14 ][ 15 ][ 16 ][ 17 ][ 18 ][ 19 ][ 20 ][ 21 ][ 22 ][ 23 ][ 24 ][ 25 ][ 26 ][ 27 ][ 28 ][ 29 ][ 30 ][ 31 ][ 32 ][ 33 ][ 34 ][ 35 ][ 36 ][ 37 ][ 38 ][ 39 ][ 40 ][ 41 ][ 42 ][ 43 ][ 44 ][ 45 ][ 46 ][ 47 ][ 48 ][ 49 ][ 50 ][ 51 ][ 52 ][ 53 ][ 54 ][ 55 ][ 56 ][ 57 ][ 58 ][ 59 ][ 60 ][ 61 ][ 62 ][ 63 ][ 64 ][ 65 ][ 66 ][ 67 ][ 68 ][ 69 ][ 70 ][ 71 ][ 72 ]
Current issue : #51 | Release date : 1997-09-01 | Editor : route
| Introduction | Phrack Staff |
| Phrack Loopback | Phrack Staff |
| Line Noise | various |
| Phrack Prophile on Swamp Ratte | Phrack Staff |
| File Descriptor Hijacking | orabidoo |
| LOKI2 (the implementation) | route |
| Juggernaut 1.0 - 1.2 patchfile | route |
| Shared Library Redirection | halflife |
| Bypassing Integrity Checking Systems | halflife |
| Stealth RPC scanning | halflife |
| The Art of Scanning | Fyodor |
| The Eternity Service | Adam Back |
| Monoalphabetic cipher cryptanalysis | mythrandir |
| Phrack Magazine Article Index Guide | guyver |
| A Brief introduction to CCS7 | Narbo |
| Phrack World News | disorder |
| extract.c | Phrack Staff |
Title : extract.c
Author : Phrack Staff
---[ Phrack Magazine Volume 7, Issue 51 September 01, 1997, article 17 of 17
-------------------------[ Phrack Magzine Extraction Utility
--------[ Phrack Staff
This time around, you have the option of using the C version of extract,
or the PERL version, contributed by Daos.
---------------------8<------------CUT-HERE----------->8---------------------
/* extract.c by Phrack Staff and sirsyko
*
* (c) Phrack Magazine, 1997
*
* Extracts textfiles from a specially tagged flatfile into a hierarchical
* directory strcuture. Use to extract source code from any of the articles
* in Phrack Magazine (first appeared in Phrack 50).
*
* gcc -o extract extract.c
*
* ./extract filename
*/
#include <stdio.h>
#include <sys/stat.h>
#include <string.h>
int main(int argc, char **argv){
char *s="<++> ",*e="<-->",b[256],*bp;
FILE *f,*o = NULL;
int l, n, i=0;
l = strlen(s);
n = strlen(e);
if(argc<2) {
printf("Usage: %s <inputfile>\n",argv[0]);
exit(1);
}
if(! (f=fopen(argv[1], "r"))) {
printf("Could not open input file.\n");
exit(1);
}
while(fgets(b, 256, f)){
if(!strncmp (b, s, l)){
b[strlen(b)-1] = '\0';
if((bp=strchr(b+l+1,'/')))
while (bp){
*bp='\0';
mkdir(b+l, 0700);
*bp='/';
bp=strchr(bp+1,'/');
}
if((o = fopen(b+l, "w")))
printf("- Extracting %s\n",b+l);
else {
printf("Could not extract '%s'\n",b+l);
exit(1);
}
}
else if(!strncmp (b, e, n)){
if(o) fclose(o);
else {
printf("Error closing file.\n");
exit(1);
}
}
else if(o) {
fputs(b, o);
i++;
}
}
if(!i) printf("No extraction tags found.\n");
return(0);
}
---------------------8<------------CUT-HERE----------->8---------------------
# Daos <[email protected]>
<++> extract.pl
#!/bin/sh -- # -*- perl -*- -n
eval 'exec perl $0 -S ${1+"$@"}' if 0;
$opening=0;
if (/^\<\+\+\>/) {$curfile = substr($_ , 5); $opening=1;};
if (/^\<\-\-\>/) {close ct_ex; $opened=0;};
if ($opening) {
chop $curfile;
$sex_dir= substr( $curfile, 0, ((rindex($curfile,'/'))) ) if ($curfile =~ m/\//);
eval {mkdir $sex_dir, "0777";};
open(ct_ex,">$curfile");
print "Attempting extraction of $curfile\n";
$opened=1;
}
if ($opened && !$opening) {print ct_ex $_};
<-->
----[ EOF
![..[ Phrack Magazine ]..](/images/phrack-new.webp)