- Game Name
- Battlefield 3
- How long you been coding/hacking?
- Few Years
- Coding Language
- C++
I'M Landing On BF3, Make Way !!
Ok, in this lousy Battlefield 3 cheat tutorial I'm gonna show you how to create a custom Damage Hack for this glorious game.
Before to start, remember to do your bullshit without ruin the legit players' fun... go kill some cheaters instead, otherwise I will find you...
Battlefield 3 is a first person shooter video game with single player and multiplayer modes. In the campaign or single player mode you follow the story of two characters, Dimitri Mayakovsky and Henry Blackburn where you take multiple military roles such as: Tank operator, combat aircraft operator and U.S. Marine. The multiplayer mode consists of a lobby with a maximum of 24 players on console or 64 players on PC. Each player can choose one of four classes or roles: Support, Engineer, Assault or Recon. As a support you supply ammunition to allies and you have light machine guns. The role of the engineer is to support and destroy vehicles. The support class has assault rifles and allows you to heal teammates. Finally the recon role has a sniper and focus on spotting enemy players. The sequel Battlefield 4 is similar to BF3 while bringing newer graphics and better server performance.
▒▒▒▒ BEFORE YOU START ▒▒▒▒
There are different approaches to create a damage hack for Battlefield 3, and to achieve the result, we must know how the engine calculates these stuff.
Every weapon in Battlefield 3 has 2 CONSTANT DAMAGE VALUES, 4 DAMAGE MULTIPLIERS, AND 1 CALIBER TYPE.
When the player shoot a bullet, that's what happens:
- The engine uses the CALIBER TYPE to calculate the projectile ballistics and the trajectory;
- Based on the distance, the engine computes the START DAMAGE, a result between the 2 CONSTANT DAMAGE VALUES.
- Based on the body hits, the engine computes the FINAL DAMAGE, multiplying the START DAMAGE * DAMAGE MULTIPLIERS. Head -> x2, Body -> x1, Legs -> x0.90, Arms -> x0.90
- To conclude, the engine uses a SendDamage function to perform the action on the target and achieve our damage hack
So, we have different ways to achieve the result, we can operate on the start damage, on the multiplier values, on the SendDamage or similar function.
We gonna use the most permissive way messing with the START DAMAGE.
▒▒▒▒ GETTING THE CLASS ▒▒▒▒
The Engine uses TONS of classes which makes developing a Battlefield 3 cheat difficult but also easy at the same time, because you can dump an SDK if you are smart enough but doing regular native hacks is a bit of a pain. For each weapon' aspect, every class has a particular role and is linked to a specific Frostbite' method. The Start Damage values, in particular, are contained in a class called "bulletEntity". That's what we are looking for. Reversing the game, you can found a lot of valid functions which adapt to our scope. Personally, I used a function of the ballistic routine. Not a great idea, since the the game calls it every time a player hit something, but quite functional. The function is located there --> bf3.exe+DC7561
Looking at it, we can easily notice a thing.
ECX is a fucking class + this function computes a bunch of Float values.
Using a debugger (i'm poor, i don't have a decompiler), you can follow the calcuation to discovery the following stuff:
- ECX + F0 is the MAXIMUM BASE damage of the weapon
- ECX + F4 is the MINIMUM BASE damage of the weapon
- ECX + F8 are the METERS on which the weapon makes the MAX DAMAGE
- ECX + FC are the METERS on which the weapon makes the MIN DAMAGE
... the calculations for the final damage follow....
▒▒▒▒ WE GOT IT ▒▒▒▒
We have the class, we have the values, we have the power. Now we can make our damage hack
Dunno why DICE has left these things client-side... too many beers? Console implementation? Dunno.
Unluckily, it doesn't work with Vehicles, maybe those calculations are server side only.
▒▒▒▒ THE WORLD IS NOW OPEN ▒▒▒▒
You can implement now whatever you want in your cheat, you can mess with the calculations, you can hook and change the values directly in your thread, you can follow the flow to get more stuff... The world is now open.
Personally, in my Battlefield 3 cheat, I have hooked and assigned the Damage Values in my module in this way:
mov [ecx + F0], MyCustomFloat
mov [ecx + F4], MyCustomFloat
But it's just a fast noob implementation, you can probably do it betta! Use your imagination.
I hope you find it useful
!
EDIT: OMG I forgot to thank my friend which remained afk on the server for a few hours while I developed this cheat. Thank you.
Ok, in this lousy Battlefield 3 cheat tutorial I'm gonna show you how to create a custom Damage Hack for this glorious game.
Before to start, remember to do your bullshit without ruin the legit players' fun... go kill some cheaters instead, otherwise I will find you...
Battlefield 3 is a first person shooter video game with single player and multiplayer modes. In the campaign or single player mode you follow the story of two characters, Dimitri Mayakovsky and Henry Blackburn where you take multiple military roles such as: Tank operator, combat aircraft operator and U.S. Marine. The multiplayer mode consists of a lobby with a maximum of 24 players on console or 64 players on PC. Each player can choose one of four classes or roles: Support, Engineer, Assault or Recon. As a support you supply ammunition to allies and you have light machine guns. The role of the engineer is to support and destroy vehicles. The support class has assault rifles and allows you to heal teammates. Finally the recon role has a sniper and focus on spotting enemy players. The sequel Battlefield 4 is similar to BF3 while bringing newer graphics and better server performance.
▒▒▒▒ BEFORE YOU START ▒▒▒▒
There are different approaches to create a damage hack for Battlefield 3, and to achieve the result, we must know how the engine calculates these stuff.
Every weapon in Battlefield 3 has 2 CONSTANT DAMAGE VALUES, 4 DAMAGE MULTIPLIERS, AND 1 CALIBER TYPE.
When the player shoot a bullet, that's what happens:
- The engine uses the CALIBER TYPE to calculate the projectile ballistics and the trajectory;
- Based on the distance, the engine computes the START DAMAGE, a result between the 2 CONSTANT DAMAGE VALUES.
- Based on the body hits, the engine computes the FINAL DAMAGE, multiplying the START DAMAGE * DAMAGE MULTIPLIERS. Head -> x2, Body -> x1, Legs -> x0.90, Arms -> x0.90
- To conclude, the engine uses a SendDamage function to perform the action on the target and achieve our damage hack
So, we have different ways to achieve the result, we can operate on the start damage, on the multiplier values, on the SendDamage or similar function.
We gonna use the most permissive way messing with the START DAMAGE.
▒▒▒▒ GETTING THE CLASS ▒▒▒▒
The Engine uses TONS of classes which makes developing a Battlefield 3 cheat difficult but also easy at the same time, because you can dump an SDK if you are smart enough but doing regular native hacks is a bit of a pain. For each weapon' aspect, every class has a particular role and is linked to a specific Frostbite' method. The Start Damage values, in particular, are contained in a class called "bulletEntity". That's what we are looking for. Reversing the game, you can found a lot of valid functions which adapt to our scope. Personally, I used a function of the ballistic routine. Not a great idea, since the the game calls it every time a player hit something, but quite functional. The function is located there --> bf3.exe+DC7561
Looking at it, we can easily notice a thing.
ECX is a fucking class + this function computes a bunch of Float values.
Using a debugger (i'm poor, i don't have a decompiler), you can follow the calcuation to discovery the following stuff:
- ECX + F0 is the MAXIMUM BASE damage of the weapon
- ECX + F4 is the MINIMUM BASE damage of the weapon
- ECX + F8 are the METERS on which the weapon makes the MAX DAMAGE
- ECX + FC are the METERS on which the weapon makes the MIN DAMAGE
... the calculations for the final damage follow....
▒▒▒▒ WE GOT IT ▒▒▒▒
We have the class, we have the values, we have the power. Now we can make our damage hack
Dunno why DICE has left these things client-side... too many beers? Console implementation? Dunno.
Unluckily, it doesn't work with Vehicles, maybe those calculations are server side only.
▒▒▒▒ THE WORLD IS NOW OPEN ▒▒▒▒
You can implement now whatever you want in your cheat, you can mess with the calculations, you can hook and change the values directly in your thread, you can follow the flow to get more stuff... The world is now open.
Personally, in my Battlefield 3 cheat, I have hooked and assigned the Damage Values in my module in this way:
mov [ecx + F0], MyCustomFloat
mov [ecx + F4], MyCustomFloat
But it's just a fast noob implementation, you can probably do it betta! Use your imagination.
I hope you find it useful
EDIT: OMG I forgot to thank my friend which remained afk on the server for a few hours while I developed this cheat. Thank you.
Last edited by a moderator: