2017-03-16 10 views
0

저는 Linux 실행 가능 바이너리 파일 (C 또는 C++ 컴파일)을 가지고 있습니다. 어떤 시점에서 프로그램은 타임 스탬프를 사용하여 난수를 생성합니다.사용자 정의 타임 스탬프 반환

임의의 난수 시퀀스를 만들어야 시스템에 대한 호출을 가로채는 스크립트 (선호하는 파이썬)를 만들고 싶습니다. (AFAIK 이것은 AFAIK입니다. timestamp를 얻고 필요한 시퀀스를 얻을 때까지 사용자 정의 값을 반환하기 위해 "hooking"이라고 불리는) 메소드를 호출합니다. 실행 파일이 전체 타임 스탬프를 사용하지 않기 때문에 이런 식으로해야합니다. timestamp % 10000

이것이 가능합니까? 그렇다면 어떻게?

답변

1

커널 내에서만 가능합니다. 따라서 파이썬 (또는 다른 사용자 공간 프로그램)을 사용할 수 없으면 C를 사용해야합니다.

하나의 옵션은로드 가능한 커널 모듈에서 수행하는 것입니다. 예를 찾을 수 있습니다. here.

1

라이브러리 사전로드 메커니즘을 사용하면 호출을 가로 채고 대체 할 수 있습니다. C 라이브러리와 동적으로 연결된 바이너리의 경우 time() 등의 호출을 가로 채어 서로 다른 시간을 에뮬레이트 할 수 있습니다.

오픈 소스 "libfaketime"프로젝트는 이미 가짜 시간을 구현하고 있습니다 : https://github.com/wolfcw/libfaketime