문제

나는 게임을 위해 자동화 된 봇을 쓸 계획이다.

까다로운 부분은 그들이 프로토콜을 인코딩하는 방법을 알아내는 것입니다 ... 봇을 쉽게 달리게하려면 캐릭터를 실행하고 Wireshark에서하는 일을 녹음하십시오. 그러나 환경을 해석하는 것은 더 어렵습니다 ... 유휴 상태라면 매 초마다 약 5 개의 패킷을 받으므로 많은 양의 복장이 있습니다.

내 계획 : 게임은 TCP에서 실행되기 때문에 FreeCap을 사용합니다.http://www.freecap.ru/eng) 게임이 내 컴퓨터에서 실행되는 프록시에 연결하도록 강요합니다. 이 프록시는 패킷 주입 또는 캡처 된 패킷을 재현 할 수있는 서버가 필요합니다. 이렇게하면 서버가 보내는 내용으로 재현하고 땜질하고 프로토콜 인코딩을 이해할 수 있습니다.

  1. 패킷 주입을 허용하는 프록시 또는 패킷 주입을 수행 할 수있는 위치를 어디에서 얻을 수 있는지 아는 사람이 있습니까 (무선 또는 다른 경우와 같이 하드웨어를 통한 것이 아님).
  2. 캡처 된 패킷을 재개하는 서버/프록시를 찾을 수있는 경우 (예 : 연결을 재생).
  3. 패턴 매칭을위한 더 나은 도구 나 방법론이 있습니까? Mutliple 메시지에서 패턴을 강조 할 수있는 것은 좋을 것입니다.

또는, 여기서 이것을 해독하는 더 좋은 방법이 있습니까? 아마도 winsock 함수를 연결하고 해당 조립을 시작하여 해석을 통해 불분명 한 전략 일 수 있습니까? 나는 전에 이것을하지 않았으므로 확실하지 않습니다. 또는 , 다른 아이디어가 있습니까?

도움이 되었습니까?

해결책

네트워크 트래픽 가로 채기 및 프로토콜 분석은 일반적으로 여기에서 목표를 달성하기위한 덜 선호하는 방법입니다. 대부분의 현대 게임의 경우 암호화는 심각한 요인이며, 가장 일반적인 게임 플레이 시나리오의 사소한 요인에 대한 프로토콜 분석과 관련된 심각한 두통이 있습니다.

대부분의 최신 구현*은 귀하가하려는 일에 대한 대부분의 현대적인 구현*은 실행중인 클라이언트의 메모리 공간과 프로세스를 읽고 조작하는 데 의존합니다. 클라이언트는 트래픽을 해독하고 데이터 구조를 훨씬 쉽게 읽을 수있는 트래픽을 해독하는 등 모든 단단한 부품을 이미 수행했을 것입니다. 서버와 상호 작용하려면 전체 패킷 전체를 처음부터 제작하는 대신 클라이언트에 내장 기능을 호출 할 수 있습니다. 이 접근법의 장점은 데이터를 해석하고 활동을 생성하기 위해 훨씬 적은 작업을 수행해야한다는 것입니다. 마이너스는 네트워크 트래픽에 봇에 유용하지만 클라이언트가 폐기하는 경우 종종 일부 데이터가 있거나 클라이언트가 생산할 수없는 서버로 트래픽을 보내려고한다는 것입니다. -그에 대한 개발 된 계층 구조는 "속임수"경사면에서 몇 단계 더 멀리 떨어져 있습니다).

*... 나는 이것이 네트워크 프로토콜 분석기에서 MMORPG Botting/해킹 커뮤니티의 대다수의 진화를 보았다고 말합니다. showeq 그리고 오딘의 눈 / 엑스 칼리버 메모리 기반 응용 프로그램과 같은 거시적 그리고 내부 공간. 이 노트에서 Innerspace는 시도하고있는 내용의 메모리/프로세스 기반 변형에 대한 우수한 확장 가능한 프레임 워크를 제공하며 네트워크 분석 방식을 포기하면 프로젝트의 기초로 조사해야합니다.

다른 팁

과거에 몇 번의 게임 봇을했을 때 (물론 이익이나 슬픔이 아니라 재미 있도록 게임 봇을 쓰는 것이 재미 있습니다) 다음을 추천합니다.

  • 코딩 할 수 있고 치트 보호 기능이 없으면 다음과 같은 이유로 주입 된 DLL을 작성하는 것이 좋습니다.
    1. DLL은 게임의 메모리 공간에 직접 액세스 할 수 있으며, 일단 메모리 주위를 찌르거나 코드 분해를 통해 데이터 구조를 리버스 엔지니어링하면 많은 데이터에 액세스 할 수 있습니다. 이를 통해 게임이 가질 수있는 네트워크 암호화를 우회 할 수 있습니다. 프로세스 메모리에 직접 액세스하는 단점은 오프셋 및 데이터 구조가 버전간에 변경된다는 것입니다. 그러나 데이터 구조는 안정적인 게임으로 자주 변경되지 않으며 고정 된 오프셋을 사용하는 대신 코드 패턴을 검색하여 오프셋 변경을 보상 할 수 있습니다.
    2. 어느 쪽이든, API 후크를 사용하여 Winsock 기능을 계속 사용할 수 있습니다 (Microsoft 우회 및 우수하지만 현재 상업적 MadCodehook를 확인하십시오).
  • 그렇지 않으면 WPE Pro와 같은 라이브/대화식 패킷 편집자에게 시도하는 것만 조언 할 수 있습니다.

