Skip to forum content

You are not logged in. Please login or register.


forums.pvpgn.pro → [EN] Diablo → Version Check Diablo & WC3 BNE GoG

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 4

1 (edited by tynlee1 10.05.2021 04:35)

Topic: Version Check Diablo & WC3 BNE GoG

Hello,
I was wondering if anyone could share or explain how to produce myself entries to versioncheck for unknown products. I want to use allow_unknown_version=false and have issues only with D1 and WC2 BNE as I am unsure how to create version checks for them. I have checked logs, I can see the mismatches but what should I put in the hash/fileMetadata/versiontag fields.

May 10 02:35:05 [debug] pvpgn::bnetd::conn_create: [448][476] sessionkey=0x1620630904 sessionnum=0x00000002
May 10 02:35:05 [debug] pvpgn::bnetd::sd_accept: [448] client connected to a bnet listening address
May 10 02:35:05 [info ] pvpgn::bnetd::handle_init_packet: [448] client initiated bnet connection
May 10 02:35:05 [trace] pvpgn::bnetd::conn_shutdown: [448] connection already closed
May 10 02:35:05 [debug] pvpgn::bnetd::conn_set_class: added latency check timer
May 10 02:35:05 [debug] pvpgn::bnetd::_client_countryinfo1: [448] COUNTRYINFO1 packet from tzbias=0xffffffc4 langstr=ENG countrycode=44 country=GBR
May 10 02:35:05 [debug] pvpgn::bnetd::_client_progident: [448] CLIENT_PROGIDENT archtag=0x49583836 clienttag=0x4452544c versionid=0x0000002a unknown1=0x00000000
May 10 02:35:05 [debug] pvpgn::bnetd::_client_progident: [448] selected "ver-IX86-1.mpq" "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B"
May 10 02:35:06 [trace] pvpgn::bnetd::_client_authreq1: [448] received AUTHREQ1(0x07) packet
May 10 02:35:06 [info ] pvpgn::bnetd::_client_authreq1: [448] CLIENT_AUTHREQ1 archtag=0x49583836 clienttag=0x4452544c verstr=1.0.9.2 exeinfo="Diablo.exe 04/26/21 23:06:09 765024" versionid=0x0000002a gameversion=0x00000000 checksum=0x00000000
May 10 02:35:06 [info ] pvpgn::bnetd::_client_authreq1: [448] client failed versioncheck

-

May 10 00:53:13 [debug] pvpgn::bnetd::_client_countryinfo1: [488] COUNTRYINFO1 packet from tzbias=0xffffffc4 langstr=ENG countrycode=44 country=GBR
May 10 00:53:13 [debug] pvpgn::bnetd::_client_progident: [488] CLIENT_PROGIDENT archtag=0x49583836 clienttag=0x5732424e versionid=0x0000004f unknown1=0x00000000
May 10 00:53:13 [debug] pvpgn::bnetd::_client_progident: [488] selected "ver-IX86-1.mpq" "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B"
May 10 00:53:13 [debug] pvpgn::bnetd::ipbanlist_check: lastcheck: 1620600793, now: 1620600793, now-lc: 0.
May 10 00:53:13 [debug] pvpgn::bnetd::ipbanlist_check: checking 172.20.0.1
May 10 00:53:13 [info ] pvpgn::bnetd::sd_accept: [480] accepted connection from 172.20.0.1:10096 on 0.0.0.0:6112
May 10 00:53:13 [debug] pvpgn::bnetd::conn_create: [480][452] sessionkey=0x1620595567 sessionnum=0x00000003
May 10 00:53:13 [debug] pvpgn::bnetd::sd_accept: [480] client connected to a bnet listening address
May 10 00:53:13 [info ] pvpgn::bnetd::handle_init_packet: [480] client initiated file download connection
May 10 00:53:13 [trace] pvpgn::bnetd::conn_shutdown: [480] connection already closed
May 10 00:53:13 [info ] pvpgn::bnetd::file_send: [480] sending file "ver-IX86-1.mpq" ("files/ver-IX86-1.mpq") of length 11931
May 10 00:53:13 [debug] pvpgn::bnetd::sd_tcpinput: [480] read returned -1 (closing connection)
May 10 00:53:13 [info ] pvpgn::bnetd::conn_destroy: [480] closed file connection
May 10 00:53:13 [trace] pvpgn::bnetd::_client_authreq1: [488] received AUTHREQ1(0x07) packet
May 10 00:53:13 [info ] pvpgn::bnetd::_client_authreq1: [488] CLIENT_AUTHREQ1 archtag=0x49583836 clienttag=0x5732424e verstr=2.0.2.1 exeinfo="Warcraft II BNE.exe 04/26/21 22:04:24 719968" versionid=0x0000004f gameversion=0x00000000 checksum=0x00000000
May 10 00:53:13 [info ] pvpgn::bnetd::_client_authreq1: [488] client failed versioncheck

2

Re: Version Check Diablo & WC3 BNE GoG

