PDA

View Full Version : Bin-to-Hex / Shellcode



Inprise
شنبه 03 اردیبهشت 1384, 00:58 صبح
#include <stdio.h>
#include <stdlib.h>
#include <io.h>

#define maxline 255

int main(int argc,char* argv[])
{
FILE* sfp;
FILE* dfp;
int ch;
int counter=0;

if (argc!=4)
{
printf("Bin2ShellCode\r\n");
printf("%s source-file dest-file var-name\r\n",argv[0]);
return 1;
}
if ((sfp=fopen(argv[1],"rb"))==0)
{
printf("Fopen error(1)\r\n");
return 1;
}
if ((dfp=fopen(argv[2],"wb+"))==0)
{
printf("Fopen error(2)\r\n");
return 1;
}
fprintf(dfp,"unsigned long %slen=%d;\r\n",argv[3],filelength(fileno(sfp)));

fprintf(dfp,"unsigned char %s[]=\r\n",argv[3]);

while ((ch=getc(sfp))!=EOF)
{
if (counter==0)
fprintf(dfp,"\"");
counter++;
if (ch<16)
fprintf(dfp,"\\x0%x",ch);
else
fprintf(dfp,"\\x%x",ch);
if (counter==maxline)
{
fprintf(dfp,"\"\r\n");
counter=0;
}
}

if (counter!=0)
fprintf(dfp,"\"");
fprintf(dfp,";\r\n");

fclose(sfp);
fclose(dfp);
return 0;
}