Extract
Publicado por Enzo de Brito Ferber 08/06/2008
[ Hits: 4.919 ]
Homepage: http://www.maximasonorizacao.com.br
Estava eu sem nada pra fazer hoje, então resolvi fazer um programa para retirar códigos fontes de arquivos txt.
<++> diretorio/arquivo.tipo
....
<-->
O <++> é o incio do arquivo, e o <--> é o fim.
Vale dizer que essa idéia de como definir o inicio e fim do arquivo nãoo foi minha, ela já é usada na zine phrack, que tem um programa extract também, mas o que me impede de fazer o meu né?!
/*
* Programa: Retirar codigos de arquivo
* Arquivo : extract.c
* Autor : Enzo Ferber (enzo@veloxmail.com.br)
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#define CODE_START "<++>"
#define CODE_END "<-->"
FILE *createFile (char *);
void getFile (FILE *, int);
void search_code (FILE *, int);
FILE *createFile (char *path)
{
FILE *nfile;
FILE *log;
char dir[50];
struct stat file;
register int i = 0;
if (path[0] == ' ') path = path + 1;
while (path[i] != '\r') i++;
path[i] = '{FONTE}';
i = 0;
while (path[i] != 47) {
dir[i] = path[i];
i++;
}
dir[i] = '{FONTE}';
if (stat(dir, &file) == -1) {
printf("Novo Diretorio: %s\n", dir);
mkdir (dir, 16877);
}
printf("Novo Arquivo: %s\n", path);
nfile = fopen(path, "w");
if (!nfile)
{
printf("Erro ao abrir %s\n", path);
exit(0);
}
return nfile;
}
void getFile (FILE *fp, int pos)
{
FILE *nfile;
char buffer[50];
char info[5];
fseek(fp, pos, SEEK_SET);
fgets(buffer, 50, fp);
nfile = createFile(buffer);
while (1)
{
if (feof(fp)) break;
fgets(buffer, 5, fp);
if (strcmp(buffer, CODE_END) == 0) break;
fputs(buffer, nfile);
}
fclose(nfile);
search_code(fp, ftell(fp));
}
void search_code (FILE *fp, int pos)
{
register int i;
char buffer[5];
fseek(fp, pos, SEEK_SET);
while (1)
{
if (feof(fp)) break;
fgets(buffer, 5, fp);
if (!strcmp (buffer , CODE_START)) getFile(fp, ftell(fp));
}
}
int main (int argc, char **argv)
{
FILE *fp;
if (argc < 2)
{
printf("Uso: %s <arquivo> \n", argv[0]);
return 0;
}
fp = fopen (argv[1], "r");
if (!fp)
{
perror("fopen()");
return 0;
}
search_code (fp, 0);
return 0;
}
Manipulação de registros em arquivos utilizando índices
Exemplo de manipulação de arquivos
Alfabeto escrito 30 vezes e operação XOR
Manipulaçao de arquivos e Meta dados em videos
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Warcraft II Remastered no Linux? (4)
O programa assinador digital (5)









