Pet Attribute Overflow Exploit - BOI / WOI

Socius Decennalis
Decennium
Joined
Sep 5, 2012
Messages
124
Reaction score
109
Pet Attribute Overflow Exploit - Battle of the Immortals (BOI) / War of the Immortals (WOI)​


What is it

Integer overflow bug in the server-side handler for packet 0x4466 (MsgPet_C2S_AddPoint) — the packet the client sends when you distribute pet attribute points. You can allocate 63k+ to every stat while the server thinks you spent zero points.


How it works

When you distribute pet attribute points in-game, the client sends 5 uint16 values to the server (STR, CON, DEX, INT, SPR). The server:

  1. Sums all 5 values
  2. Checks if sum ≤ available points
  3. If yes: applies each stat individually with the full value you sent
  4. If no: rejects

Seems fine, right? The catch is in how the sum gets stored. Whoever wrote this handler stored the sum as a 16-bit word (max 65535). But 5 × 65535 = 327675 — easily overflows a word.

When the real sum exceeds 65535, the word wraps around to zero. The server then compares 0 ≤ availablePoints → approves. But it still writes each stat with the full uint16 value you sent.

Code:
Pseudocode of the vulnerable handler:

sum = str + con + dex + int + spr        // e.g. 63536+63536+63536+63536+8000 = 262144
mov word ptr [sum], ax                   // ⚠️ truncates to 16-bit → 0x0000
...
movzx ecx, word ptr [sum]                // loads zero
cmp ecx, [availablePoints]               // 0 ≤ anything → ALWAYS PASSES

The magic numbers:

  • STR = -2000 (signed) → interpreted as uint16 = 63536 (0xF830)
  • CON = -2000 → uint16 = 63536
  • DEX = -2000 → uint16 = 63536
  • INT = -2000 → uint16 = 63536
  • SPR = 8000

Real sum: 4×63536 + 8000 = 262144 (0x40000)
Truncated to word: 0x0000
Server sees: "0 points used, approved"
Server applies: STR=63536, CON=63536, DEX=63536, INT=63536, SPR=8000

You just got a quarter million stat points. For free.


Proof of Concept Tool

Attached is a C++/CLI tool that automates the exploit:

  1. Opens game.exe with read/write access
  2. Reads your owned pet list and shows all pets with their current stats
  3. Writes the exploit values directly into the pet's distribution fields in client memory
  4. Forces the "Done" button so you can send without having real points

Usage:
  1. Summon your pet in-game first
  2. Run PetExploit.exe as Administrator
  3. Select game.exe, click Attach
  4. Pick your pet from the list, click Exploit
  5. Open pet attribute window in-game, click Done

The client sends the manipulated values via packet 0x4466, the server's broken validation approves it, and the stats stick. No packet injection needed — the game client does the sending for you.


Affected

Any server running Battle of the Immortals (BOI) or War of the Immortals (WOI) server binaries that still have the original 0x4466 handler. If the server uses the unmodified handler, it's vulnerable. The bug is in the server binary, not the client — so every player on that server can do this.


Why it works in depth

The root cause is a type width mismatch in the validation logic. The individual stat values are 16-bit (uint16). Five of them summed need at least 18 bits (log2(327675) ≈ 18.3). But the developer used a word-sized temporary for the sum — effectively validating with `(sum & 0xFFFF)` instead of the actual sum.

This is a classic CWE-190 (Integer Overflow/Wraparound) combined with a TOCTOU-style logic gap: the validation uses the truncated sum, but the application uses the full values. The three `movzx` instructions in the handler confirm it — they load the sum assuming it's a word that needs zero-extending to dword, which is correct for a word, but wrong when that word should have been a dword all along.



Download:
VirusTotal:

Credits: Research & PoC by Necros
 
Pet Attribute Overflow Exploit - Battle of the Immortals (BOI) / War of the Immortals (WOI)​


What is it

Integer overflow bug in the server-side handler for packet 0x4466 (MsgPet_C2S_AddPoint) — the packet the client sends when you distribute pet attribute points. You can allocate 63k+ to every stat while the server thinks you spent zero points.


How it works

When you distribute pet attribute points in-game, the client sends 5 uint16 values to the server (STR, CON, DEX, INT, SPR). The server:

  1. Sums all 5 values
  2. Checks if sum ≤ available points
  3. If yes: applies each stat individually with the full value you sent
  4. If no: rejects

