DHelper - 디아블로3 헬퍼

안녕하세요.  디아블로를 접어서 업데이트가 없었습니다..

디아블로 이모탈 소식 듣고 들어와보니 

많은 분들이 불편해 하시는 부분이 있어 몇가지 업데이트를 진행하고자 합니다. 


워낙 많은 건의 사항이 있어 모두 바로 적용할 수는 없어 보이고

아래의 내용을 우선 적용하려고 합니다. 



1. 로컬 저장 / 불러오기 기능

2. 단일 반복키 1 -> 3개로 확장

3. 특정 프로그램에서만 헬퍼 돌아가도록 만드는 설정 추가

4. 해상도 추가 및 사용자 입력 기능



혹 정말 정말 정말 꼭 들어가야 하는 부분이라면 여기에 어필 부탁드립니다.


사실 제가 게임을 못하는 상황이 오면 다른분이 제 오픈 소스를 통해 업데이트를 해주시길 바랬는데 아쉽네요 ㅎㅎ..


'히스토리' 카테고리의 다른 글

[DHelper 1.1.0 Beta] 업데이트 예정  (4) 2018.11.07
[DHelper 1.0.5 Beta] 변경점  (2) 2017.03.22
[1.0.4 Beta] 변경점  (0) 2017.03.05
[1.0.3 Beta] 변경점  (0) 2017.03.05
1.0.0.2 Beta  (0) 2017.02.27

Comment +4

안녕하세요. 오랜만에 블리즈컨 디아블로 소식을 접하고 홈페이지에 들어왔더니 이전보다 사용하시는 분이 많이 늘었네요. 

 아직 DHelper가 계정 제재당할 만한 무언가가 있을거라는 댓글에 그림으로 설명 드디려고 합니다. 


 

1. 게이머의 입력 처리 (후킹)


 게이머는 키보드와 마우스로 컴퓨터(OS)에 '입력'을 하게 됩니다. 

 그런데 OS(운영체제)는 키보드와 마우스로등의 외부장치로만 사용자의 '입력'을 받는게 아닙니다. 


 DHelper는 사용자의 입력을 '후킹(사용자의 입력 이벤트를 중간에 가져온다)'을 합니다. 

 

 '헬퍼 시작' '헬퍼 종료'등등의 기능을 실행할 때 Key를 등록 하셨을텐데요. 게이머가 이 키를 누르게 되면 DHelper는 이 이벤트를 후킹하여 

 반복키, 토글키등을 동작 시키는 원리입니다. 



2. 반복키, 기능키등등

  헬퍼를 시작하면 스킬을 지속적으로 사용할 수 있게 눌러주는 것 또한 헬퍼는 디아블로 클라이언트에 어떤 이벤트를 보내는게 아닙니다. 

  OS에 메세지를 보내게 되는거죠. 이는 마이크로 소프트에서 공식적으로 제공해주는 API를 통하여 메세지를 전달하기에 

  어떤 편법이나 불법적인 행위가 아닙니다. 


3. 특정 UI에 마우스 이벤트 막기 

  DHelper UI를 안눌리게 하는 기능이 있습니다.

  이건 아주아주아주 원시적인 방법인데요. 특정 좌표로 영역을 두고 그 좌표에서 이벤트가 들어오면 1번의 후킹을 통하여 가로챈 메세지를 

  무시하는 방법입니다. 

  

  이 또한 디아블로 클라이언트에 어떠한 조작을 하지 않고 OS의 해상도 영역을 지정하기 때문에 

  

  디아블로 창모드를 지원해드리지 못하는 겁니다. (디아블로 클라이언트가  항상 같은 곳에 있다면 가능하겠죠)



4. 인벤에 계정 정보 및 패스워드를 암호화 없이 저장한다는 게시물

   계정을 입력 받지도 않는데 뭘 저장한다는지 이해가 안되네요..

   서버에 데이터 저장할 때 배틀태그와 암호는 설사 저장된다고(저장되지도 않습니다...) 해도 계정을 알 수 있을까요..;;

   서버 저장은 이동 편의성과 헬퍼 설정 공유를 위하여 만들었습니다. 

   비번이 노출된다고 해도 큰 문제 없어 보이는데.. 제 생각만 그런건가요..

   아무튼 이번 업데이트에 로컬 저장도 포함하니 헬퍼 설정파일 도난?에 신경 쓰이신다면 로컬 저장 이용 부탁드립니다~!


 

 결론적으로 

  헬퍼는 디아블로 클라이언트에 어떠한 조작도 하고 있지 않고 마이크로 소프트가 제공하는 시스템 API 만 사용하고 있으며

  의심이 되신다면 제가 올려드린 오픈소스를 보시면 알 수 있습니다. 


  DHelper 말고 외에 모든 헬퍼 프로그램은 위와 같은 시스템을 사용하고 있습니다. 



 

