Google은 일부 웹 요청을 처리하는 C++ CGI 애플리케이션을 보유하고 있습니다. 분석 목적으로 동일한 디버그 모드로 실행하려고합니다. 내가 촬영 한 접근 방식은 GDB와 함께 호출된다CGI 프로그램이 디버그 모드로 실행됩니다.
으로 첫 번째 단계 당 - 내 실제 CGI 응용 프로그램 이름을 변경하고 내가 실제 CCGI를 호출하기 위해 노력하고 같은 이름의이 프로그램에서
내 자신의 프로그램을 배치 GDB를 사용하는 디버그 모드의 응용 프로그램 :
const char* argv[] = ["gdb -p <pid> -batch -ex bt 2>/dev/null", NULL];
execve("./myprog", (char**)argv, NULL);
myrog은 CGI 응용 프로그램이므로 STDIN에서 입력을받습니다.
내 프로그램에서 입력을 캡처하여 실제 CGI 응용 프로그램에 전달하는 방법은 무엇입니까?
나는 귀하의 문제 설명을 이해할 수 없습니다. – zzk
HTTP 요청을 캡쳐 ('tcpdump'등)하거나 출력 한 다음 gdb에서 직접 프로그램을 실행하십시오. 입력 리다이렉션 구문은'run mythagel
고마워요. 필자는 stdin 파일 핸들러를 통해 fread 시스템 호출을 통해 표준 프로그램을 통해 데이터를 캡처 할 수 있습니다.하지만 실제 프로그램을위한 표준 데이터로 데이터를 쓰려면 어떻게해야합니까? – Prakash