티스토리 뷰

ETC/종합

스테가노그래피 data추출

BAEKNAMU 2015. 7. 10. 18:05

스테가노그래피 (steganography)


데이터 은닉 기술.
이미지 파일안에 다른 데이터를 숨길 수 있다.

만들어본 추출 소스.


#include<stdio.h>

int main(){

int buffer;

int hab=0;

FILE* fr = fopen("c:\\HidenFile.bmp","rb"); // 파일이 숨겨져있는 이미지 경로

FILE* fw = fopen("c:\\data.exe","wb"); // 숨겨진 파일 저장할 경로

int i=0;

fseek(fr,54,SEEK_SET); //54 byte 부터 확인(시작할 파일위치 지시자 설정)

while(1){

i=0;  

hab=0;

while(i<8){ // 8비트당 한자리씩 가져와서 

uffer = fgetc(fr);

if(buffer == -1) break;

if((buffer % 2) == 1)  buffer=1;

 // 1비트만 확인하니까 1byte 가져온 값의 홀수인지 짝수인지만 확인하면 된다.

else buffer=0;  //아니라면 0을 대입시킴.

switch(i){

 // 비트당 승수감소하기 때문에 첫번째 비트는 *128을 해줘야 한다. 

case 0: {hab=hab+(buffer*128);break;}

case 1: {hab=hab+(buffer*64);break;}

case 2: {hab=hab+(buffer*32);break;}

case 3: {hab=hab+(buffer*16);break;}

case 4: {hab=hab+(buffer*8);break;}

case 5: {hab=hab+(buffer*4);break;}

case 6: {hab=hab+(buffer*2);break;}

case 7: {hab=hab+(buffer*1);break;} 

}//switch 

// while이 8번 돌면 hab 의 값이 1byte로 완성된다. 

i++;

}//while

if(buffer == -1)  break;   

fputc(hab,fw); // 완성된 1byte 값을 data.exe 파일에 1byte씩 쓴다.

}//while

fclose(fr);

fclose(fw);

return 0;

}



'ETC > 종합' 카테고리의 다른 글

[리버싱] 리버스엔지니어링 기초  (0) 2015.07.15
ascii-table (이미지)  (0) 2015.07.10
지역변수 stack, 전역 변수 data  (0) 2015.07.03
난수 함수 (rand, srand)  (0) 2015.07.03
기초 문법( break, continue)  (0) 2015.07.01
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday