mogaika / god_of_war_browser

https://discord.gg/u6x3Z9v6Ed
41 stars 25 forks source link

Hashes GOW2 #51

Open leonifc331 opened 3 years ago

leonifc331 commented 3 years ago

Is it possible to get the god of war 2 hashes?

mogaika commented 3 years ago

For gow1 I did it in such ways:

Problem is that different methods will extract different strings. But best way (and also simplest) is definitely a second one.

leonifc331 commented 3 years ago

For gow1 I did it in such ways:

* Inject code (via emulator) which will dump input and output parameters of hash method. I tried this first and this didn't helped much since most of strings in PS2 "pre-calculated". And I collected a lot of run-time hashes which not used in resources. Result: https://raw.githubusercontent.com/mogaika/god_of_war_browser/master/hashes.dump.txt

1. Extract all strings from executable binary file (I used simple GNU strings) and calculate hashes for them so you can lookup later. PS3 and Vita binary versions have much more strings in binary because most of strings not pre-compiled in binary probably because of different compiler version. Result: https://github.com/mogaika/god_of_war_browser/blob/master/strings.dump.txt

* Bruteforce. Only very short strings can be reverted like this.

* Reverse engineer binary. Will help to extract "composite" strings, when they formed in loop using sprintf or something. Was able to extract only few hashes this way.

Problem is that different methods will extract different strings. But best way (and also simplest) is definitely a second one.

@mogaika is it possible to translate the texts in the file strings.dump.txt? does it affect the names that appear on the console screen? I modified it but I didn't see a change

mogaika commented 3 years ago

For gow1 I did it in such ways:

* Inject code (via emulator) which will dump input and output parameters of hash method. I tried this first and this didn't helped much since most of strings in PS2 "pre-calculated". And I collected a lot of run-time hashes which not used in resources. Result: https://raw.githubusercontent.com/mogaika/god_of_war_browser/master/hashes.dump.txt

1. Extract all strings from executable binary file (I used simple GNU strings) and calculate hashes for them so you can lookup later. PS3 and Vita binary versions have much more strings in binary because most of strings not pre-compiled in binary probably because of different compiler version. Result: https://github.com/mogaika/god_of_war_browser/blob/master/strings.dump.txt

* Bruteforce. Only very short strings can be reverted like this.

* Reverse engineer binary. Will help to extract "composite" strings, when they formed in loop using sprintf or something. Was able to extract only few hashes this way.

Problem is that different methods will extract different strings. But best way (and also simplest) is definitely a second one.

@mogaika is it possible to translate the texts in the file strings.dump.txt? does it affect the names that appear on the console screen? I modified it but I didn't see a change

Which kind of text exactly you want to see? Hashed texts are ID's or specials names and should always be in english.