(Cmvs): another encryption scheme.

This commit is contained in:
morkt 2016-10-11 01:35:36 +04:00
parent a648aff032
commit 010384fbfa
2 changed files with 27 additions and 3 deletions

View File

@ -2,7 +2,7 @@
//! \date Mon Nov 30 13:29:27 2015 //! \date Mon Nov 30 13:29:27 2015
//! \brief Cmvs engine MD5 update algorithm. //! \brief Cmvs engine MD5 update algorithm.
// //
// Copyright (C) 2015 by morkt // Copyright (C) 2015-2016 by morkt
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
@ -27,7 +27,7 @@ using GameRes.Utility;
namespace GameRes.Formats.Cmvs namespace GameRes.Formats.Cmvs
{ {
public enum Md5Variant { A, B, Chrono, Memoria } public enum Md5Variant { A, B, Chrono, Memoria, Natsu }
public abstract class MD5 : Cryptography.MD5Base public abstract class MD5 : Cryptography.MD5Base
{ {
@ -44,6 +44,7 @@ namespace GameRes.Formats.Cmvs
case Md5Variant.B: return new Md5VariantB(); case Md5Variant.B: return new Md5VariantB();
case Md5Variant.Chrono: return new Md5Chrono(); case Md5Variant.Chrono: return new Md5Chrono();
case Md5Variant.Memoria: return new Md5Memoria(); case Md5Variant.Memoria: return new Md5Memoria();
case Md5Variant.Natsu: return new Md5Natsu();
default: throw new System.ArgumentException ("Unknown MD5 variant", "variant"); default: throw new System.ArgumentException ("Unknown MD5 variant", "variant");
} }
} }
@ -131,4 +132,23 @@ namespace GameRes.Formats.Cmvs
data[3] = m_state[0]; data[3] = m_state[0];
} }
} }
public class Md5Natsu : MD5
{
protected override void InitState ()
{
m_state[0] = 0x63FE9A7C;
m_state[1] = 0xC2B93E98;
m_state[2] = 0xEF91BA5C;
m_state[3] = 0x72C9A82E;
}
protected override void SetResult (uint[] data)
{
data[0] = m_state[1] + 0x45876329;
data[1] = m_state[2] ^ 0x54F36D6C;
data[2] = m_state[3] + 0x4387A749;
data[3] = m_state[0] ^ 0xE3F9A742;
}
}
} }

View File

@ -465,6 +465,7 @@ Oto☆Puri<br/>
Prawf Clwyd<br/> Prawf Clwyd<br/>
Rakuen no Rukia ~Blood Moon Rising~<br/> Rakuen no Rukia ~Blood Moon Rising~<br/>
Samayou Mitama ni Yasuragi no Toki wo<br/> Samayou Mitama ni Yasuragi no Toki wo<br/>
School Five ~Itsutsu no Himitsu no Monogatari~<br/>
Time Trouble ~Marie ni Kubikkake~<br/> Time Trouble ~Marie ni Kubikkake~<br/>
</td></tr> </td></tr>
<tr><td>*.dat</td><td>-</td><td>No</td><td>Ail</td><td> <tr><td>*.dat</td><td>-</td><td>No</td><td>Ail</td><td>
@ -881,6 +882,7 @@ Chrono Clock<br/>
Hapymaher<br/> Hapymaher<br/>
Haruiro Ouse<br/> Haruiro Ouse<br/>
Memoria<br/> Memoria<br/>
Natsu ni Kanaderu Bokura no Uta<br/>
</td></tr> </td></tr>
<tr class="last"><td>*.pb3</td><td><tt>PB3B</tt></td><td>No</td></tr> <tr class="last"><td>*.pb3</td><td><tt>PB3B</tt></td><td>No</td></tr>
<tr class="odd"><td>*.g2<br/>*.stx</td><td>-</td><td>No</td><td rowspan="2">GLib2</td><td rowspan="2"> <tr class="odd"><td>*.g2<br/>*.stx</td><td>-</td><td>No</td><td rowspan="2">GLib2</td><td rowspan="2">
@ -1086,8 +1088,9 @@ Kuraibito<br/>
Natsu Doki! Harem<br/> Natsu Doki! Harem<br/>
Naze ka Kanojo ga Boku ni Ecchi o Sematte Kuru Ken<br/> Naze ka Kanojo ga Boku ni Ecchi o Sematte Kuru Ken<br/>
Onna Kyoushi Suzune<br/> Onna Kyoushi Suzune<br/>
Oshioki ~Gakuen Reijou Kousei Keikaku~<br/>
Ore Maou! ~Kudake Chitta Tamashii<br/> Ore Maou! ~Kudake Chitta Tamashii<br/>
Oshioki ~Gakuen Reijou Kousei Keikaku~<br/>
Ouma no Shoku ~Sei ni Tsukaeshi Yami no Guuzou~<br/>
Volley Coaching!<br/> Volley Coaching!<br/>
Zoku Etsuraku no Tane<br/> Zoku Etsuraku no Tane<br/>
</td></tr> </td></tr>
@ -1177,6 +1180,7 @@ Lost Child<br/>
<tr class="odd last"><td>*.esd</td><td><tt>ESD</tt></td><td>No</td></tr> <tr class="odd last"><td>*.esd</td><td><tt>ESD</tt></td><td>No</td></tr>
<tr><td>*.pak</td><td><tt>NEKOPACK4A</tt></td><td>No</td><td>NekoSDK</td><td> <tr><td>*.pak</td><td><tt>NEKOPACK4A</tt></td><td>No</td><td>NekoSDK</td><td>
In Vitro Shoujo -Aragaishi Junshin Naru Shoujo-<br/> In Vitro Shoujo -Aragaishi Junshin Naru Shoujo-<br/>
Shirudaku Settai Okawari Ippaime<br/>
</td></tr> </td></tr>
<tr class="odd"><td>*.pcf</td><td><tt>PackCode</tt></td><td>No</td><td rowspan="2">Symphony</td><td rowspan="2"> <tr class="odd"><td>*.pcf</td><td><tt>PackCode</tt></td><td>No</td><td rowspan="2">Symphony</td><td rowspan="2">
Tiara<br/> Tiara<br/>