Seems fine, right? The catch is in how the sum gets stored. Whoever wrote this handler stored the sum as a 16-bit word (max 65535). But 5 × 65535 = 327675 — easily overflows a word.

When the real sum exceeds 65535, the word wraps around to zero. The server then compares 0 ≤ availablePoints → approves. But it still writes each stat with the full uint16 value you sent.

Code:
Pseudocode of the vulnerable handler:

sum = str + con + dex + int + spr        // e.g. 63536+63536+63536+63536+8000 = 262144
mov word ptr [sum], ax                   // ⚠️ truncates to 16-bit → 0x0000
...
movzx ecx, word ptr [sum]                // loads zero
cmp ecx, [availablePoints]               // 0 ≤ anything → ALWAYS PASSES

The magic numbers:

  • STR = -2000 (signed) → interpreted as uint16 = 63536 (0xF830)
  • CON = -2000 → uint16 = 63536
  • DEX = -2000 → uint16 = 63536
  • INT = -2000 → uint16 = 63536
  • SPR = 8000

Real sum: 4×63536 + 8000 = 262144 (0x40000)
Truncated to word: 0x0000
Server sees: "0 points used, approved"
Server applies: STR=63536, CON=63536, DEX=63536, INT=63536, SPR=8000

You just got a quarter million stat points. For free.


Proof of Concept Tool

Attached is a C++/CLI tool that automates the exploit:

  1. Opens game.exe with read/write access
  2. Reads your owned pet list and shows all pets with their current stats
  3. Writes the exploit values directly into the pet's distribution fields in client memory
  4. Forces the "Done" button so you can send without having real points

Usage:
  1. Summon your pet in-game first
  2. Run PetExploit.exe as Administrator
  3. Select game.exe, click Attach
  4. Pick your pet from the list, click Exploit
  5. Open pet attribute window in-game, click Done

The client sends the manipulated values via packet 0x4466, the server's broken validation approves it, and the stats stick. No packet injection needed — the game client does the sending for you.


Affected

Any server running Battle of the Immortals (BOI) or War of the Immortals (WOI) server binaries that still have the original 0x4466 handler. If the server uses the unmodified handler, it's vulnerable. The bug is in the server binary, not the client — so every player on that server can do this.


Why it works in depth

The root cause is a type width mismatch in the validation logic. The individual stat values are 16-bit (uint16). Five of them summed need at least 18 bits (log2(327675) ≈ 18.3). But the developer used a word-sized temporary for the sum — effectively validating with `(sum & 0xFFFF)` instead of the actual sum.

This is a classic CWE-190 (Integer Overflow/Wraparound) combined with a TOCTOU-style logic gap: the validation uses the truncated sum, but the application uses the full values. The three `movzx` instructions in the handler confirm it — they load the sum assuming it's a word that needs zero-extending to dword, which is correct for a word, but wrong when that word should have been a dword all along.



Download:
VirusTotal:

Credits: Research & PoC by Necros


Here is the script, you need capstone and python installed, it will do auto patching for you, if get any errors please report them to me as i tested only on WOI Cult line.exe
 
Use this script then you will miss out the other 9 same overflow that's not related to pet. Like rider, character, etc. Try again.
 
Just use AI to get automated report if you don't know how to do manual reverse checks. Doesn't take 2 minutes to generate one.
1783329604592 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums

Hahaha narrowed it down for you. Showcase one exploit research like pro but lured more exploits of the same kind but doesn't know where. Lols. The funniest thing ever.

1783333821947 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums


While it's funny, but long time exploiter like you cant even find, means it's safe to say most exploiters out there are the same clueless monekoys, won't even need to fix them and less hassle to showcase them to give anyone an idea just for some badges and medals and applause.

For me to know, for you to figure before you type.

Fafo. Lmao.
 
Last edited:
Just use AI to get automated report if you don't know how to do manual reverse checks. Doesn't take 2 minutes to generate one.

Hahaha narrowed it down for you. Showcase one exploit research like pro but lured more exploits of the same kind but doesn't know where. Lols. The funniest thing ever.



While it's funny, but long time exploiter like you cant even find, means it's safe to say most exploiters out there are the same clueless monekoys, won't even need to fix them and less hassle to showcase them to give anyone an idea just for some badges and medals and applause.

