게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파이썬에서 kernel32.GetProcAddress 질문입니다.
게시물ID : programmer_17110짧은주소 복사하기
작성자 : 응가싸고픔
추천 : 0
조회수 : 590회
댓글수 : 7개
등록시간 : 2016/05/06 19:16:24
옵션
  • 본인삭제금지

안녕하세요

파이선으로 로드되어있는 dll의 함수포인터를 가져오는걸 해보고 있는데 잘 안되네요
64비트 관련된 이슈인거 같은데 혹시 해결 방법 아시는분 계실까요?

윈764비트, 파이선 3.5.1 입니다.

아래 코드를 실행시키는 프로세스에서 ntdll.dll msvcrt.dll 모두 로딩되어 있는 상태입니다.
handle = kernel32.GetModuleHandleW("ntdll")
// handle = int: 2009726976
address = kernel32.GetProcAddress(handle, b"atoi")
// address = int: 2009751540
handle = kernel32.GetModuleHandleW("msvcrt")
// handle = int: -27590656
address = kernel32.GetProcAddress(handle, b"printf")
// address = 0
error = GetLastError()
print("error %d - %s" % (error, FormatError(error)))
// 126 - 모듈을 찾을 수 없습니다.

핸들값이 8바이트 인데 GetProcAddress는 4바이트의 입력이라 오류가 발생한 것이라고 조심스럽게 추측해보지만 관련된 검색어로 검색을 해보아도 풀리지가 않네요...

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호