Go Back  
Reply
 
Thread Tools
Old 02-02-2013   #111
anaria
Homebrew Developer
 
anaria's Avatar
 
Join Date: Feb 2009
Posts: 80
Likes: 34
Liked 93 Times in 27 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
@deaphroat , again well done for your work.

I'vwe wasted my time a bit, but I’m still working on this, I’ve made some fix/improvement which hopefully should be useful.

For instance the MD5 function was only valid if you were running it on a full size file but gave wrong sum for a part of a file, I’ve asked google how I should because I know nothing about hashing and so on.

At the moment I trying to fill up a list of MD5 You can eventually help…

You may have a look here I’ve uploaded some code I use to help me in my dev, especially for all the MD5 stuff, it’s basically some copy/paste from my 0.9.6 main draft with few debugging things in it, if you want to use a MD5 routine from my code use the one from this one not from the older 0.9.5 of the NOR Dump Tool code as this old one is wrong.

In PS3Data.h you'll see that I've started to build a MD5 db based on the wiki plus some comments where I tried to get sum for each FW files, you may complete it and share your findings :D


PS: !!! I forgot to mention that in this dev-debugging code there no control for the NOR itself so do not use it as it is to confirm anything. it is just for debugging and dev, IT'S NOT VALIDATING ANYTHING !!!

Last edited by anaria; 02-02-2013 at 12:37 AM. Reason: Warning added + comment
anaria is offline   Reply With Quote
Old 02-02-2013   #112
BwE
Homebrew Developer
 
BwE's Avatar
 
Join Date: Sep 2010
Location: Australija
Posts: 873
Likes: 144
Liked 396 Times in 230 Posts
Mentioned: 219 Post(s)
Tagged: 0 Thread(s)
Originally Posted by anaria View Post
@deaphroat , again well done for your work.

I'vwe wasted my time a bit, but I’m still working on this, I’ve made some fix/improvement which hopefully should be useful.

For instance the MD5 function was only valid if you were running it on a full size file but gave wrong sum for a part of a file, I’ve asked google how I should because I know nothing about hashing and so on.

At the moment I trying to fill up a list of MD5 You can eventually help…

You may have a look here I’ve uploaded some code I use to help me in my dev, especially for all the MD5 stuff, it’s basically some copy/paste from my 0.9.6 main draft with few debugging things in it, if you want to use a MD5 routine from my code use the one from this one not from the older 0.9.5 of the NOR Dump Tool code as this old one is wrong.

In PS3Data.h you'll see that I've started to build a MD5 db based on the wiki plus some comments where I tried to get sum for each FW files, you may complete it and share your findings :D


PS: !!! I forgot to mention that in this dev-debugging code there no control for the NOR itself so do not use it as it is to confirm anything. it is just for debugging and dev, IT'S NOT VALIDATING ANYTHING !!!
no credit to me or anybody else? gee thanks.

if you want md5 validation one of my public apps does that.
BwE is offline   Reply With Quote
Old 02-02-2013   #113
deaphroat
Apprentice
 
Join Date: Oct 2011
Posts: 7
Likes: 0
Liked 2 Times in 2 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Thank BwE and thanks all ^^

For comparing dump, i don't use md5, i make a array of bit and make == on it ^^

But it's nod a good idea for Nand... Maybe i will use a md5...

I have already use Aes et Sha1 for ps3 with hashlib et Rijndael .
deaphroat is offline   Reply With Quote
Old 02-02-2013   #114
zecoxao
Member
 
zecoxao's Avatar
 
Join Date: Oct 2011
Posts: 718
Likes: 396
Liked 720 Times in 279 Posts
Mentioned: 116 Post(s)
Tagged: 0 Thread(s)
md5 is a simple digest function. it takes a message of length x and turns it into a hash of length 16 bytes (i think it's 16, someone correct me here if it's not please).

if you change one single byte of a message, the md5 will not match the previous one.
__________________
"Whoever has ears, let them hear."
zecoxao is offline   Reply With Quote
Old 02-02-2013   #115
deaphroat
Apprentice
 
Join Date: Oct 2011
Posts: 7
Likes: 0
Liked 2 Times in 2 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
With Qt it's easy for make a md5, so my 2 function for test if dump are egal it's done (Nor and Nand).
deaphroat is offline   Reply With Quote
Old 02-02-2013   #116
anaria
Homebrew Developer
 
anaria's Avatar
 
