컴퓨터 자료2013. 11. 23. 11:33

반응형

컴퓨터 프로그램을 사용하다보면 A 라는 프로그램을 실행시키고 A 프로그램에서 B 라는 프로그램을 실행시켜야 실행이 되는 것이 있다.


이런 종류의 프로그램은 B 라는 프로그램이 실행되는데 필요한 작업들을 A 에서 해 준 다음 B 를 실행해주는 종류도 있지만, B 라는 프로그램을 단독으로 실행하지 못하도록 하는 간단한 트릭이 숨어있는 종류도 있다. 


이런 프로그램은 A 에서 B 프로그램으로 전달해 주는 매개변수를 파악하면 B 프로그램을 단독으로 실행시킬 수 있는 경우도 있다.


가령 b.exe 1234 라는 형태로 실행이 된다면 b.exe 를 더블클릭했을때는 실행이 안되고, 바로가기를 만들어서 b.exe 1234 형태로 실행하면 실행이 되는 형태이다. 


C 언어로, 뒤쪽에 붙는 매개변수를 표시해주는 프로그램을 만들어 보았다.


#include <stdio.h>

#include <conio.h>

int main(int argc, char **argv)

{

int i;

printf("매개변수개수 : %d\n",argc);

for(i=0;i<argc;i++)

{

printf("%s ",argv[i]);

}

getch();

return 0;

}


소스는 위와 같은데, 매개변수의 개수와 해당 값을 표시하도록 했다.


소스를 컴파일해서 ma.exe 라는 실행파일을 만들었다.




C 드라이브에 새폴더를 만들고, 해당 폴더에 ma.exe 와 ma.exe 의 바로가기를 만들었다.


ma.exe 를 실행하면 아래 화면처럼, 매개변수의 갯수와 해당 매개변수가 나타난다. 매개변수 0 번째는 파일의 실행경로가 나온다.



이 실행파일의 바로가기를 만들어서 매개변수를 넣어보았다. 


실행파일의 바로가기는 마우스 오른쪽 버튼으로 드래그를 하거나 오른쪽 버튼으로 파일을 눌렀을 때 나오는 컨텍스트 메뉴로 만들 수 있다.


바로가기 속성을 클릭하여 대상 부분에 매개변수 값으로 abcd 가나다라 1234 를 넣어보았다.



그런 다음 바로가기를 클릭하여 프로그램을 실행하면 아래 화면이 나타난다.



바로가기에서 입력한 매개변수값들이 표시되었다. 



이제 이 파일에 나타난 매개변수값으로 바로가기를 만들어주면 서브 프로그램을 따로 실행시킬수도 있다.


사용방법은 아래 ma.exe 를 다운받은 다음, 따로 실행시키고 싶은 서브 프로그램 실행파일의 경로를 알아내어, 기존에 있던 실행파일의 이름은 바꾸고, ma.exe 를 실행파일의 이름으로 바꿔서 넣어둔 후, 메인 프로그램에서 서브 프로그램을 호출하면 검은 화면이 나타나면서 메인 프로그램에서 전달해주는 매개변수를 알 수 있게 된다. 서브프로그램 이름은 작업관리자에서 알 수 있다.


파일 다운로드 : ma.rar


이 방법은 단순히 매개변수를 이용해서 프로그램의 단독 실행을 막는 형태에만 적용이 되므로 완벽한 방법은 아니다.


또한, 메인 프로그램 A에서 B 를 실행시키면 B가 필요한 작업을 하고 C를 호출하고 종료되어 C가 켜지는 경우도 있다. 이럴 때는 바로가기로 B 를 호출해야 한다. 

반응형
Posted by 블루토파즈