For me to know, for you to figure before you type.

Fafo. Lmao.

Did you also check if some of them are already protected via slk files an database stuff? :)
Did you actually try to exploit them on any live server or localhost so far to confirm its really an exploit and it works?
 
Start using brain maybe. AI got 19. I said 9 from manual checks. What you think then? Just dropped one exploit for showoff because AI enhanced your knowledge but all of your basics still sucks.

For your fix, 10 lines of codes can fix that pet exploit in x32dbg but use a 459 lines of AI generated capstone python script, then ask me if i can exploit the rest.

Brain lacks. Nuff said.

Go figure them if you want. Dont make me laugh more on each words you guys speak to raise a doubt as if you only as good as AI can take you.
 
Start using brain maybe. AI got 19. I said 9 from manual checks. What you think then? Just dropped one exploit for showoff because AI enhanced your knowledge but all of your basics still sucks.

For your fix, 10 lines of codes can fix that pet exploit in x32dbg but use a 459 lines of AI generated capstone python script, then ask me if i can exploit the rest.

Brain lacks. Nuff said.

Go figure them if you want. Dont make me laugh more on each words you guys speak to raise a doubt as if you only as good as AI can take you.
Yeah make an exploit or an video as a proof that its working what you say ;)
Not everyone here knows how to use x32dbg, so yeah 459 lines script is better.
 
Yeah make an exploit or an video as a proof that its working what you say ;)
Not everyone here knows how to use x32dbg, so yeah 459 lines script is better.
He's onism, likereally, youaresofunny. Don't give him the attention he's looking for. His solution, well, was a joke, he'd run all maths and everything on mysql to find hacked pets(even that sucked as it missed many pets). He didn't have any prevention, but he likes to boast how great he is and he loves to belittle anyone doing any work
 
Yeah make an exploit or an video as a proof that its working what you say ;)
Not everyone here knows how to use x32dbg, so yeah 459 lines script is better.

That's funny too. But you're right, a script is at least better than nothing shown from TS that dropped the exploit but not the fix. Good. Better idea yet, make an EXE to one-click fix any line.exe because they won't even know what's going on if talking about being easy to use.

I'll bet you don't fully understand the exploit. just pattern recognition and came up with the fix, so let alone to find the remaining identical exploits by yourself. Otherwise, you would have noticed on first glance.

But don't bait me to show something you can't find. Lousy talks everywhere. More hassles only. More funny thing is, TS is not even aware of it.

Rofl. Knowledge is cheap these days, everyone's pose as proud expert reversers. Just drop them in AI, got it. So funny.

He's onism, likereally, youaresofunny. Don't give him the attention he's looking for. His solution, well, was a joke, he'd run all maths and everything on mysql to find hacked pets(even that sucked as it missed many pets). He didn't have any prevention, but he likes to boast how great he is and he loves to belittle anyone doing any work
Must be MrEgomoneykey. The clown of all. Sold for desperate times. Ran 6 months with 20 players but now there's 120 players in less than 2 weeks. Great difference so pro ass my head. Just a useless prick.

Funny shiet is, you don't even know how to use that pet script, got the wrong script with zero brain cell. Read all the pet attributes but we're all reading the pet add points. Messed up yourself, don't put your stupidness as my fault to blame.

Go back to your POE cave. 5 weeks since you played POE. Talking about chill back but can never go back because scrub is real lousy at figuring WOI to make a comeback.

Get better, use brain. Zero contribution, yet talk the sophisticated but equally useless.

1783348329903 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums
 
Last edited:
bro keeps saying "use brain" while blindly trusting an ai report full of possible false positives. funny.

a working exploit was posted. if you claim there are 9 more, then prove one. show the packet, show the handler, show it working on localhost, or at least show the exact vulnerable logic.

"ai found 19" is not research. it's a todo list for someone who still has to verify it.

until then, it's just noise. i posted something real, you posted ego and screenshots.
 
bro keeps saying "use brain" while blindly trusting an ai report full of possible false positives. funny.

a working exploit was posted. if you claim there are 9 more, then prove one. show the packet, show the handler, show it working on localhost, or at least show the exact vulnerable logic.

"ai found 19" is not research. it's a todo list for someone who still has to verify it.

