c 프로그래밍 연습용으로 만들어보던 프로그램 중 하나입니다.
프로그램과 동일 경로에 폴더를 만들고 비밀번호를 걸어 숨기고 보이고 하게끔 하는 기능입니다.
라곤 하나 아직 배울게 많아 파일 구조나 그런 난이도 있는 쪽으로 접근한건 아니고 임시용으로 디렉토리에 속성만 가했습니다.
아주 기본적인 방법으로 만들었을 뿐이고 때문에 보호된 운영체제 파일 보기에 체크가 되어 있으면 보이긴 하며 정확한 경로명을 알아내면 패스워드 없이도 접근은 됩니다.
알고리즘을 적용하는 방법을 몰라 비밀번호는 소스 내에 포함하도록 하였습니다.
#해당 환경 이용자는 직접 컴파일 하시는걸 추천드립니다.
#include <stdio.h>
#include <Windows.h>
#include <direct.h>
#include <io.h>
#define SECDIR "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
#define DIR "locked"
#define PASSWORD "123456789"
#define PASS_SIZE 16
#define LOCK 1
#define UNLOCK 0
#define CMD_LEN 256
void lock();
void unlock();
void md_dir();
int status;
char dir[CMD_LEN];
char secdir[CMD_LEN];
char password[PASS_SIZE]=PASSWORD;
void main(){
char pass[CMD_LEN],cho;
if(_access(SECDIR,00)==-1)
if(_access(DIR,00)==-1)
{md_dir();status=UNLOCK;}
else status=UNLOCK;
else status=LOCK;
if(status==UNLOCK){
printf("Are you sure you want to lock the folder(Y/N)\ncho=>");
scanf_s("%c",&cho,2);
if(cho=='Y'||cho=='y')
lock();
else exit(1);
}else{
printf("Enter password to unlock folder : ");
scanf_s("%s",pass,PASS_SIZE);
if(strcmp(pass,password)==0) unlock();
else printf("Invalid password\n");
}
//printf("password = %s\n",PASSWORD);
system("pause");
}
void md_dir(){
_mkdir(DIR);
printf(DIR);printf(" created successfully\n");
}
void lock(){
char cmd[CMD_LEN];
strcpy_s(cmd,CMD_LEN,"ren ");
strcat_s(cmd,CMD_LEN,DIR);
strcat_s(cmd,CMD_LEN," \"");
strcat_s(cmd,CMD_LEN,SECDIR);
strcat_s(cmd,CMD_LEN,"\"");
//system(cmd);
system(cmd);
strcpy_s(cmd,CMD_LEN,"attrib +h +s \"");
strcat_s(cmd,CMD_LEN,SECDIR);
strcat_s(cmd,CMD_LEN,"\"");
system(cmd);
printf("Folder Unlocked successfully\n");
}
void unlock(){
char cmd[CMD_LEN];
strcpy_s(cmd,CMD_LEN,"attrib -h -s \"");
strcat_s(cmd,CMD_LEN,SECDIR);
strcat_s(cmd,CMD_LEN,"\"");
system(cmd);
strcpy_s(cmd,CMD_LEN,"ren \"");
strcat_s(cmd,CMD_LEN,SECDIR);
strcat_s(cmd,CMD_LEN,"\" ");
strcat_s(cmd,CMD_LEN,DIR);
system(cmd);
printf("Folder Unlocked successfully\n");
}