ML

getproc.py API 함수 주소값 추출

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진수로 표현

 

 

참고문헌 : 윈도우 시스템 해킹 가이드

반응형

댓글

Designed by JB FACTORY