当前位置 - 무료 법률 상담 플랫폼 - 법률 지식 - DNF 보조 소프트웨어를 만드는 방법

DNF 보조 소프트웨어를 만드는 방법

먼저 "이것은 다른 사람을 베껴 쓰는 것이니, 너를 도울 수 있기를 바란다" 고 선언했다.

1, 먼저 플러그인을 쓰는 데 필요한 조건

1, 숙련된 c 언어 지식

현재 플러그인은 대부분 BC 또는 델파이 또는 VC 로 쓰여져 숙련되어 있다

2, 강력한 어셈블리 기반

일반 게임은 소스 코드를 가질 수 없으며 디스어셈블이나 추적 방법을 통해 메커니즘

를 탐색해야 하므로 강력한 어셈블리 기반이 있어야 합니다. < Softice 는 당연히 빼놓을 수 없는 선택이다. 디스어셈블된 도구에 대해서는 IDA PRO

< P > 이 도구로 디스어셈블된 코드 구조가 분명하다는 것을 추천한다.

< P > 를 잘 읽어라 세상에 흰 파이가 없는

2, 플러그인 쓰기에 직면한 기본적인 기술적 문제

1, 수정 프로세스의 실행 코드

프로세스의 실행 코드를 수정하려면 프로세스의 ID 를 먼저 얻어야 합니다. GetWindowProcessID 를 사용하여 프로세스 ID 를 가져오고 프로세스 ID 를 얻은 후에는

writeprocessmemory 를 사용하여 프로세스의 실행 코드를 수정하여 프로그램이 원하는 대로 실행되도록 할 수 있습니다. 석기 플러그인의 비적, 비적

는 이런 방식으로 이뤄진

2, 플러그 송수신된 패킷 차단

< P >

첫 번째 단계는 출발과 수거 위치를 추적하는 것입니다. 어떻게 추적하느냐에 대해서는 나중에 언급하겠습니다. 위치를 찾은 후 두 가지 방법이 있습니다. 하나는 그 위치에

개의 jmp 문을 하나 추가하여 당신의 핸들러 위치로 점프하고 처리가 끝났습니다. 그런 다음 DebugActiveProcess 를 사용하여 게임 프로세스를 디버깅하여 게임이 그

위치에 실행될 때마다 멈추고 플러그인 안으로 들어가 플러그인 처리가 완료되면 ContinueDebugEvent 를 사용하여 프로그램을 계속 실행합니다.

오늘 먼저 이렇게 많이 써요. 다음번에는 플러그인의 구체적인 기능을 어떻게 실현할 수 있는지 논의할 거예요.

오늘 주소 조사 문제를 이야기하러 왔어요 내공이 심오하면 어떤 일반적인 수법이라도 부패를 신기하게 할 수 있다. 플러그인의 주소는 두 가지 범주로 나뉜다. 하나는 프로그램 주소이고, 하나는 데이터 주소다. 석기 속의 쌍석기, 진채, 적을 만나지 않고, 한 발짝도 적을 만나고, 수신 패킷을 보내는 등 모두 제 1 범주에 속하고, 인물 좌표, 상태 등은 모두 제 2 범주에 속한다.

첫 번째 유형의 주소는 주로 softice 에 의존하여

주소를 조사하고, 두 번째 유형의 주소에는 fpe, game expert, game master 등과 같은 게임 도구를 사용하여 조사할 수 있습니다. 저는 항상 game expert 를 사용하고 있습니다 그도 이 일을 할 수 있을 줄은 생각지도 못했어요.

< P > 2 급 데이터에 대한 조사방법에 대해 대부분 익히고 있습니다. 저는 많이 말하지 않겠습니다. 이제 주로 1 급 데이터에 대한 상세한 조사과정을 말씀드리겠습니다. 예를 들면, 우리가 패킷을 보낼 위치를 조사하고, 어떻게 시작해야 하는지, 클라이언트가 서버에 많은 패킷을 보내야 하는데, 가장 쉬운 방법은 ... 어떤 방법으로든 게임 프로그램의 프로세스 공간에 들어갈 수 있습니다 (예: spy 를 사용하여 게임 프로그램의 창 핸들을 찾은 다음 softice 로 전환하여 bmsg 창 핸들 wm_lbuttondown 으로 전환하여 게임 프로그램에서 마우스를 한 번 클릭하면 그의 프로세스 공간으로 들어옴). 그런 다음 S 명령을 사용하여 이 문구가 배치된 메모리 주소를 찾아 이 주소를 기록해 둡니다. Softie 이 지시문은 이 메모리에 액세스하는 동작이 있으면 즉시 중단한 다음 게임으로 전환한다는 뜻입니다. 한마디로 softice 가 특정 위치로 자동 중단되는 것을 발견할 수 있습니다. 이 위치에서 추적하면 패킷이 전송되는 위치도 멀지 않습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 스포츠명언)

