Game Vendor: Steam
Game Version: 4.1.83.2651
Game Process: bg3.exe
Game File Version: 4.1.83.2651
Hello folks, just got this game installed. I'll post my research in this topic; feel free to join in.
First-up, the game's using an Engine I've not seen so far - Divinity Engine:
Code: Select all
bg3.exe+3C7818D - 48 8D 0D 4CCF2801 - lea rcx,[bg3.exe+4F050E0] { ("4.1.83.2651") }
..
bg3.exe+3C781B3 - 48 8D 0D 36CF2801 - lea rcx,[bg3.exe+4F050F0] { ("The Divinity Engine") }
So I went all the way back to this spot:
Code: Select all
00007FF7916BCD83 | 48:8B05 961AB003 | MOV RAX,QWORD PTR DS:[7FF7951BE820] |
00007FF7916BCD8A | 48:8D9424 88000000 | LEA RDX,QWORD PTR SS:[RSP+88] |
00007FF7916BCD92 | 48:898C24 88000000 | MOV QWORD PTR SS:[RSP+88],RCX |
00007FF7916BCD9A | 48:8B48 18 | MOV RCX,QWORD PTR DS:[RAX+18] |
Then entered that:
Then one more time:
Inside I saw this:
So I think it's safe to say that:class ecs::EntityWorld **__cdecl ls::MallocInterface<class ecs::EntityWorld *>::Allocate(unsigned __int64)
mov rax,[bg3.exe+5B2E820] { (155A6C84CE0) }
mov rcx,[rax+18]
--> rcx == a EntityWorld instance (first one created, so I'll assume this is World)
God Mode can be achieved by fiddling with this:
Code: Select all
bg3.exe+24BBAD9 - 80 BE 9C000000 00 - cmp byte ptr [rsi+0000009C],00 { 0 }
Then I tried that CMP, setting the value to 0x1 and no more damage taken. You can still hear the yell though Working on a Perfect God Mode and getting some structure names and relationships.
[ meanwhile the game has updated, so we're now on 4.1.83.3931 ]