임의의 응용 프로그램에서 비 결정 성을 제거하기 위해 후크 (Detours와 같은)를 사용할 수 있는지 궁금합니다.Detours를 사용하여 비 결정 성을 감소 시키시겠습니까?
우리는 단일 스레드 응용 프로그램을 가정 할 수 있습니다 (경쟁 및 스케줄링으로 인한 비 결정 성을 무시할 수 있음).
시드에 관계없이 의사 난수를 요구하는 함수에 대해 예측 가능하고 반복 가능한 출력을 얻으려면 내 첫 번째 추측은 rand()
을 무시하는 것이 었습니다.
재정의를 고려해야하는 다른 자주 사용되는 기능이 있습니까?
여기에 완벽한 해결책이 없다는 것을 알고 있지만 대부분의 응용 프로그램에서 제대로 작동하는 것으로 알고 있습니다. 또한이 문제를 해결할 다른 방법이 있다면 그것에 대해 읽는 것이 재미있을 것입니다.
* Detours를 사용하지 마십시오. 제거되지 않는 유일한 비 결정론은 앱의 충돌 여부입니다. EasyHook은 훨씬 더 안정적인 대안이며 좀 더 기능적입니다 (제대로 설명되지는 않았지만). – ssube
초기화되지 않은 변수/메모리 (스택 또는 힙) 사용과 같은 버그는 잊지 마십시오. 당신은 아마 그들을 잡지 않을 것입니다. –
그게 나쁜가요? EasyHook은 2009 년부터 버려진 것 같지만, Detours 3는 올해 출시되었습니다. 그 하나 또는 이전 버전에 대한 나쁜 경험이 있었습니까? – cloudraven