대부분의 시나리오에서 가장 멋진 방법 (코드 리버스 엔지니어링 및 직접 메모리 액세스)은 가장 생산적인 경향이 있습니다. 처음에는 (코드를 이해하기 위해) 많은 기술 (모든 코드를 거쳐 데이터 구조와 상호 작용하기 위해 코드를 개발하기 위해)과 유지 관리 (게임이 업데이트되는 경우)가 필요합니다. (물론, 그들은 때때로 공식 고객과 관련이없는 멋진 일을 허용하지만, 대부분의 경우 이것은 뻔뻔스러운 부정 행위로 분명하며 GMS를 빨리 끌어 올릴 가능성이 높습니다). 대부분의 시간 봇은 게임 그래픽/텍스처를 단색으로 교체하고 화면의 특정 색상을 검색하고 그에 따라 반응하는 간단한 "픽셀"봇을 만들어 만들어집니다 (예 : 클릭).

이것이 도움이되기를 바랍니다.

a) 나는 MMO를 재생하고 봇을 지원하지 않습니다. 원격 호스트의 SSL Cert SSLMITM (이름이라고 생각)을 스푸핑하는 응용 프로그램이있어 호스트를 통해 전체 연결을 만들 수 있습니다. 그런 다음 TCPDUMP/ETHEREAL/WIRSHARK (PCAP 독을 선택하십시오)를 Fileup하고 무작위 작업을 수행하여 패킷이 무엇을하고 있는지 알아냅니다. 그것은 당신의 가장 큰 도전이 될 것입니다. 그러나 자신에 대한 중간 공격에있는 남자와 프록시하는 것은 갈 길입니다.

c) 나는이 활동을 용인하지 않습니다.이 정보는 무료 정보로만 제공됩니다.

당신의 작업을 엄청나게 단순화해야 할 몇 가지 합리적인 가정이있을 것입니다. 그러나, 그들을 최대한 활용하려면 아마도 당신이 들리는 것보다 슬리브 롤업 프로그래밍으로 더 큰 편안함이 필요할 것입니다.

첫째, 그들이 사용하는 암호화가 세 가지 범주 중 하나로 떨어지는 것은 안전한 내기입니다.

  • 없음
  • 치즈
  • 당신이 갈라질 가능성이 훨씬 낫습니다

중간 사건의 확률이 매우 낮습니다.

다음으로, 패킷이 프로그램의 가장자리에 가까운 암호화 / 암호 해독되어 (외출하기 직전에 오면) 게임의 본문은 해독 된 형태로 처리한다는 안전한 내기입니다.

마지막으로, 그들이 사용하는 프로토콜은 아마도

  • 데이터 블록이있는 ASCII
  • 이진 goo

암호화되지 않은 ASCII를 위해 무차별 모드로 세트로 세트 한 작은 패킷 스니핑을 수행하십시오. 당신이 약간의 것을 보았다면, 당신은 게임보다 앞서 있습니다. 그러나 전체 테이핑-라인 아이디어를 포기하지 않고 대신 디버거를 사용하여 브레이크 포인팅 및 스텝핑을 통해 보내는 데이터를 보내면서 코드를 따르기 시작합니다. 가장 바깥 쪽 레이어 또는 3 개는 표준 네트워크 물건이 될 것이며 암호화 레이어가 나오고 암호화되지 않은 프로토콜을 다루는 엄청난 질량을 넘어선 것입니다.

당신이 뜨겁다면, 당신이 합리적으로 숙련되고, 동기 부여되고, 부지런한 경우, 당신이 희망이 없다면 절대 절대 절대 할 수 있어야합니다. 그러나 그것은 ~이다 원칙적으로 (그리고 실제로는 실제로 훨씬 쉬운) 이런 식으로 할 수 있습니다.

암호화되지 않은 끈적 끈적한 끈적 끈적한 곳에 도착하면 헝겊이 가라 앉히고 뭉친 형태가 꺼집니다. 그 다음에 그것이 무엇을 의미하는지 걱정하기 시작하십시오.

- Markusq

암호화가 진행되지 않는 것처럼 들리므로 네트워크 접근 방식을 수행 할 수 있습니다.

시작하기에 좋은 곳은 패킷 ID를 찾는 것입니다. 대부분의 경우 패킷 앞 근처에있는 것은 패킷의 유형의 ID가 될 것입니다. 예를 들어 이동은 1이 될 수 있고, 발사 된 발사는 "2"일 수 있으며 채팅은 "4"일 수 있습니다.

게임을 연결하기 위해 하나의 포트에서 듣는 자신의 프록시를 작성한 다음 서버에 연결할 수 있습니다. 프록시 파이어 오프 명령에 대한 키 프레스를 만들거나 프록시가 디버깅 정보를 작성하여 더 나아갈 수 있도록 도와 줄 수 있습니다.

(나는 모든 것에 대한 온라인 게임을위한 봇을 썼습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top