Join Date: Feb 2009
Posts: 80
Likes: 34
Liked 93 Times in 27 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
Originally Posted by BwE View Post
no credit to me or anybody else? gee thanks.

if you want md5 validation one of my public apps does that.
Meiihh, sorry for not naming you directly, I did it indirectly in my first post
"
I’d come to it shortly, but first I’d like to thanks all of you who participate to this scene, I’m not good at naming people and I’m worry to forget some.
"
Yep if I had found your source code you can be sure I would have not scratch my heads in writing my lines, but now I think my draft is good enough for this part, I just need to make a proper do of MD5 for each possible files in the core os.
anaria is offline   Reply With Quote
Old 02-02-2013   #117
BwE
Homebrew Developer
 
BwE's Avatar
 
Join Date: Sep 2010
Location: Australija
Posts: 873
Likes: 144
Liked 396 Times in 230 Posts
Mentioned: 219 Post(s)
Tagged: 0 Thread(s)
Originally Posted by anaria View Post
Meiihh, sorry for not naming you directly, I did it indirectly in my first post
"
I’d come to it shortly, but first I’d like to thanks all of you who participate to this scene, I’m not good at naming people and I’m worry to forget some.
"
Yep if I had found your source code you can be sure I would have not scratch my heads in writing my lines, but now I think my draft is good enough for this part, I just need to make a proper do of MD5 for each possible files in the core os.
Why do that when I have it? Only thing I am missing is the tvrk_pkg MD5's from within each revision's dump (not .pup).

As they change once installed. (As told by me on the wiki).
BwE is offline   Reply With Quote
Old 02-02-2013   #118
anaria
Homebrew Developer
 
anaria's Avatar
 
Join Date: Feb 2009
Posts: 80
Likes: 34
Liked 93 Times in 27 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
@zecoxao & @deaphrot, what I did wrong was to use
Click here to see full text
void MD5SumFileSection(char* SectionText, FILE *FileToRead, uint32_t Position, uint32_t Size) {
unsigned char MD5Sum[MD5_DIGEST_LENGTH];
int ByteSize;
uint32_t Cursor;
int DataWidth = 0x10;
unsigned char DataValue[DataWidth];
MD5_CTX mdContext;

MD5_Init (&mdContext);

fseek(FileToRead, Position, SEEK_SET);
for (Cursor=0;Cursor<NOR_FILE_SIZE;Cursor+=DataWidth) {
ByteSize = fread (DataValue, 1, DataWidth, FileToRead);
MD5_Update (&mdContext, DataValue, ByteSize);
}

MD5_Final (MD5Sum,&mdContext);

printf ("%s", SectionText);
for(Cursor = 0; Cursor < MD5_DIGEST_LENGTH; Cursor++)
printf("%02x", MD5Sum[Cursor]);

printf("\n");
}

instead of
Click here to see full text
void MD5SumFileSection( FILE *FileToRead, uint32_t Position, uint32_t Size, uint8_t *Sum) {
char *Buffer = malloc(Size+1);
fseek (FileToRead, Position, SEEK_SET);
fread (Buffer, Size, 1, FileToRead);
MD5 (Buffer, Size, Sum);
}

void printMD5 (uint8_t MD5result[MD5_DIGEST_LENGTH]) {
uint8_t Cursor;
for(Cursor = 0; Cursor < MD5_DIGEST_LENGTH; Cursor++)
printf("%02x",MD5result[Cursor]);
}


the result given with the first routine is valid only if you perform it on a full size but not on some part it, which is ok with the second one.


Originally Posted by BwE View Post
Why do that when I have it? Only thing I am missing is the tvrk_pkg MD5's from within each revision's dump (not .pup).

As they change once installed. (As told by me on the wiki).
Sure I've read your comments here

But I 've found no reference of any MD5 for each files of each version of the CORE OS.

