2009-10-20 2 views
1

텍스트 파싱, 텍스트 아웃, 텍스트 파싱을하는 프로그램을 리버스 엔지니어링하려고한다. 컴파일 된 소스 출력! = 실행 출력 이후 실행 가능한 "참조 구현"및 다른 버전이어야하는 소스 코드가 있습니다.프로세스가 생성하는 임시 파일을 보자.

프로세스는 여러 단계의 구문 분석 프로세스에서 임시 파일을 매우 신속하게 만들고 삭제합니다. 개별 임시 파일을 살펴볼 수 있다면 바이너리와 소스가 다른 곳을 좁힐 수있는 훌륭한 진단 데이터를 얻을 수 있습니다.

다음 중 어떤 방법을 사용할 수 있습니까?

  • 디렉토리를 고정하여 파일을 만들 수 있지만 파일 삭제가 자동으로 실패합니다.
  • "슬로우 모션"으로 프로그램을 실행하여 만든 파일을 볼 수 있습니까?
  • 파일에 기록 된 모든 데이터를 포함하여 프로그램에서 수행하는 모든 작업을 기록 하시겠습니까?
+0

사라지기 전에 얼마나 빨리 만들어 집니까? 바이너리 또는 텍스트입니까? 그들이 언제나 같은 이름을 지니고 있다고 생각하십니까? –

답변

2

NTFS Undelete과 같은 도구를 실행하면 생성하고 삭제하는 임시 파일을 복구 할 수 있습니다. 이 파일을 Sysinternals의 ProcMon과 결합하면 올바른 파일 이름을 얻을 수 있습니다.

+0

모두 좋은 아이디어지만,이 하나가 나를 도왔습니다. 감사 – Ryan

1

당신은 Windows를 사용하는이에 일을하지만 가정하는지 OS 언급하지 않았다 ...

당신은 Process Explorer 같은 시스 인 터널 도구의 사용을 만들 수있을 수 있으며 Process Monitor 얻을 수 액세스되는 파일에 대한 더 나은 아이디어. 내가 아는 한 폴더에는 "쓰기 전용"옵션이 없습니다. 파일을 "속도를 줄이려면"더 느린 컴퓨터 만 사용해야합니다. 로깅을 위해 SysInternals 도구가 도움이 될 것입니다. 작성중인 파일 이름이 있으면 다른 프로세스의 스트림에서 파일을 열어 삭제를 시도 할 수 있습니다. 그러면 시스템에서 해당 파일을 삭제할 수 없게됩니다.

1

이이이 공격하는 방법이다 : 두 시스템을 통해

  1. 실행 다양한 작은 테스트 케이스와의 차이를 알 수 있습니다. 테스트 사례가 적기 때문에 코드가 실행 파일과 다르게 작동하는 이유를 알아낼 수 있어야합니다.

  2. 실행 파일을 디스 어셈블 한 다음 "임시 파일 삭제"지침을 모두 제거하십시오. 어떻게 작동하는지에 따라 매우 복잡한 작업이 될 수 있습니다 (발생하는 중앙 위치가 없을 때).