여담으로 하나 말씀드리자면 

디아블로가 헬퍼를 인정하는건 예측컨대 못 잡아서라고 생각합니다. 


디아블로는 서버는 호스트와 엔티티를 연결해주는 역할을 합니다. 

게임은 호스트(4명의 유저 중1)명 / 유저 3명이 서로 TCP로 연결하여 게임플레이를 합니다. 


디아블로 여러 오브젝트와 빠른 스킬을 사용할 수 있는건 

모든 액션이 클라이언트 기반이기 때문입니다. 


호스트와 엔티티들의 모든 액션을 디아블로 서버에서 저장하고 있다면 그 양은 어마어마하고 서버 관리 또한 간단하지 않습니다. 


잡소리가 길었습니다. 조만간 불편해 하시는 업데이트 버전을 올리도록 하겠습니다. 





'프로그래밍' 카테고리의 다른 글

DHelper 동작  (1) 2018.11.07

Comment +1

  • 덕분에 간간이 즐기는 디아3가 더 쾌적해졌습니다 ;)
    너무나 감사합니다!
    호의로 제공한 재능이 구설수에 올랐다니 애통한 일입니다만...

1.0.5 버그 및 건의사항 댓글로 남겨주시면 검토 후 빠른 시일내에 처리하도록하겠습니다.


가능하시다면 배틀태그와 현재사용하시는 DHelper 버전


그리고 버그라면 현재 상황을 상세히 적어주시면 많은 도움이 됩니다


감사합니다 (__ )

