Devil May Cry 4 - Some Hacks

Hacking Any Other Offline Single-Player Game

Moderators: g3nuin3, SpeedWing, WhiteHat, mezzo

Postby WhiteHat » Wed Jun 10, 2009 1:07 pm

I believe there are infinite ways to make One Hit Kill hack for any single player game. If by any chance you choose Weapon Damage as a starting point, then you have to obtain its value...

Having their value not visible on-screen don’t mean that those value are not exist. After all, in this DMC4 i managed to obtain those demon’s health even there were no any kind of interface show them on-screen (please scroll up a bit to “DMC4 - LOCKED DEMON”).
.. to boldly go where no eagle has gone before...
User avatar
WhiteHat
Elang Djawa
 
Posts: 1059
Joined: Fri Jul 21, 2006 12:49 pm
Location: Away for a while...

Postby Aspras » Wed Jun 10, 2009 4:05 pm

If the character youre playing levels up then you could search for increased values after each level , assuming that attack increases with every level. If you choose to do that finding the exp address first would then make things easier.
User avatar
Aspras
NULL
 
Posts: 100
Joined: Mon Jan 05, 2009 12:42 am

Postby mc.flash » Wed Jun 10, 2009 4:17 pm

hey thats cool thnx
♣♦☻☺I ♥ MHS ☺☻♦♣
Image
Image
<a href="http://www.starsofwww.com//community_showvideos.php?prdPassId=1820" target="_blank"><center><strong style="font-size:22px;"><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0><br />

Click Here to Vote Me
Best (Rapper, Singer) on StarofWWW.com

</strong><br />
</center><img border=1 style="BORDER-LEFT-COLOR: #4D0606; BORDER-BOTTOM-COLOR: #4D0606; BORDER-TOP-COLOR: #4D0606; BORDER-RIGHT-COLOR: #4D0606" src="http://www.starsofwww.com/community/LiLDizY/thumb_prdImg2010_Jan_Wed_06_04_53_281327.jpg"><br />
LiLDizY<br />
<strong>Name:</strong> Loay Ahmed<br />Lil dizy rapper from egypt 15 years old ..
<br />Code of Nominations:<strong>1820c6dbb1</strong><br /></a><br /><center><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0></center>
vote for me please!
User avatar
mc.flash
NULL
 
Posts: 171
Joined: Tue Jul 22, 2008 9:27 am
Location: In Da Club!

Postby Felheart » Thu Jun 11, 2009 7:18 pm

Attack strength doesn't increase, because there are no levels for your character,
but thanks to whitehat its possible to see how much damage you deal to your enemys.
I think it increases with the activation of the devil-trigger.
I will take a deeper look into this later...

Edit:
Oh wow! A lazy way could be to kill the enemy just by locking on on him xD
Just script-lock the enemys health to zero.
Last edited by Felheart on Fri Jun 12, 2009 12:39 am, edited 1 time in total.
Felheart
Acker
 
Posts: 89
Joined: Sun Apr 27, 2008 3:05 am
Location: Germany

Postby mc.flash » Fri Jun 12, 2009 12:32 am

Felheart wrote:Attack strength doesn't increase,
but thanks to whitehat its possible to see how much damage you deal to your enemys.
I think it increases with the activation of the devil-trigger.
I will take a deeper look into this later...

Edit:
Oh wow! A lazy way could be to kill the enemy just by locking on on him xD
Just script-lock the enemys health to zero.

and maybe aspras got an idea that might work too with some games :twisted: after all the only goal is to hack the game lol
♣♦☻☺I ♥ MHS ☺☻♦♣
Image
Image
<a href="http://www.starsofwww.com//community_showvideos.php?prdPassId=1820" target="_blank"><center><strong style="font-size:22px;"><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0><br />

Click Here to Vote Me
Best (Rapper, Singer) on StarofWWW.com

</strong><br />
</center><img border=1 style="BORDER-LEFT-COLOR: #4D0606; BORDER-BOTTOM-COLOR: #4D0606; BORDER-TOP-COLOR: #4D0606; BORDER-RIGHT-COLOR: #4D0606" src="http://www.starsofwww.com/community/LiLDizY/thumb_prdImg2010_Jan_Wed_06_04_53_281327.jpg"><br />
LiLDizY<br />
<strong>Name:</strong> Loay Ahmed<br />Lil dizy rapper from egypt 15 years old ..
<br />Code of Nominations:<strong>1820c6dbb1</strong><br /></a><br /><center><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0></center>
vote for me please!
User avatar
mc.flash
NULL
 
Posts: 171
Joined: Tue Jul 22, 2008 9:27 am
Location: In Da Club!

Postby WhiteHat » Fri Jun 12, 2009 1:10 pm

