툴/유니티

[C#] 유니티 마우스 후킹, 마우스 제어하기

스튜디오 오버그래픽스 2021. 8. 2. 03:54

유니티에서 마우스 후킹, 마우스 제어하기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class Hook : MonoBehaviour
{
    [DllImport("user32.dll")]
    static extern void mouse_event(uint dwFlags, uint dx, uint dy, int dwData, int dwExtraInfo);

    private const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
    private const uint MOUSEEVENTF_LEFTUP = 0x0004;
    private const uint MOUSEEVENTF_WHEEL = 0x0800;

    void MouseLeftDown()
    {
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    }

    void MouseLeftUp()
    {
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }

    void wheelUP()
    {
        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, 50, 0); // 마우스 휠 50만큼 위로
    }

    void wheelDown()
    {
        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -50, 0); // 마우스 휠 50만큼 아래로
    }
}

위 코드는 함수 순서대로

좌클릭 상태, 좌클릭 뗀상태, 마우스 휠 50만큼 위로, 마우스 휠 50만큼 아래로

 

마우스의 기능을 대체하는 R&D를 했었고 이 코드를 사용했다.

마우스나 키보드기능을 가져오는건 시스템 환경에따라 제한이 있어서 안될수도 있음

위 코드는 dll과 마우스 기능의 주소값?을 가져와서 실행시켰다.

 

그리고 컴퓨터의 입력권한을 가져오는 것을 후킹이라고 하는데, 해킹수법중에 하나고 이 기술을 잘못 활용하면 사이버범죄다. 근데 한창 개발카페에 서버,네트워크,파일 및 프로그램 제어 관리 질문을 올리다가 후킹이 해킹기술인지 모르고 질문 올렸다가 열심히 해명했다. 기술은 좋지만 좋은데 사용하자