Page 1 of 1

Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Sun Dec 27, 2009 7:08 pm
by mentikadr
Well well well. Hello to all at first.
I started to play the chicken invaders 3 and you know is not the game a like to play is the adventure to find variables and hack the game.
But but but i didn't found yet variables like : life , bombs, power up or power gun.
I searched with MHS6 and even with CE but is very hard to find them.
SO plz help me with giving me a way how to find them, coz I found even trainers for this game but they not do work.

With respect for all Menti

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Mon Dec 28, 2009 9:36 am
by WhiteHat
CHICKEN INVADERS, Revenge of The Yolk...

Image

When this screen shot was taken, i had two addresses with their values in my MHS Main List (table):
- [0x27CF694] = 4195728866
- [0x27CF718] = 4195719917
(I modified the first address before to obtain 9999 lives, and following was how i made so.)

I got those addresses from Unknown Search followed by Same/Different Sub-Search...

When i lost one live, both addresses were written by these codes:
Code: Select all
00498AB0 | 8B81 04010000 | mov     eax, dword ptr [ecx+104] |
00498AB6 | 3381 80000000 | xor     eax, dword ptr [ecx+80]  |
00498ABC | C3            | retn                             |

while:
[ecx+104] = 0x27CF718
[ecx+080] = 0x27CF694

The code conducts bitwise operation XOR between those addresses:
[0x27CF718] XOR [0x27CF694]

So, in MHS Expression Evaluator, i put: [0x27CF718]^[0x27CF694], and the result was 9999.
^’ = bitwise operator XOR. Refer to MHS help for detail info...

I haven’t search for other values but it is likely the game uses same method to hide their real values. And this is as much as i can help with...


By the way, this is similar case to some old discussion: Bengal - Game of Gods.
I wonder if they are developed with the same engine...

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Wed Dec 30, 2009 6:01 am
by mentikadr
WhiteHat wrote:CHICKEN INVADERS, Revenge of The Yolk...

Image

When this screen shot was taken, i had two addresses with their values in my MHS Main List (table):
- [0x27CF694] = 4195728866
- [0x27CF718] = 4195719917
(I modified the first address before to obtain 9999 lives, and following was how i made so.)

I got those addresses from Unknown Search followed by Same/Different Sub-Search...

When i lost one live, both addresses were written by these codes:
Code: Select all
00498AB0 | 8B81 04010000 | mov     eax, dword ptr [ecx+104] |
00498AB6 | 3381 80000000 | xor     eax, dword ptr [ecx+80]  |
00498ABC | C3            | retn                             |

while:
[ecx+104] = 0x27CF718
[ecx+080] = 0x27CF694

The code conducts bitwise operation XOR between those addresses:
[0x27CF718] XOR [0x27CF694]

So, in MHS Expression Evaluator, i put: [0x27CF718]^[0x27CF694], and the result was 9999.
^’ = bitwise operator XOR. Refer to MHS help for detail info...

I haven’t search for other values but it is likely the game uses same method to hide their real values. And this is as much as i can help with...


By the way, this is similar case to some old discussion: Bengal - Game of Gods.
I wonder if they are developed with the same engine...


Tell me more about the steps you took to search value how many sub-search did you do

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Wed Dec 30, 2009 10:39 pm
by WhiteHat
Started with Searching for Unknown value, followed by many many Same/Different from before Sub-Search:
- Started a new game > Search for Unknown value, Unsigned Long.
- I bumped the chicken, lost one live > Sub-search for different from before values.
- I stayed alive, keeping my lives count > Sub-Search for same as before values.
- Repeated the sub-search steps several times until few addresses found...

I did not say that the scanning was easy. In fact i was failed for several scanning (score, food, etc) before came up with that finding after which i use MHS Auto-Hack to ‘decrypt’ the method...

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Fri Jan 01, 2010 5:36 am
by mentikadr
Yes yes but how you used auto-hack is this the right reference http://memoryhacking.com/forums/viewtopic.php?t=2290

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Fri Jan 01, 2010 12:51 pm
by WhiteHat
Yes it is.

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Sat Jan 02, 2010 6:01 am
by mentikadr
Hey one good news is that a found the address that changes the powergun, I mean the address that increases powergun.
All you have to do is to start a new game.
In the first boss attack you have
5 lifes
0 bombs
10 powerguns
0 chicken meat

So start MHS, attach CI3.RWG at process, search unsigned long with exact value, put nr. 10 of powergun.
die once then you will have 4 lifes and 5 powerguns. So search again in sub-search 5
and you will have 3 addresses, so put them all 3 addresses value for example 100 and lock them.
One more thing, this is the way to find only powergun because to find lifes you have to use other way to find them.
This is it.

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Sun Jan 03, 2010 11:23 am
by WhiteHat
That’s clever. I’ll try it soon when i get home...
Thanks for sharing the steps... :wink:

-------------------------------------------------------------------------------------
EDIT:

It turn out to be a fake value which only appear so on-screen. Even if we lock it to
any higher value, it won’t affect the Gun’s Damage. It uses different function to calculate
its final value than the live one...

However, after several tries, i can say that Lives, Rockets, and Foods are processed by
the same function i mentioned in my earlier posts...

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Mon Jan 11, 2010 9:33 am
by CoMPMStR
I tried hacking this game a while back and could only find the weapon overheat, but thanks to WhiteHat's submission I found the rest very easily.

To find the overheat meter just start a game, then before you shoot anything (when the meter is empty) search for 1 [float type]. Shoot some to increase the meter then subsearch decreased, repeat until you've narrowed it down enough.

Weapon power (the bolt symbol) is an exact search, just as mentikadr suggested, but since the game stores each weapon type differently it's hard to pinpoint the exact address (sometimes the correct one will change while others will stay). My lssave has no weapon overheat, max weapon power, and max everything else. I even included a weapon type hack that gives you any weapon when you pick up a bonus weapon power item (the rainbow atom thing). The weapon types are:

Code: Select all
0 = red (Ion Blaster)
1 = green (Neutron Gun)
2 = yellow (Laser Cannon)
3 = dark blue (Vulcan Chaingun)
4 = light blue (Lightning Frier)
5 = pink (Plasma Rifle)
6 = black (Forks)


Just double click on the weapon type entry in the list, then open the Auto Assemble tab. You should see this toward the middle:

Code: Select all
jmpwep:
mov dword ptr [edx+290], 6
mov eax, dword ptr [edx+290]
jmp 0041E8A1


The line that you can change is mov dword ptr [edx+290], 6, 6 will give you the fork weapon, changing it above 6 will crash the game but can be changed from 0-6. Here's the link.

Also the max stuff entry should only be enabled when you need it, otherwise it may crash the game. If you have at least 1 missile just enable it, then fire a missile, then disable it. Same for lives/food, but if you use it for food it will modify score too. If you need lives just get hit by an egg then disable it, hitting a chicken will modify score too. Enjoy!

Re: Chicken Invaders 3 v3.41 Roty. How to find variables ?

PostPosted: Thu Jan 14, 2010 7:32 pm
by WhiteHat
Almost miss this topic over...

Thanks for sharing !