< P > 위에서 언급한 것은 완전히 새로운 게임 프로그램을 겨냥한 것이다. 만약 오래된 프로그램이라면 선배가 많은 일을 했을 뿐만 아니라 디스어셈블과 같은 다른 방법으로 조사할 수 있다. 이후 게임 버전의 업데이트도 마찬가지다. 이전 버전의 주소 위치 근처에 있는 코드만 적어두고 새 버전의 코드안에 있는 검색을 하면 된다. (윌리엄 셰익스피어, 윈스턴, 게임명언) (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 게임명언)

응, 좀 쉬고, 좀 쉬어

나는 주로 플러그인 기술에 대한 분석을 한다. 게임 안의 내부 구조가 각각 다르면 여기서는 설명하지 않는다. 나도 그렇게 대단하지 않다. 모든 것을 다 알고 있다. ᄏ

1 우선 게임 플러그인의 원리

플러그인은 이제 아날로그 키보드, 마우스, 패킷 수정, 로컬 메모리 수정 등 여러 가지로 나뉜다. 하지만 서버 메모리를 수정하지 않은 것 같다. 사실, 서버를 수정하는 것도 방법이 있지만, 기술이 너무 높아서 일반인이 시작할 방법이 없을 뿐이다! (예를 들어, 나이트클럽에 가서 선물을 주고 검은 돈을 받는 등 모든 방법으로 서버 데이터를 수정할 수 있습니다. 하하)

< P > < P > 게임을 수정하는 것은 단지 현지 메모리의 데이터를 수정하거나 API 함수를 가로채는 것 이상입니다. 여기서 생각할 수 있는 방법을 모두 소개하겠습니다. 게임 업체들이 자신의 기술을 더 잘 보완할 수 있도록 좋은 플러그인을 만들어 주시기 바랍니다. 잘 썼어요. 아마 그럴 것 같아요 ..

2 기술 분석 섹션

1 키보드 또는 마우스 응답 시뮬레이션

을 위해 기술적인 내용을 설명하겠습니다. //count of input events

LP input pin puts,//array of input events

int cbsize/ Api 함수

첫 번째 매개 변수는 두 번째 매개 변수의 행렬 차원을 설명하는 것이고, 두 번째 매개 변수에는 응답 이벤트가 포함되어 있습니다. 이 자체 채우기가 가능합니다. 마지막으로 이 구조의 크기는 매우 간단합니다. 키보드 마우스

표시를 시뮬레이션하는 가장 쉬운 방법입니다. 허허

참고: 이 함수에는

