2012-04-30 2 views
2

pintools를 통해 실행되는 프로그램을 작성하여 동적 오염 분석을 수행하고 문제가 발생합니다. 문제는 사용자가 scanf 또는 gets 또는 그와 같은 함수를 통해 프로그램에 데이터를 제공 할 때 저수준의 read()로 내려 가고 사용자가 시스템 호출을 호출하고이를 찾음으로써 데이터를 찾을 수 있다는 것입니다 read()를 수행하고 매개 변수를보고 read() sys 호출을 반환하여 데이터를 얻는 시스템 호출! 데이터가 명령 행 인자로 사용자에 의해 제공되는 경우, 나는 read() 시스템 호출로 끓어 오르는 것을 보지 못하고 그 데이터를 얻는 방법을 모르겠다! 이에 관한 정보가 도움이 될 것입니다. 친절하게도 추가 정보가 필요하거나 문제 설명에 모호한 점이 있으면 알려주십시오.계기 명령 줄 인수

감사합니다.

답변

2

내가하려는 일을 이해했다면 execve()에 대한 sys 호출을 추적하여 명령 줄 인수를 볼 수 있어야합니다.

2

명령 줄 인수는 보통 의 main 메서드에 있습니다.

사용자 환경은 매우 이상한 방식으로 행동하지 않는 한 당신은, argc에 명령 줄 argv의 인수 및 인수의 수를 얻어야한다

int main(int argc, char *argv[]) {} 

로 주요 방법을 재정의합니다.