But wath you are doing is not what I'm loking for for exmaple you check the MD5 of both ros0 and ros1, what I want to do is to check each files from both of them for example (probably not correct i still need to establish a correct db:
Code:
{"emer_init.self" , "3.55","ca9bbc99c645173e1f98aa66c47a4500"},
{"isoldr" , "3.55","5c7436bffc7e8d0a8e210bd0ca83cdf2"},
{"manu_info_spu_module.self" , "3.55","09a1d434dbd7197e7c3af8a7c28ca38b"},
{"aim_spu_module.self" ,"3.55", "b0ad88ee637311ae5196f1b11d43be0a"},
{"appldr" , "9d670b662be696c8460449b7efdd803e"},
{"mc_iso_spu_module.self" ,"3.55", "b5f54d9a11d1eae71f35b5907c6b9d3a"},
{"creserved_0" ,"3.55", "c1dc055ef0d6082580ac066e2b0a3c38"},
{"sb_iso_spu_module.self" ,"3.55", "811329ecdb677181b9fc5cc3564d9047"},
{"sv_iso_spu_module.self" ,"3.55", "ff6753184d15f45508c5330a6144a4d9"},
{"sc_iso.self" ,"3.55", "bc6b000f5ac5db94daee47720d0bfe6b"},
{"spu_pkg_rvk_verifier.self" ,"3.55", "e9ae2a62b4cc31750d4e56c7d5ffdd6f"},
{"lv2ldr" ,"3.55", "a597aa3d8101674856eef83ac1d0ef28"},
{"eurus_fw.bin" ,"3.55", "413b0666736e87929b346ca2b712284d"},
{"lv1.self" ,"3.55", "65a3eee4c48716674cb1c29609b5f54d"},
{"spp_verifier.self" ,"3.55", "5ffb33a6cecb99081e54a0e36e3c61af"},
{"lv2_kernel.self" ,"3.55", "3b15c14770d654fef9987e2517616d89"},
{"spu_token_processor.self" ,"3.55", "b39e13fbd6b07f65616a0355ef5cb262"},
{"me_iso_spu_module.self" ,"3.55", "d7edca0ed3749f11ee34f0f532cf5aa7"},
{"lv1ldr" ,"3.55", "3da12e2cb472eb8193309b663d7c913a"},
{"hdd_copy.self" , "90d1c8a45f6fee52219e1b14ff8c9765"},
{"spu_utoken_processor.self" ,"3.55", "b76b7244b19032a9518787d9ec827f3c"},
{"default.spp" ,"3.55", "22ababcfc027f892ad2cf4e1c9fd925c"},
{"sdk_version" ,"3.55", "0e5a2e8a68fe09481d728c227dc5a165"},
{"lv0" ,"3.55", "368f2d290c00f3cb3c5a5c8cfe584534"},
anaria is offline   Reply With Quote
Old 02-03-2013   #119
jamesst20
Member
 
Join Date: Jan 2011
Posts: 224
Likes: 24
Liked 27 Times in 20 Posts
Mentioned: 10 Post(s)
Tagged: 0 Thread(s)
Originally Posted by deaphroat View Post
@ anaria

you share, i use it ^^

I don't want became famous, just learn and sharing. And now i adapte your code for Nand. And my own, check if the dump is reversed.... ^^

And for the percentage, in first i have my function but yours is more faster...

i filled up a array of int with every byte, and make 256 count on it ^^.... It's not good with a nand 256 Mb ^^

So i take yours....Thank again.

@ jamesst20

I have begin 3, 4 month ago... I have just use the anaria code for 2 new test...

It's in C++/ Qt, compatible with Mac and Linux and I give source code for respect the Qt License.



Source code : ps3.gx-mod.com/images/news/softwares/nandTool/SourcePs3DumpValidating.rar
It's funny because I've played for fun with Java and it calculates faster then both of you :P I would say around 0.5 sec to calculate statistics :P

Envoyé depuis mon Nexus 7 avec Tapatalk
jamesst20 is offline   Reply With Quote
Old 02-03-2013   #120
anaria
Homebrew Developer
 
anaria's Avatar
 
Join Date: Feb 2009
Posts: 80
Likes: 34
Liked 93 Times in 27 Posts
Mentioned: 16 Post(s)
Tagged: 0 Thread(s)
Originally Posted by jamesst20 View Post
It's funny because I've played for fun with Java and it calculates faster then both of you :P I would say around 0.5 sec to calculate statistics :P

Envoyé depuis mon Nexus 7 avec Tapatalk
How come Java being faster than C/C++ :P
I suppose it's because your file is in buffer RAM and not a direct read from the disk !?
anaria is offline   Reply With Quote
Likes: (1)
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



PS3Hax.net is Copyright © 2010-2013.
Use of this site is governed by our Terms of Use and Privacy Policy. All Trademarks and images are owned by their respected owners.
Posts and links are subject to each author on this forum and are no way affiliated with the operations and/or opinions of ps3hax.net
All times are GMT -5. The time now is 09:20 PM.