Felheart wrote:Oh wow! A lazy way could be to kill the enemy just by locking on on him xD
Just script-lock the enemys health to zero.

Bingo!.. I did that too.

But then i changed to multiply my damage and enemy’s as well.
This way, i can vary the difficulty of the game, such as:
- My damage = 25%
- Enemy Damage = 200%

And i prefer this way above all, whenever it’s possible...


mc.flash wrote:and maybe aspras got an idea that might work too with some games :twisted: after all the only goal is to hack the game lol

Indeed... After all, the way you make any OHK are very much depend on the game. We can decide how we would do that after we study the game mechanic (logic) about damage...
.. to boldly go where no eagle has gone before...
User avatar
WhiteHat
Elang Djawa
 
Posts: 1059
Joined: Fri Jul 21, 2006 12:49 pm
Location: Away for a while...

Postby Felheart » Fri Jun 12, 2009 8:43 pm

How did you get the multipliers?
I tryed devil-trigger, but no success on that besides speed.
There ARE other values, but they dont seem to work >_>
Changing the difficulty doesn't seem to be the right way to me, because
the game changes pointers and things even whyn you switch a room!
WhiteHat, do you just look for "fun" values? Because it seems like you are reversing the game with all classes and things :)
Felheart
Acker
 
Posts: 89
Joined: Sun Apr 27, 2008 3:05 am
Location: Germany

Postby spunge » Sat Jun 13, 2009 12:33 am

Assuming this is coded in C++, reversing classes isn't so bad. Everything is reliant on the this pointer. From what I can see, these are just pointers, not class decompilation. RTTI ftw.

Anyways, the SSE instruction set is seen everywhere, as well as the MMX instruction set. It's not uncommon to see it.
spunge
NULL
 
Posts: 121
Joined: Sun Jul 27, 2008 4:58 am
Location: VEH callback

Postby mc.flash » Sat Jun 13, 2009 12:58 am

hey after all we got it hehe
who plays that crappy game that called chaos legion ?
♣♦☻☺I ♥ MHS ☺☻♦♣
Image
Image
<a href="http://www.starsofwww.com//community_showvideos.php?prdPassId=1820" target="_blank"><center><strong style="font-size:22px;"><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0><br />

Click Here to Vote Me
Best (Rapper, Singer) on StarofWWW.com

</strong><br />
</center><img border=1 style="BORDER-LEFT-COLOR: #4D0606; BORDER-BOTTOM-COLOR: #4D0606; BORDER-TOP-COLOR: #4D0606; BORDER-RIGHT-COLOR: #4D0606" src="http://www.starsofwww.com/community/LiLDizY/thumb_prdImg2010_Jan_Wed_06_04_53_281327.jpg"><br />
LiLDizY<br />
<strong>Name:</strong> Loay Ahmed<br />Lil dizy rapper from egypt 15 years old ..
<br />Code of Nominations:<strong>1820c6dbb1</strong><br /></a><br /><center><img alt="Hit Me To Vote My Videos" hspace=3 src="http://www.starsofwww.com/images/blinkstar1.gif" width=50 height="50" border=0></center>
vote for me please!
User avatar
mc.flash
NULL
 
Posts: 171
Joined: Tue Jul 22, 2008 9:27 am
Location: In Da Club!

Postby Felheart » Sat Jun 13, 2009 1:04 am

Yeah, just pointers / complex adresses, but what I meant is
that WhiteHat may reverse the classes and structs for himself, not posting it here.
RTTI?
Read something on wikipedia about it. Seems to be sort of a help
at reversing as well as in programming... never heard that before :oops:
Felheart
Acker
 
Posts: 89
Joined: Sun Apr 27, 2008 3:05 am
Location: Germany

Postby WhiteHat » Sat Jun 13, 2009 10:34 am

No, no, no... You’ve expect too much. I haven’t been into programming that much.


All i’ve done was simple logic:
1. Obtained Demon’s Health address.
2. Auto-Hack it so i got register/address which reduce their health.
3. Multiply this register/address with certain value i’ve set before.
4. If it is me who got hurt, then multiply the damage with [0x400400]
5. If it is them who got damage, then multiply the damage with [0x400404]

I don’t remember it exactly but it looks something like this:
MULSS xmm0, dword ptr [0x400400]

of course, i had to convert it into bytes before injection since MHS doesn’t support SSE ASM yet.

Anyway, I’ll try to post the code of this multiplication later. It’s quite simple...


Felheart wrote:WhiteHat, do you just look for "fun" values? Because it seems like you are reversing the game with all classes and things :)

LoL... The real game for me has always been hacking the game itself..