Comment +99

  • 이전 댓글 더보기
  • keith 2018.01.10 13:37 신고

    고맙습니다. 잘 쓰고 있습니다.

    2560*1080 (울트라 와이드 모니터 해상도) 에서도 UI 클릭 안 되게 추가해주시면 더 좋을 것 같습니다.

    • 제가 그 해상도가 아니라 가능할지는 모르겠으나... 사용자가 입력할 수 있도록 한번 만들어 보겠습니다.

  • 김민수 2018.01.11 19:58 신고

    헬퍼2.2설치후 시작.종료.기술 키 입력 후 저장
    훙 헬퍼그대로 두고 디아겜실행해서 시작 설정키 눌러도 작동 안됩니다.
    헬퍼 우측하단에 계속정지 상태로 나옵니다.

    조언부탁 드립니다

  • Feed 2018.01.12 18:01 신고

    해상도 2560 * 1080 도 지원가능할까요 ?

  • gre 2018.01.14 12:29 신고

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.Net.WebException: The remote server returned an error: (403) Forbidden.
    at System.Net.HttpWebRequest.GetResponse()
    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    DHelper
    Assembly Version: 1.0.5.0
    Win32 Version: 1.0.0.6
    CodeBase: file:///C:/Users/Administrator/Downloads/DHelper.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34251 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34285 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34294 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34283 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
    ----------------------------------------
    System.Runtime.Serialization
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
    ----------------------------------------
    System.Xml.Linq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
    ----------------------------------------
    System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34297 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.



    이런 에러가 떠요ㅡㅜㅜ 윈도우 7 64비트이구요

    버전은 1.0.5.2 베타 입니다...머가 문제인가용;;

    • https://answers.microsoft.com/en-us/windows/forum/windows_vista/i-get-just-in-time-jit-debugging-message-each-time/85953b27-57f4-4bde-95bc-7eb022d8733a

      참고하셔서 해결 바랍니다.

  • 2018.01.16 08:48 신고

    누르고 있기 기능을 추가해주실 수 있을까요? mouse down이나 keydown이요

  • 2018.01.19 15:24 신고

    해상도 3440x1440 도 부탁드립니다. UI 클릭 안되게 하는거요~

  • keith 2018.01.23 12:18 신고

    2560*1080 스크린샷입니다.

    https://ibb.co/ewCO1w

  • 김이남 2018.02.11 22:57 신고

    헬퍼 유용하게 잘 쓰고있습니다

    단일반복키 기능 잘 활용중인데

    하나만 더 만들어주심 어떨까해서요.

    하나는 템줍기용으로 쓰고, 하나는 겜블할때 오른쪽마우스 클릭으로 넣어서 쓰려고하는데 참고부탁드립니다.

  • crush 2018.02.13 21:50 신고

    한가지 세팅 해놓고 저장할때 비밀번호 적잖아요, 안쓰는세팅 지우려고했는데.. 같은 비밀번호항상 썼는데 비번이 틀렸다고 안지워지네요.. 혹시 방법있나요??

  • wqhd 모니터 해상도 wfhd해상도 ui버튼 클릭 막기 기능좀 추가 부탁드려요 ... 수고많으십니다^^

  • 디아유저 2018.11.06 01:21 신고

    헬퍼 설정을 개인만 쓰지말고 공유가되게 게시판같은거를 만들었으면 좋겠습니다 디아신규 유저로써 설정만지기가 인벤보고도 까다롭내요ㅠㅠ
    화이팅입니다

    • 네 말씀하신 취지로
      서버에 저장을 만들었고

      상대의 배틀태그만와 비번만 알면
      상대가 쓰는 헬퍼 세팅을 복사할 수 있게끔 만들었는데

      다들 서버에 저장하는게 불편하다고 하시네요 ㅎㅎㅎ..

      공유 게시판 한번 검토해보겠습니다.

  • 복돼지#1111 2018.11.11 07:26 신고

    항상 고맙고 감사하게 사용하고 있습니다.
    다른 게임에도 적용해 사용하고픈데 설정이 안되네요..ㅜㅜ
    수고하십시요

  • JJ 2018.11.13 21:45 신고

    잘 사용하고 있습니다. 정말 감사드립니다. 혹시 방해금지모드의 해상도에 4k 지원도 예정에 있는지 여쭤봅니다.
    감사합니다.

  • qqq 2018.11.15 20:57 신고

    마우스가 특정위치에서 안눌리는 해상도에
    1280x800x60 도 추가 좀 부탁드려요 ㅠㅠ
    놋북이라 해상도 더 올리면 렉걸려서요 ㅠㅠ

  • 디아헬퍼짱 2018.11.18 13:40 신고

    안녕하세요~ 잘사용하고 있는데요.
    2가지만 건의해보려고 글 남깁니다 ^^

    1. Ctrl+ Mouse Left Click 반복키
    2. 이번엔 반복기능은 아니고 제가 지정한 키를 누르면 다른키도 같이 눌러지는 기능
    예를 들면 2를 지정하고 3, 4를 지정하면 2를 눌렀을때 3,4도 같이 눌러짐

    감사합니다 ㅎ

    • 제가 4K 모니터가 없네요 ㅠㅠ..
      전체화면에서 가운데 스킬 포인트 버튼 [+]
      활성호 된 상태로 주시면 가능 해보이네요.

  • 어빈 2018.11.21 18:26 신고

    1.1.0베타버전 윈도7 피시방에서 쓰는데요 핏빛파편을 카달라한테 우클릭해서 소모하잖아요 그러면 캐릭이 그 우클릭한 곳으로 이동해버립니다. 그래서 핏빛파편소모가 너무 불편해요.. 혹시해서 전버전 써보니 그런현상은 없어요

    • 음.. 한번 테스트 해보겠습니다.
      상황이 잘 이해가 안되지만..
      가능하시면 사용하시는 배틀태그 좀 알려주세요~

  • ㅠㅠ 2018.11.24 18:53 신고

    헬퍼 사용해보고 싶어서 다운로드 했는데요...시작과 종료를 설정해놓고 게임상에서 실행하면 왜 시작이 안될까요??헬퍼는 계속 Stop상태네요

    • 상단 설정에서 실행 '헬퍼 동작 이름 설정'에 보시고 현재
      실행중인 프로그램(디아블로) 타이틀과 같은지 확인해주세요

      예) DIABLO lll

  • 질문요 2018.11.24 19:04 신고

    한번 사용해보고 싶어서 다운로드했는데...사용법을 모르겠어요..단축키지정을 다해놓고
    게임상에서 시작버튼을 눌러도 헬퍼가 작동을 안하는데 원인을 모르겠네요

    • 상단 설정에서 실행 '헬퍼 동작 이름 설정'에 보시고 현재
      실행중인 프로그램(디아블로) 타이틀과 같은지 확인해주세요

      예) DIABLO lll

  • 운빨사용자 2018.12.13 20:45 신고

    헬퍼 너무 편하게사용하고 있어요

    근데 강령술사 마법학자는 정해진 시간동안 자동누르게 할수없을가요?

    그러니까 총 10마리를 소환해야하는데

    한번에 2마리씩 소환가능하니까 5번 누르고 좀 쉬다가 소멸시간이 되어가면 다시 5번 눌러주는거요.

  • chanwoo 2018.12.14 10:28 신고

    감사합니다..