voidkeybd _ event (

bytebvk,//; 및

voidmouse _ event (

dword dwflags,//motion and click options

//vertical position 또는 change

dword dw data,//wheel movement

ulong _ ptrda

이 두 가지 함수는 매우 간단합니다. 키 입력 마법사가 바로 이것을 사용한다고 생각합니다. 오, 위는 아날로그 키보드이고, 아래는 아날로그 마우스입니다.

이것은 시뮬레이션 부분일 뿐, 게임과 연결하려면 게임 창도 찾아야 합니다. Findwindow 함수를 사용하여 개발된 창 (FindWindowEx 도 있음) 을 찾을 수도 있습니다. FindwindowEx 는 버튼 등 창의 하위 창을 찾을 수 있습니다. 게임이 장면을 전환할 때 FindWindowEx 를 사용하여 현재 창의 특징을 파악하여 아직 여기에 있는지 확인할 수 있습니다

장면, 방법은 여러 가지가 있습니다. 예를 들어 GetWindowInfo 를 통해 어떤 것을 확인할 수 있습니다. 예를 들어, 버튼을 찾을 수 없을 때 게임 장면이 전환되었다는 것을 알 수 있습니다. 어떤 게임에는 컨트롤이 없습니다. 이미지에 좌표 변환을 하면 이 방법이 제한됩니다. 이를 위해서는 분석을 돕기 위해 다른 방법을 사용해야 합니다.

< P > 이 동적 연결 라이브러리의 역할은 매우 크니 과소평가하지 마세요. 모든 프로세스 공간으로 들어갈 수 있습니다. 즉, 모든 게임에 로드할 수 있습니다.

이것은 당신이 win32 프로그래밍의 기초를 복습해야 합니다. 허허, 빨리 책을 읽으세요!

2 메시지 가로채기

일부 게임의 응답 메커니즘은 비교적 간단하거나 메시지 기반 또는 어떤 타이머를 사용하는데, 이때 너는 메시지를 가로채서 재미있는 기능을 실현할 수 있다.

우리가 메시지를 가로막는 것도 사용한다 우리는 메시지를 가로채는 콜백 함수만 쓰면 된다. 이것은 내가 예를 쓰게 하지 않을 것이다. 사실 이것은 위와 같이 모두 SetWindowHook 으로 쓴 것이다. 보면 아주 간단하다.

< P > 요격한 후에 무엇을 할 것인가는 바로 너의 일이다. 예를 들면, 각 타이머 메시지에서 우리의 데이터 판단을 처리하는 것과 같다. 오, 결과, 반드시 좋은 것은 아니지만, 오, 오, 하지만 데이터 계산이 클라이언트 게임에 놓여 있다면 실제로 데이터를 바꿀 수 있습니다. 오, 한번 해 보세요! 용도가 아직 많은데, 자기가 생각해도 생각해낼 수 있어, ᄏᄏ

3 소켓 패키지 차단

이 기술

는 원래보다 훨씬 어렵습니다. 마음의 준비를 해야 합니다.

먼저 ww 를 대체해야 합니다 매개 변수 순서는 동일해야하며, 실제 winSock32.dll 의 함수를 함수에 호출하면 됩니다.

우선: 동적 라이브러리를 시스템 경로

로 대체할 수 있습니다. 둘째, 응용 프로그램을 시작할 때 기존 동적 라이브러리를 로드할 수 있습니다. 이 함수 LoadLibary

를 사용하여 함수 포털을 찾은 다음 GetProcAddress 함수를 사용하여 각 실제 소켓 함수의 포털 주소

를 가져옵니다. 게임이 진행되는 동안 동적 라이브러리를 호출한 다음 동적 라이브러리에서 처리가 완료된 후 실제 동적 라이브러리로 이동하는 함수입니다

흥분해, 패킷을 가로막고 우리가 분석해야 정확한 답변을 할 수 있어, 이렇게 일이 끝났다고 생각하지 마라, 허! 아직 이르다. 분석이 끝나면 응답 메커니즘을 시뮬레이션하여 서버와 통신해야 한다. 자칫하면 봉호를 받게 된다. ᄏ

데이터를 분석하는 것이 업무량의 원천입니다. 게임이 업그레이드될 때마다 암호화 방식이 바뀔 수 있습니다. 그래서 우리가 플러그인을 쓰는 사람들은 모두 망명자입니다. 오락을 당하면 아직 모릅니다. ᄏ (제가 돈을 벌지 못했다고 선언합니다. 저는 무료입니다.)

자, 좋은 출발점을 하나 드리겠습니다. 여기 완벽한 대체 소켓이 있습니다.

T 소스 코드, 허!

/vchelp/zsrc/wsock32 _ sub.zip

4 인터셉트 api

위 기술을 유연하게 활용할 수 있다면 사실, 우리는 또한 소켓에서 직접 함수를 가로 채기 위해 그것을 사용할 수 있습니다. 그래서 더 직접적입니다.

< P > 이제 API 를 가로 채는 자습서가 도처에 있습니다. 나는 그것을 열거하지 않을 것입니다. 내가 사용하는 비교 습관적인 방법은 입력 섹션에 따라 가로 채는 것입니다. 이 방법은 98/2000 등과 같은 모든 운영 체제에서 사용할 수 있습니다. 저는 사용을 권장하지 않습니다. 이 기술은 windows 핵심 프로그래밍에서 545 페이지부터 시작하는 내용을 참고하여 배울 수 있습니다. 만약 98 시스템이 window 시스템 신비의 마지막 장으로 배울 수 있다면 ...

이렇게 많은 방법이 있습니다. 여러분이 어떻게 사용하는지 보세요. 다른 목표적인 기술들은 여기서 말하지 않겠습니다. 그렇지 않으면 안 됩니다.

각 게임의 수정 방법이 다르다는 것을 기억하십시오. 게임 데이터 처리가 모두 서버측에 있다면 플러그인을 쓰지 않는 것이 좋습니다. ᄏ, 최대 자동 걷는 플러그인을 쓰세요. 하하!

데이터 분석 시 서버와 쉽게 연결을 시도하지 않도록 주의해야 합니다. 위험하니 금물이다! 당신이 대량의 데이터 분석 결과를 파악한 후에, 비교적 자신 있게 시험해 보고, 당신의 운이 좋은지 아닌지, 성공할 가능성이 높습니다. 오, 허!

사실 인터넷금도 미친 것처럼 클라이언트를 시뮬레이션하는 프로그램도 좋다. office 사람들에게 잘 어울린다. 여러분의 제품 포지셔닝에 따라 ..

됐다. 말하지 마라. 모두 열심히 하자! 게임 업체에 속지 마세요. 그렇게 손해가

입니다.