until then, it's just noise. i posted something real, you posted ego and screenshots.

This kind of reply only shows more that you have no clue what you provoked with, then start dismissing a "bindly" report.

You should really start using brain. Start with your own fix for a start.

Check the date. This is only for showing you that I ran the AI few minutes before I posted it for you as a summary. Doesn't take two brains.
1783353789682 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums

Because you are obviously too shallow to understand them, to not notice such on first sight and to ask me to show. Also, it will be a waste of my time to explain in detailed. More hassles and more problems for unseen exploits that you the exploiter don't even know to begin with. Me show it to create more problems for myself? Nah. If you want to exploit, you can go figure. Not my problem.

Don't bait me to ease the extras problems you started. Find it yourself if you want. Rofl.
 
Mysql is not designed to do math, it can do it, but it's slow. Why would I use your mysql scripts?
And what desperate times, Anubis wanted and I sold it to him and jokes on you onism I reversed it without ai help, hence why I need an additional file for dawn. You are the only intelligent person on these forums onism, if there were nobody else around🤣
1783353657767 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums
 
Mysql is not designed to do math, it can do it, but it's slow. Why would I use your mysql scripts?
And what desperate times, Anubis wanted and I sold it to him and jokes on you onism I reversed it without ai help, hence why I need an additional file for dawn. You are the only intelligent person on these forums onism, if there were nobody else around🤣

Clowns everywhere. There's 0 math. Only substring to offset. And obviously this ss is wrong way of checking pets. Ask necros or anyone else, there's no decimal because all you are looking at are pet attributes instead of addpoints. The joke is on you, not me.

Also, if you are really knowing how to reverse, you will not need an additional files for such a simple process, just tedious in short for manual reverse. You only need to fix 1 file, but entirely, which you didn't managed to, or I should say, your AI back then didn't managed to. You need an addition file on line.exe because you are not even sure what you are fixing, just run bytes as pattern scanning to check, which is the wrong way, when it such a simple fix for those that has fixed.

Suck it up, loser. One last thing for you MrEko. Basically im telling you to take the money and fk off the scene and/or get better with something else I saw in. Also, gave you a great real live example on how lousy you ran your server as compared to this current server running on a brand new expansion, so that you will came to realisation and accept the reality that you suck, who almost kill the community hope after tryhards failures running with new expansion bringing near 0 players. Good things on a lousy hand with a snob brain. If you are too ignorant to get the words, read again. Go back your POE cave, there, it suits you more.
 
Looks like we finally got some activity in BOI/WOI emulation world! Congratz GUYS!!
Same old, boring stuffs. Releasing exploit on a 15 years old game that doesn't come with fix. Then need someone to make a script. Then the script only fix one thing, but the same exploits brought 9 more that even the person who release doesn't know shiet about. Then you got a loser there keep talking as if he raised the community but in reality and fact, he killed them twice. Got a redemption out of pityness but still want to make things worse. Jokes.
 
Same old, boring stuffs. Releasing exploit on a 15 years old game that doesn't come with fix. Then need someone to make a script. Then the script only fix one thing, but the same exploits brought 9 more that even the person who release doesn't know shiet about. Then you got a loser there keep talking as if he raised the community but in reality and fact, he killed them twice. Got a redemption out of pityness but still want to make things worse. Jokes.
Well game is not anymore that old since there is new CN expansions and that are up to date :)
 
onism, According to you, pet's have 0 attribute points? 🤣 the ss is showing how many points were allocated and to what stat.
What line.exe? I have not touched line exe at any point. You're talking just to talk, what a clown🤣 Just keep showing that you don't really know much 🤣
 
onism, According to you, pet's have 0 attribute points? 🤣 the ss is showing how many points were allocated and to what stat.
What line.exe? I have not touched line exe at any point. You're talking just to talk, what a clown🤣 Just keep showing that you don't really know much 🤣

Im saying how you messed up previously looking at pet attributes, then now addpoint pointing to the SS. Doesn't take two brains to know. And reverse a pet? Just take a look at the blob in mysql would have shown it, without "pro reverse" skill. Besides, you have to look into my script to gain a knowledge. Just like anything else. Have to look first, got the answers, then work backwards. Jokes.

1783356826570 - Pet Attribute Overflow Exploit - BOI / WOI - RaGEZONE Forums
 
Back