In bnetd.log, these are the two lines that you should be reading:

May 10 02:35:05 [debug] pvpgn::bnetd::_client_progident: [448] selected "ver-IX86-1.mpq" "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B"

May 10 02:35:06 [info ] pvpgn::bnetd::_client_authreq1: [448] CLIENT_AUTHREQ1 archtag=0x49583836 clienttag=0x4452544c verstr=1.0.9.2 exeinfo="Diablo.exe 04/26/21 23:06:09 765024" versionid=0x0000002a gameversion=0x00000000 checksum=0x00000000

Here is an example entry from versioncheck.json:

"0x4f": {
                "checkRevisionFile": "ver-IX86-1.mpq",
                "equation": "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B",
                "entries": [
                    {
                        "title": "Warcraft II BNE 2.02b",
                        "version": "2.0.2.1",
                        "hash": "0xff0d4c4a",
                        "fileMetadata": "Warcraft II BNE.exe 05/21/01 21:52:22 712704",
                        "versionTag": "W2BN_202B"
                    },
                    {
                        "title": "Warcraft II BNE 2.02a",
                        "version": "2.0.2.0",
                        "hash": "0xb52bad87",
                        "fileMetadata": "Warcraft II BNE.exe 05/15/01 20:53:19 712704",
                        "versionTag": "W2BN_202A"
                    }
                ]
            }


"0x4f" on the first line refers to the client's version byte or version id.
Referring to bnetd.log, you should see versionid=0x0000002a. So replace "0x4f" with 0x2a".

checkRevisionFile and equation should generally be left alone unless you really want to change them for some reason.

title is just a human-friendly tag you can give to the entry, pvpgn won't care about it.
version should equal verstr from bnetd.log.
hash should equal checksum from bnetd.log.
fileMetadata should equal exeinfo from bnetd.log.
versionTag is simply a string that you'll have to come up with yourself. It must be unique among other versioncheck entries where the client and version differ. For example, there are two entries with DRTL_109 because those entries are for Diablo 1 1.09 for Windows and for PowerPC Macs.

3

Re: Version Check Diablo & WC3 BNE GoG

xboi209 wrote:

In bnetd.log, these are the two lines that you should be reading:

May 10 02:35:05 [debug] pvpgn::bnetd::_client_progident: [448] selected "ver-IX86-1.mpq" "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B"

May 10 02:35:06 [info ] pvpgn::bnetd::_client_authreq1: [448] CLIENT_AUTHREQ1 archtag=0x49583836 clienttag=0x4452544c verstr=1.0.9.2 exeinfo="Diablo.exe 04/26/21 23:06:09 765024" versionid=0x0000002a gameversion=0x00000000 checksum=0x00000000

Here is an example entry from versioncheck.json:

"0x4f": {
                "checkRevisionFile": "ver-IX86-1.mpq",
                "equation": "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B",
                "entries": [
                    {
                        "title": "Warcraft II BNE 2.02b",
                        "version": "2.0.2.1",
                        "hash": "0xff0d4c4a",
                        "fileMetadata": "Warcraft II BNE.exe 05/21/01 21:52:22 712704",
                        "versionTag": "W2BN_202B"
                    },
                    {
                        "title": "Warcraft II BNE 2.02a",
                        "version": "2.0.2.0",
                        "hash": "0xb52bad87",
                        "fileMetadata": "Warcraft II BNE.exe 05/15/01 20:53:19 712704",
                        "versionTag": "W2BN_202A"
                    }
                ]
            }


"0x4f" on the first line refers to the client's version byte or version id.
Referring to bnetd.log, you should see versionid=0x0000002a. So replace "0x4f" with 0x2a".

checkRevisionFile and equation should generally be left alone unless you really want to change them for some reason.

title is just a human-friendly tag you can give to the entry, pvpgn won't care about it.
version should equal verstr from bnetd.log.
hash should equal checksum from bnetd.log.
fileMetadata should equal exeinfo from bnetd.log.
versionTag is simply a string that you'll have to come up with yourself. It must be unique among other versioncheck entries where the client and version differ. For example, there are two entries with DRTL_109 because those entries are for Diablo 1 1.09 for Windows and for PowerPC Macs.

Thanks! I though I was doing exactly what you are showing but with no success, I will retry in a few days.
I was worried that -> versionid = 0x0000002a gameversion = 0x00000000 checksum = 0x00000000
checksum being 0x0... also needed me to change/add more to it which I could not gather from the logs, for example this: A = 3845581634 B = 880823580 C = 1363937103 4 A = AS B = BC C = CA A = AB"
As GoG version are modified versions, I though they were not as easly to be added. Will check again in a few days and report back.

4

Re: Version Check Diablo & WC3 BNE GoG

I realized there is a small bug with the gameversion and checksum values in bnetd.log, try compiling the latest code from the develop branch and then run pvpgn again.

Posts: 4

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 0 guests, 0 registered users

forums.pvpgn.pro → [EN] Diablo → Version Check Diablo & WC3 BNE GoG