Since it is my first hacking project I try to do something easy.
I will show all the processes I done to hack this Pikachu volleyball game.
There might be some better approaches.
I will be very happy if anyone can give my some suggestions or ideas.
__________________________________________________ _______________
First, the Pikachu volleyball game is a game of my childhood.
The game is old, simple, and very friendly for newbies like me.
I play the game for more then ten years, and that's why I use the game
for my first project.
A screenshot of the game
(Is it correct that the attached picture also need approved to see?
or it is me who just misunderstand how to post a thread.)
__________________________________________________ _______________
I want to write a program that can change the score of the game.
I use Cheat Engine to try to locate the memory address of the score.
I found that score of the left side is always 0x????0B24.
Score of the right side is always 0x????0B28.
However, each time I start the program, the ???? of the memory address is
always different.
I search for the problem and found that a lot of similar questions had already
been asked in MPGH.
The advisers always told the questioner to find the pointer of the memory
address and the questioners always didn't get it.
I am one of the person who just didn't get it.
My question is:
Yeah, the memory address of the pointer is static.
But even if I know the pointers' address, I just don't know how to point to
the address I want to locate.
Anyway, programmers are people who solve problems.
In the research, I found that whatever I did to the game, a fragment of the
memory which always located in front of the target memory address just
won't changed.
After double checked that the absolute distance from the fragment to the
scores memory address is always the same, I come out with another approach.
__________________________________________________ _______________
Whenever my program start and detected that the Pikachu volleyball game
is started, the program will search for the specific fragment in the memory.
After found the specific fragment, I can easily locate the memory address of
the scores in the game.
Since the later four letters of the target Hex address just won't change, the
FOR loop I wrote loops from 0x0000 to 0xFFFF and combined with the later
four letters of the target fragment.
__________________________________________________ _______________
Screenshot of my program with PIKA_V.exe
virusscan scanresult: aff256eb2434c86d3d5c6e7150342250c11112e0
virustotal file: 5247e12bbed9b4c7e3ae615697a63764204dea6ca6e3452058 ec7a0ab730b027/analysis/1377506357/
Two Virus Scan
(How can I post two virus scan without the allowance to post link?)
Note:
The program only works with the Pikachu volleyball game be named as PIKA_V.exe.
Download the game yourself, the attachment only contains my code.
Special Thanks to Jorndel for his MemoryReadWrite Class.