List/Shellcode
dumpcode.h
LF0827
2015. 1. 2. 21:53
출처 : 미상....
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);
}