본문 바로가기

List/Shellcode

dumpcode.h

출처 : 미상....


void printchar (unsigned char c) {

if(isprint(c))

printf("%c", c);

else

printf(".");

}


void dumpcode(unsigned char *buff, int len) {

int i;

for(i=0 ; i<len ; i++ ) {

if(i%16==0)

printf("0x%08x   ", &buff[i]);

printf("%02x ", buff[i]);

if(i%16-15==0) {

int j;

printf("   ");

for(j=i-15;j<=i;j++)

printchar(buff[j]);

printf("\n");

}

}


if(i%16!=0) {

int j;

int spaces=(len-i+16-i%16)*3+2;

for(j=0;j<spaces;j++)

printf("   ");

for(j=i-i%16;j<len;j++)

printchar(buff[j]);

}

printf("\n");

}


사용법 예제

#include <stdio.h>

#include "dumpcode.h"


main () {
      char buffer[64];

fgets(buffer, 63, stdin);

printf(buffer);

dumpcode((char*)buffer, 96);

}