getproc.py API 함수 주소값 추출
- 공부/프로그래밍
- 2020. 2. 12. 15:28
728x90
반응형
윈도우 시스템 해킹가이드 책을 공부하다가 쉘코드 생성 부분에서
쉘코드가 API 함수의 주소값을 어떻게 참조하는지 궁금하게 되어
getproc.py 프로그램에 공부해보려고한다..
import sys
from ctypes import *
import ctypes
def usage():
print "\n #Get Function Address v1.0 by hyunmini # \n"
print "Usage : %s [dll] [proc]" %sys.argv[0]
sys.exit()
if len(sys.argv) < 2:
usage()
target_dll = sys.argv[1]
target_function = sys.argv[2]
dll = windll.LoadLibrary(target_dll)
kernel32 = windll.LoadLibrary('kernel32.dll')
function = kernel32.GetProcAddress(dll._handle, target_function)
print "[##] Find Address %s(%s) : 0x%08x" % (target_dll, target_function,function)
import sys : 인터프리터가 제공하는 시스템 특화된 함수나 변수를 제공
import ctypes : C호환 데이터형을 제공하며, DLL 또는 공유라이브러리에 있는 함수를 호출할 수 있음.
target_dll = sys.argv[1]
target_function = sys.argv[2]
dll = windll.LoadLibrary(target_dll)
kernel32 = windll.LoadLibrary('kernel32.dll')
function = kernel32.GetProcAddress(dll._handle, target_function)
print "[##] Find Address %s(%s) : 0x%08x" % (target_dll, target_function,function)
target_dll : dll 이름을 넣을 변수
target_function : API 함수 name
kernel32.dll에 있는 GetProcAddress 함수를 이용하여
찾고 싶은 API 함수의 주소 값 16진수로 표현
참고문헌 : 윈도우 시스템 해킹 가이드
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
마스크 자동 구매 프로그램 [마스크 구매 크롤러] (0) | 2020.03.18 |
---|---|
Pandas 판다스를 이용한 엑셀 자동화 (엑셀 (0) | 2020.02.13 |
아나콘다 (Anaconda python) 설치 방법 (0) | 2020.02.13 |
python math, random 모듈 이용 및 문자열 관련 함수 (0) | 2020.01.30 |
16진수 변환 코드 (0) | 2018.06.26 |