PERL을 사용하여 Winnt 휴대용 실행 파일에서 헤더를 어떻게 읽을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1418855

  •  07-07-2019
  •  | 
  •  

문제

Perl에서 PE 파일로 작업하고 싶고 모듈을 찾지 못했기 때문에 내 자신의 글을 쓸 것입니다 (이미 Delphi에서 한 번).

실행 파일을 버퍼에 매핑 할 때 0x00004550 (image_nt_signature)과 같은 옥탈을 검색하고 쓰기 가능한 문자열 등으로 다시 변환 할 수있는 한 가지 문제가 있습니다.

도움이 되었습니까?

해결책

거기 ~이다 휴대용 실행 파일을 조작하는 Perl 모듈 : Win32::Exe.

나는 당신의 정확한 질문에 대한 단서가 없지만, 당신이 여전히 자신의 도서관을 쓰고 싶다면, Win32::Exe 좋은 참조 일 수 있습니다.

다른 팁

해당 값을 바이 테스트 표현으로 변환하려면 사용하십시오. pack. 당신이 다루고있는 상수는 작은 엔디 언 32 비트 값이므로 템플릿에서 'v'입니다.

$ perl -e 'print pack q[V], 0x00004550' | hd
00000000  50 45 00 00                                       |PE..|
00000004

보다 perldoc -f pack 자세한 내용은.

"pe 0 0"과 같은 문자열을 검색 할 필요가 없을 것입니다. 읽고있는 파일이 실제로 PE 파일인지 확인하는 데 사용하십시오. 'PE'섹션은 일반적으로 자체 길이 필드를 가진 DOS ( 'MZ') 섹션 바로 다음에 나옵니다.

(나는 동의합니다 Win32::Exe 원하는 일에 따라 볼 가치가있을 수 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top