:)
Last edited by WhiteHat on Sat Jun 13, 2009 1:57 pm, edited 1 time in total.
.. to boldly go where no eagle has gone before...
User avatar
WhiteHat
Elang Djawa
 
Posts: 1059
Joined: Fri Jul 21, 2006 12:49 pm
Location: Away for a while...

Postby WhiteHat » Sat Jun 13, 2009 1:56 pm

Here is the Damage Multiplier injection-code:

Code: Select all
Label( PlayerDamageMultiplier )
Label( EnemiesDamageMultiplier )
Label( OverwrittenCode )
Label( Exit )
Label( Return )


FullAccess( DevilMayCry4_DX9.exe+0x0011BFD4, 5 )
DevilMayCry4_DX9.exe+0x0011BFD4 :
jmp     0x400500
Return :

FullAccess( DevilMayCry4_DX9.exe+0x400, 512 )
DevilMayCry4_DX9.exe+0x400 :
dd      1.0f

DevilMayCry4_DX9.exe+0x404 :
dd      1.0f

DevilMayCry4_DX9.exe+0x500 :
push    ebx
mov     ebx, dword ptr [DevilMayCry4_DX9.exe+0xA558B8]
mov     ebx, dword ptr [ebx+0x24]
add     ebx, 0x15B4
cmp     esi, ebx                                       ; is player hit ?
pop     ebx
jne     PlayerDamageMultiplier

EnemiesDamageMultiplier :
db      0xF3 0x0F 0x59 0x0D 0x04 0x04 0x40 0x00        ; mulss xmm1,[00400404]
jmp     OverwrittenCode

PlayerDamageMultiplier :
db      0xF3 0x0F 0x59 0x0D 0x00 0x04 0x40 0x00        ; mulss xmm1,[00400400]

OverwrittenCode :
db      0xF3 0x0F 0x10 0x46 0x18                       ; movss xmm0,[esi+18]

Exit :
jmp Return


For some reasons i didn’t use Alloc. Forget why...

Usage:
- Copy and paste this code into Auto-Assemble. Inject...
- Create Table entry at address DevilMayCry4_DX9.exe+0x400, name it: “X Player Damage”, in Float data-type.
- Create Table entry at address DevilMayCry4_DX9.exe+0x404, name it: “X Enemies Damage”, in Float data-type.
- Alter those entry freely.
- For One Hit Kill, change X Player Damage to 1000000.0f
- For God Mode, change X Enemies Damage to 0.0f

That Injection works for me...
Please check if those Complex Addresses in previous posts are working for you before injecting this code.

Mind you of my lack ability in ASM (and othe programming too). Any corrections are welcome, and thanks in advance...
.. to boldly go where no eagle has gone before...
User avatar
WhiteHat
Elang Djawa
 
Posts: 1059
Joined: Fri Jul 21, 2006 12:49 pm
Location: Away for a while...

Postby Felheart » Wed Jun 17, 2009 2:52 am

Hey thats cool, i did that for another game too, but didn't think it was possible for DMC because of the MMX&SSE stuff.
Lol at first i thought you meant a "built-in" multiplier in the game. ^^

Did you find a free code-cave at 0x0400 ?
Why don't you use Alloc ?
Felheart
Acker
 
Posts: 89
Joined: Sun Apr 27, 2008 3:05 am
Location: Germany

Postby WhiteHat » Wed Jun 17, 2009 8:57 pm

Felheart wrote:Lol at first i thought you meant a "built-in" multiplier in the game. ^^

It’s difficult to say something you’re really wanna say in English if it is not your first language... ^^;

However, that ‘built-int multiplier’ you were talking could be exist, since there are modes in DMC which work differently in terms of damage and health... I haven’t look further into this, except i can tell that in some playing modes, those demons get their health increased by default...


Felheart wrote:Did you find a free code-cave at 0x0400 ? Why don't you use Alloc ?

Yes i examine that address several times before decided to put anything there. The reason i put the multipliers there so i can easily set/change them in-game.. I don’t know how to do that if i use Alloc: How would i put the address into the table then ? Any tips or tutorial regard this are very much appreciated... ^^
.. to boldly go where no eagle has gone before...
User avatar
WhiteHat
Elang Djawa
 
Posts: 1059
Joined: Fri Jul 21, 2006 12:49 pm
Location: Away for a while...

hi need help

Postby alejitox » Fri Jul 31, 2009 3:36 am

hi
you guys are good at it, nice job.
i need some help to make the player gauges work on the MHS
any help would be appreciated
ty
alejitox
I Ask A Lot Of Questions
 
Posts: 11
Joined: Fri Jul 31, 2009 3:34 am
Location: PANAMA

PreviousNext

Return to Others (Offline)

Who is online

Users browsing this forum: No registered users and 0 guests

cron