728x90
소스코드 및 작동원리
사용하는 라이브러리 class_DD는 C++로 만들어진 가상 하드웨어 드라이버이다. 그러모르 Dll Call 함수가 필요하다.
DllImport 함수를 이용하여 Winapi인 user32.dll, kernel32.dll을 Import한다.
user32에서는 GetCursorPos와 핫키에 관한 함수 2개를 import했다.
kernel32에서는 라이브러리를 관리하는 LoadLibrary, GetProcAddress, FreeLibrary를 import했다.
그리고 아래에는 class_DD에서 불러오는 함수를 미리 delegate로 선언해 주었다.
dll은 Dynamic link library의 약자로, 윈도우에서 사용하는 동적 라이브러리이다.
extern : 외부 메소드를 참조하려면 extern 한정자가 필요하다.
delegate : 메소드를 대신 호출하는 함수 포인터 개념.
Form 생성자에서는 핫키 생성과 dll 함수 불러오기 등을 한다.
dll의 종류는 3가지가 있는데, 32비트 운영체제에서 쓰이는 ddx32 모듈, 64비트 운영체제에서 쓰이는 ddx64가 있다.
이 dll 파일의 handle을 hModule 변수에 저장한다.
kernel32의 GetProcAddress 메소드를 이용하여 현재 hModule의 메소드를 이전에 선언한 delegate 변수에 저장한다.
델리게이트를 함수 포인터 처럼 사용한다.
이때 사용하는 기법이 Marshaling. 다른 프로그램에서 데이터가 이동해야할때 사용된다.
728x90
'자료' 카테고리의 다른 글
Delay 함수 (0) | 2020.06.21 |
---|---|
프로그램 ANTI-DUMP 적용 (0) | 2020.06.16 |
C# Selenium Webdriver alert창 Enter하기 (0) | 2020.06.15 |
메이플스토리 NGS 우회 (0) | 2020.06.15 |
Image to base64 (0) | 2020.06.06 |