mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-06-06 04:48:54 +08:00
Add FlyingShineCrypt (untested)
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "25c -その箱は少女の悲鳴を漏らさない-"
|
||||
},
|
||||
"Aibo Nyuujoku": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "愛母乳辱~妄執の巨乳責めザンマイ~"
|
||||
},
|
||||
"Aisai Injoku Settai": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "愛妻淫辱接待~借金のかたに妻の調教を命じられた夫~"
|
||||
@@ -45,10 +49,18 @@
|
||||
"Key": 49,
|
||||
"Title": "僕の未来は、恋と課金と。~Charge To The Future~ [体験版] | 我的未来是恋爱与氪金 [试用版]"
|
||||
},
|
||||
"Crime Rhyme series": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "クライミライ"
|
||||
},
|
||||
"Custom Reido 4/4+/V": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "カスタム隷奴 4/4+/V"
|
||||
},
|
||||
"Daraku Koujo": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "堕落皇女~魔術師の罠に嵌った聖女~"
|
||||
},
|
||||
"Dare mo ga Kanojo o Neratteru": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "誰もが彼女を狙ってる。 | 众人觊觎的女友"
|
||||
@@ -85,6 +97,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "ハメドル白濁堕ち ~生中出しで、お仕事を貰っていいですか?~"
|
||||
},
|
||||
"Haniwari! Sayaka Ojou-sama": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "はにわり!沙耶華お嬢様~感染する股間の大きなモノ~"
|
||||
},
|
||||
"Hardcore Teacher": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "ハードコア・ティーチャー ~絶対服従へのロジック~"
|
||||
@@ -149,10 +165,22 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "淫薬依存学園~もっと…もっとちょうだい!~"
|
||||
},
|
||||
"Inaho no Mirai": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "イナホノミライ"
|
||||
},
|
||||
"Inaka no Muchi na Muchimuchi Musume": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "田舎の無知なむちむち娘"
|
||||
},
|
||||
"Inbo Rannyuu Soukan": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "淫母乱乳相姦~ボクの精子で、ママを一杯にしてあげる"
|
||||
},
|
||||
"Ingoku no Hako": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "淫獄の筺~閉じ込められた美人母娘~"
|
||||
},
|
||||
"In! Joku! Pink Ranger!!": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "淫!辱!ピンクレンジャー!! ~堕ちた変身ヒロイン~"
|
||||
@@ -161,6 +189,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "淫落カウンセリング ~夫の目の前で、妻は本性に堕ちてゆく~"
|
||||
},
|
||||
"Inraku no Ketsuzoku": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "淫落の血族~禁断の呪縛~"
|
||||
},
|
||||
"Inshi Reizoku": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "淫姉隷属 ~影に潜んだ愛欲と支配~"
|
||||
@@ -169,6 +201,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "地味めな侍女さんのお仕事セックス~お嬢様に代わってお相手します~"
|
||||
},
|
||||
"Jokyoushi Rinkan no Kyoushitsu": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "女教師 輪姦の教室"
|
||||
},
|
||||
"Juurin! Orc Gakuen!": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "蹂躙!オーク学園! ~転校生は褐色ビッチな女勇者!?~"
|
||||
@@ -185,11 +221,23 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "カホゴな寮母の射精管理 ~ちゃんと我慢してくださいね?~"
|
||||
},
|
||||
"Kaiware!": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "かいわれっ!"
|
||||
},
|
||||
"Kamidanomi Shisugite Ore no Mirai ga Yabai.": {
|
||||
"$type": "XorCrypt",
|
||||
"Key": 205,
|
||||
"Title": "神頼みしすぎて俺の未来がヤバい。 | 求神太多我的未来糟糕了 | 太依赖咒术的我未来堪忧。"
|
||||
},
|
||||
"Kanjuku Sakuranbou!": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "完熟☆さくらん棒ッ! ~ヒキオタ達の姉妹交換~"
|
||||
},
|
||||
"Kanojo-tachi no Taboo": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "彼女たちの禁忌"
|
||||
},
|
||||
"Kanpeki Seitokaichou no Himitsu no Seiheki": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "完璧生徒会長の秘密の性癖 ~高嶺の花の彼女をM女に開花させてやる~"
|
||||
@@ -226,6 +274,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "りとるほーる ~俺の娘がこんなに……なハズがない | Littlehole~我的女儿不可能这么……"
|
||||
},
|
||||
"Love Love Boin series": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "らぶらぶボイン"
|
||||
},
|
||||
"Mama no Okugai Shuuchi Lesson": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "ママの屋外羞恥レッスン ~視線が快楽に変る時…~"
|
||||
@@ -238,6 +290,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "愛娘は、マゾ性隷 ~娘だからって遠慮しないでね?~"
|
||||
},
|
||||
"Megami Ryoujoku ~Paizuri Hime Verdandi~": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "女神凌辱 ~パイズリ姫ベルダンディー~"
|
||||
},
|
||||
"Minarai Taimashi Maji de Ikimasu!": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "見習い退魔師 本気でイキますっ!"
|
||||
@@ -246,6 +302,10 @@
|
||||
"$type": "MizukakeCrypt",
|
||||
"Title": "みずのかけら -once summer of islet-"
|
||||
},
|
||||
"Mizukoi": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "水恋~みずこい~"
|
||||
},
|
||||
"Momojiri Instructor Netori Lesson": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "桃尻インストラクター寝取りレッスン ~競泳水着でえろざんまい~"
|
||||
@@ -279,7 +339,7 @@
|
||||
"Title": "お前の妻は、オレの淫乱肉嫁 ~お隣さんは欲求不満でした~"
|
||||
},
|
||||
"Omana 2: Omaenchi Moeteruzo": {
|
||||
"$type": "HashCrypt",
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "おまな2 おまえんち萌えてるぞ"
|
||||
},
|
||||
"Oppai Cafe ~Oyako de Cos Chichi~": {
|
||||
@@ -310,10 +370,18 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "夫に言えない義父との姦淫 ~嫌なのに忘れられなくなりそう~"
|
||||
},
|
||||
"Ouka Ryouran": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "桜花繚乱"
|
||||
},
|
||||
"Oyako Koukan": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "母娘肛姦 ~私のお尻に染みついていく雄の匂い~"
|
||||
},
|
||||
"Oyako Ninjutsu Kunoichi PonPon!!": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "母娘妊術くのいちPonPon!!"
|
||||
},
|
||||
"Oyako no Himitsu": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "父娘の秘密 ~妻に言えない親子の関係~"
|
||||
@@ -330,6 +398,21 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "パパ大好き!と言ってくれ…~反抗期の娘を催眠アプリで狂愛しつけ~"
|
||||
},
|
||||
"Princess Saga": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "プリンセスサーガ"
|
||||
},
|
||||
"Re:": {
|
||||
"$type": "FlyingShineCrypt"
|
||||
},
|
||||
"Saikyou Chikan Densha": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "埼狂痴漢電車~7人の獲物達~"
|
||||
},
|
||||
"Sailor Fuku Shinryou Tsumaka": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "セーラー服心療妻科~内緒のえっちなカウンセリング~"
|
||||
},
|
||||
"Sakura Sakura": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "さくらさくら"
|
||||
@@ -350,6 +433,14 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "色情教団 | 妃神会秘史"
|
||||
},
|
||||
"Shimai Soukan ~Kindan no Kakeizu~": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "実姉妹 ~濡れた相姦図~"
|
||||
},
|
||||
"Shin'yuu no Kyonyuu Mama to Nakadashi Seikatsu": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "親友の巨乳ママと中出し性活~こんなに射精してちゃ孕んじゃったね"
|
||||
},
|
||||
"Shirouto Yanmama, Kosatsu AV Debut": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "素人ヤンママ、個撮AVデビュー ~見てな、女はド胸だぜ!~"
|
||||
@@ -358,6 +449,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "してなさそうで、している彼女のしていない事~キミの初めてになってやる~"
|
||||
},
|
||||
"Shokusai no Miyako": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "触祭の都"
|
||||
},
|
||||
"Shokushu Ouji no Nikuyome Sagashi": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "触手王子の肉嫁探し~母と姉弟の終わらない絶頂地獄~"
|
||||
@@ -370,10 +465,18 @@
|
||||
"$type": "MizukakeCrypt",
|
||||
"Title": "そらいろの雫"
|
||||
},
|
||||
"Soukan Chiryou Byoutou": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "相姦恥療病棟 ~ナースはママで、女医は叔母"
|
||||
},
|
||||
"Sousei no Himegimi": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "双性の姫君 ~ふたなり姉妹と魔王の求愛~"
|
||||
},
|
||||
"Swan Song": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "スワンソング"
|
||||
},
|
||||
"Sweet ☆ Switch": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "すうぃ~と☆SwitcH ~まじわるシセンでとろけるカラダ~"
|
||||
@@ -401,6 +504,10 @@
|
||||
"$type": "HashCrypt",
|
||||
"Title": "隣妻2 ~夫じゃできないこといっぱいシて~"
|
||||
},
|
||||
"Tsuma Kai -Tsuma Gai-": {
|
||||
"$type": "FlyingShineCrypt",
|
||||
"Title": "貸し出し妻、満里奈の“ネトラセ”報告 外伝1 ―女子校生、満里奈の性感開発―"
|
||||
},
|
||||
"Tsuma no Sobo wa": {
|
||||
"$type": "HashCrypt",
|
||||
"Title": "妻の祖母は、まだまだ現役超美熟女~孫婿ちゃん、寂しい時にはいつでもいらっしゃい~"
|
||||
|
||||
@@ -68,6 +68,7 @@ enum CryptType {
|
||||
XorCrypt {
|
||||
key: u8,
|
||||
},
|
||||
FlyingShineCrypt,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
@@ -86,6 +87,7 @@ impl Schema {
|
||||
CryptType::MizukakeCrypt => Box::new(MizukakeCrypt::new()),
|
||||
CryptType::HashCrypt => Box::new(HashCrypt::new()),
|
||||
CryptType::XorCrypt { key } => Box::new(XorCrypt::new(key)),
|
||||
CryptType::FlyingShineCrypt => Box::new(FlyingShineCrypt::new()),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -412,6 +414,75 @@ impl<R: Read> Read for XorCryptReader<R> {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct FlyingShineCrypt {}
|
||||
|
||||
impl FlyingShineCrypt {
|
||||
pub fn new() -> Self {
|
||||
Self {}
|
||||
}
|
||||
|
||||
fn adjust(&self, hash: u32) -> (u8, u32) {
|
||||
let mut shift = hash & 0xFF;
|
||||
if shift == 0 {
|
||||
shift = 0xF;
|
||||
}
|
||||
let mut key = ((hash >> 8) & 0xFF) as u8;
|
||||
if key == 0 {
|
||||
key = 0xF0;
|
||||
}
|
||||
(key, shift)
|
||||
}
|
||||
}
|
||||
|
||||
impl Crypt for FlyingShineCrypt {
|
||||
fn decrypt_supported(&self) -> bool {
|
||||
true
|
||||
}
|
||||
fn decrypt_seek_supported(&self) -> bool {
|
||||
true
|
||||
}
|
||||
fn decrypt<'a>(
|
||||
&self,
|
||||
entry: &Xp3Entry,
|
||||
cur_seg: &Segment,
|
||||
stream: Box<dyn Read + 'a>,
|
||||
) -> Result<Box<dyn ReadDebug + 'a>> {
|
||||
Ok(Box::new(FlyingShineCryptReader::new(
|
||||
stream,
|
||||
cur_seg,
|
||||
self.adjust(entry.file_hash),
|
||||
)))
|
||||
}
|
||||
fn decrypt_with_seek<'a>(
|
||||
&self,
|
||||
entry: &Xp3Entry,
|
||||
cur_seg: &Segment,
|
||||
stream: Box<dyn ReadSeek + 'a>,
|
||||
) -> Result<Box<dyn ReadSeek + 'a>> {
|
||||
Ok(Box::new(FlyingShineCryptReader::new(
|
||||
stream,
|
||||
cur_seg,
|
||||
self.adjust(entry.file_hash),
|
||||
)))
|
||||
}
|
||||
}
|
||||
|
||||
seek_reader_key_impl!(FlyingShineCryptReader<T>, (u8, u32));
|
||||
|
||||
impl<R: Read> Read for FlyingShineCryptReader<R> {
|
||||
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
|
||||
let (xor, shift) = self.key;
|
||||
let readed = self.inner.read(buf)?;
|
||||
for t in (&mut buf[..readed]).iter_mut() {
|
||||
*t ^= xor;
|
||||
*t = t.rotate_right(shift);
|
||||
}
|
||||
self.pos += readed as u64;
|
||||
Ok(readed)
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_deserialize_crypt() {
|
||||
for (key, schema) in CRYPT_SCHEMA.iter() {
|
||||
|
||||
Reference in New Issue
Block a user