blizzless / blizzless-diiis

Fully-functional open-source server implementation for Diablo 3
GNU Affero General Public License v3.0
1.33k stars 349 forks source link

[Bug][MacOS] MacOS: Couldnt verify your account #94

Open cfryerdev opened 1 year ago

cfryerdev commented 1 year ago

Issue & Summary

Attempting to get this compiling and running on my Macbook Pro M1 Max... Running into a small issue but here i will show how to get this running (mostly) on the mac arm platform...

Issue

Everything runs and compiles but the client fails to login with error:

We could'nt verify your account with that information.

Special note: Adding the 127.0.0.1 proxy addresses to the host file results in the diablo 3 client freezing and crashing attempting to login (step 1). This only happens on macos not windows.

Special Note: The client version available for macos is 2.7.4.84197 at the time of this writing. This version actually DOES currently works with DiIiS on Windows 11 as I tested this today.

Tools

Steps

Install Docker Desktop and run docker-compose up with the following docker-compose.yml changes

version: "3.9"

services:
  postgres:
    container_name: postgres_db
    image: postgres:14.5
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "postgres"
    volumes:
       - ./initdb:/docker-entrypoint-initdb.d
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped
    deploy:
      resources:
        limits:
          cpus: "2"
          memory: 4G

  pgadmin:
    container_name: pgadmin_app
    image: dpage/pgadmin4:6
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-password}
      PGADMIN_CONFIG_SERVER_MODE: "False"
      PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "False"
    volumes:
       - ./pgadmin:/var/lib/pgadmin
       - ./servers.json:/pgadmin4/servers.json

    ports:
      - "5555:80"
    networks:
      - postgres
    restart: unless-stopped
    deploy:
      resources:
        limits:
          cpus: "0.5"
          memory: 1G

networks:
  postgres:
    driver: bridge

Execute docker-compose up

Once the database is up, we need to get the service running...

Pull down repository and load solution in VS2022 Preview (make sure you have latest).

Restore all packages and put in debug mode, press play.

Now its time to setup the client, download latest from Battle.net which is 2.7.4.84197 at the time of this writing. This does currently works with DiIiS on Windows 11 as I tested this today.

Navigate to https://hexed.it and open the following file:

/Applications/Diablo\ III/Diablo\ III.app/Contents/MacOS/Diablo III

Search for us.actual.battle.net and replace with 127.0.0.0 (replace reminaing characters with zero hex values)

Search for eu.actual.battle.net and replace with 127.0.0.0 (replace reminaing characters with zero hex values)

Example:

image

Save the output file and replace your Diablo 3 executable with this modified version. See path above. Make sure Battle.net is not running.

Start Diablo 3 on Macos by running the following commands

cd /Applications/Diablo\ III/Diablo\ III.app/Contents/MacOS/
chmod +x "Diablo III"
./"Diablo III" -launch 

Attempt to login and it passes battle.net authentication (step 1 of 3) but does not pass Authenticating Credentials (step 2 of 3)

We could'nt verify your account with that information.

image

Boom, stuck. Confused. Halp :) Super cool I was able to get right up to the finish line on MacOS with an ARM processor with little to no tweaking. Nice work folks!

cfryerdev commented 1 year ago

Hopefully this might contribute to a nice wiki page on getting this running on windows, macos, and linux with more detailed steps.

cfryerdev commented 1 year ago

If somebody can help me locate the installer for the macos supported version im happy to test and report back.

iamdroppy commented 1 year ago

I'd be glad to help on my macOS. Problem is, it's the 2015 (x86-64) - aka not with an ARM processor.

iamdroppy commented 1 year ago

Have you tested manually changing the hosts file instead of the binary?

cfryerdev commented 1 year ago

Have you tested manually changing the hosts file instead of the binary?

As posted in the issue, Adding the 127.0.0.1 proxy addresses to the host file results in the diablo 3 client freezing and crashing attempting to login (step 1). This only happens on macos not windows.

cfryerdev commented 1 year ago

I'd be glad to help on my macOS. Problem is, it's the 2015 (x86-64) - aka not with an ARM processor.

Worth a try :) Post your results.

DeKaN commented 1 year ago

@cfryerdev I tried to patch exe file on Windows and it didn't work, but hosts method is working. I tested on x86 and x64 versions. Try to log in several times, if you see a captcha, then the client tries to connect to the official server

cfryerdev commented 1 year ago

On branch (test-stable), built and ran... (Windows + 64 bit client)

image

image

No changes to host file...

image

cfryerdev commented 1 year ago

Try to log in several times, if you see a captcha, then the client tries to connect to the official server

That's what is happening on the macos version so i guess the macos version requires more patching than the windows version. INTERESTING!

xrisk commented 1 year ago

Same issue. Client does connect to server, as I see a ’succesfully encrypted the connection’. Is there any way to turn on additional logging in the server to see what the client is sending? Or additional logging in the Diablo client?