분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
옵션 |
|
안녕하세요
파이선으로 로드되어있는 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바이트의 입력이라 오류가 발생한 것이라고 조심스럽게 추측해보지만 관련된 검색어로 검색을 해보아도 풀리지가 않네요...
죄송합니다. 댓글 작성은 회원만 가능합니다.