diff --git a/src/scripts/kirikiri/archive/xp3/archive.rs b/src/scripts/kirikiri/archive/xp3/archive.rs index d53a61d..5bc25d9 100644 --- a/src/scripts/kirikiri/archive/xp3/archive.rs +++ b/src/scripts/kirikiri/archive/xp3/archive.rs @@ -93,6 +93,9 @@ impl PartialEq<&[u8; 4]> for PropTag { impl ExtraProp { pub fn is_filename_hash(&self) -> bool { self.tag == CHUNK_HNFN + || self.tag == CHUNK_SMIL + || self.tag == CHUNK_ELIF + || self.tag == CHUNK_YUZU } } diff --git a/src/scripts/kirikiri/archive/xp3/consts.rs b/src/scripts/kirikiri/archive/xp3/consts.rs index 04df9f7..4706ed0 100644 --- a/src/scripts/kirikiri/archive/xp3/consts.rs +++ b/src/scripts/kirikiri/archive/xp3/consts.rs @@ -8,6 +8,9 @@ pub const CHUNK_SEGM: &[u8; 4] = b"segm"; pub const CHUNK_ADLR: &[u8; 4] = b"adlr"; pub const CHUNK_HNFN: &[u8; 4] = b"hnfn"; pub const CHUNK_TIME: &[u8; 4] = b"time"; +pub const CHUNK_SMIL: &[u8; 4] = b"smil"; +pub const CHUNK_ELIF: &[u8; 4] = b"eliF"; +pub const CHUNK_YUZU: &[u8; 4] = b"Yuzu"; // Index entry flags pub const TVP_XP3_INDEX_ENCODE_METHOD_MASK: u8 = 0x07; diff --git a/src/scripts/kirikiri/archive/xp3/crypt.json b/src/scripts/kirikiri/archive/xp3/crypt.json index 59412cf..33f802b 100644 --- a/src/scripts/kirikiri/archive/xp3/crypt.json +++ b/src/scripts/kirikiri/archive/xp3/crypt.json @@ -1,4 +1,23 @@ { + "'&' -Sora no Mukou de Sakimasu you ni-": { + "$type": "CxEncryption", + "Mask": 715, + "Offset": 1745, + "PrologOrder": "AgAB", + "OddBranchOrder": "AQIEAwUA", + "EvenBranchOrder": "BwQCBgUAAwE=", + "TpmFileName": "plugin/and_sora.tpm", + "Title": "‘&’ - 空の向こうで咲きますように - | ‘&’-愿绽放在天空彼岸-" + }, + "11eyes": { + "$type": "CxEncryption", + "Mask": 491, + "Offset": 495, + "PrologOrder": "AAEC", + "OddBranchOrder": "AAECBQME", + "EvenBranchOrder": "AQYDBAcFAgA=", + "TpmFileName": "plugin/11eyes.tpm" + }, "25c -Sono Hako wa Shoujo no Himei o Morasanai-": { "$type": "HashCrypt", "Title": "25c -その箱は少女の悲鳴を漏らさない-" @@ -22,6 +41,16 @@ "EvenBranchOrder": "BQcBBgMCAAQ=", "ControlBlockName": "9nine_ep1_sekai.bin" }, + "Ah, Ojou-sama": { + "$type": "CxEncryption", + "Mask": 353, + "Offset": 1481, + "PrologOrder": "AAEC", + "OddBranchOrder": "AQMCAAQF", + "EvenBranchOrder": "AQYEAAMHBQI=", + "TpmFileName": "plugin/cxdec.tpm", + "Title": "ああっお嬢様っ" + }, "Aibo Nyuujoku": { "$type": "FlyingShineCrypt", "Title": "愛母乳辱~妄執の巨乳責めザンマイ~" @@ -30,10 +59,40 @@ "$type": "HashCrypt", "Title": "愛妻淫辱接待~借金のかたに妻の調教を命じられた夫~" }, + "Akazukin to Mayoi no Mori": { + "$type": "CxEncryption", + "Mask": 369, + "Offset": 1723, + "PrologOrder": "AQIA", + "OddBranchOrder": "AgAFAQME", + "EvenBranchOrder": "AQQCAwAHBgU=", + "TpmFileName": "plugin/akazukin.tpm", + "Title": "赤ずきんと迷いの森" + }, + "Akuratsu ~Chijoku no Yuri Shimai~": { + "$type": "CxEncryption", + "Mask": 531, + "Offset": 1139, + "PrologOrder": "AQAC", + "OddBranchOrder": "AQQAAwIF", + "EvenBranchOrder": "BQQBAAcGAgM=", + "ControlBlockName": "akuratsu.bin", + "Title": "あくらつ~恥辱の百合姉妹~" + }, "Ama Koi Syrups": { "$type": "HashCrypt", "Title": "あま恋シロップス ~恥じらう恋心でシたくなる甘神様の恋祭り~ | 甘神大人的糖浆恋祭" }, + "Amairo*Islenauts": { + "$type": "CxEncryption", + "Mask": 548, + "Offset": 1442, + "PrologOrder": "AAEC", + "OddBranchOrder": "BQMEAAEC", + "EvenBranchOrder": "BAIDBQcGAQA=", + "TpmFileName": "plugin/AmairoIsleNauts.tpm", + "Title": "天色*アイルノーツ | 天色幻想岛" + }, "Anata no Milk Kudasai na": { "$type": "HashCrypt", "Title": "あなたの精液くださいな ~私とボクとどっちがお好み?~" @@ -56,6 +115,16 @@ "$type": "HashCrypt", "Title": "ばぁばとママとの超熟母娘丼 ~3世代での家庭内エッチ~ | 爱你深至夏海蔚蓝" }, + "Bakuretsu Otome Sexy Mary": { + "$type": "CxEncryption", + "Mask": 531, + "Offset": 1139, + "PrologOrder": "AQAC", + "OddBranchOrder": "AQQAAwIF", + "EvenBranchOrder": "BQQBAAcGAgM=", + "ControlBlockName": "bakuretsu.bin", + "Title": "爆裂乙女SEXYマリィ" + }, "Bakusou Josou Keikaku": { "$type": "HashCrypt", "Title": "爆走女装計画~もしも俺が女装させられてレディースに入隊させられたら~" @@ -78,6 +147,66 @@ "Key": 49, "Title": "僕の未来は、恋と課金と。~Charge To The Future~ [体験版] | 我的未来是恋爱与氪金 [试用版]" }, + "Chikan Yuugi": { + "$type": "CxEncryption", + "Mask": 531, + "Offset": 1139, + "PrologOrder": "AQAC", + "OddBranchOrder": "AQQAAwIF", + "EvenBranchOrder": "BQQBAAcGAgM=", + "ControlBlockName": "chikan.bin", + "Title": "痴漢遊戯" + }, + "Clover Day's": { + "$type": "CxEncryption", + "Mask": 443, + "Offset": 1197, + "PrologOrder": "AAIB", + "OddBranchOrder": "AwUCAQQA", + "EvenBranchOrder": "BwEABgMCBAU=", + "TpmFileName": "plugin/cloverdays.tpm", + "Title": "幸运草的约定" + }, + "Colorful☆Cure": { + "$type": "CxEncryption", + "Mask": 739, + "Offset": 1816, + "PrologOrder": "AAEC", + "OddBranchOrder": "AgAFAwEE", + "EvenBranchOrder": "AQAHBAIDBQY=", + "TpmFileName": "カラフル☆きゅあー.tpm", + "Title": "カラフル☆きゅあ~ | 缤纷少女 Colorful Cure" + }, + "Concerto Note": { + "$type": "CxEncryption", + "Mask": 423, + "Offset": 1226, + "PrologOrder": "AgAB", + "OddBranchOrder": "AAIEAwEF", + "EvenBranchOrder": "AAYCBAUBAwc=", + "ControlBlockName": "concerto.bin", + "Title": "コンチェルトノート" + }, + "Corona Blossom vol.1": { + "$type": "CxEncryption", + "Mask": 586, + "Offset": 1374, + "PrologOrder": "AAIB", + "OddBranchOrder": "AAMBBAIF", + "EvenBranchOrder": "BgcCBQMAAQQ=", + "ControlBlockName": "corona1.bin", + "Title": "コロナ・ブロッサム Vol.1: Gift From the Galaxy | Corona Blossom-日冕之华- vol.1 来自银河的礼物 | 日冕花开 Vol 1" + }, + "Coμ": { + "$type": "CxEncryption", + "Mask": 419, + "Offset": 182, + "PrologOrder": "AAEC", + "OddBranchOrder": "BAMCAQUA", + "EvenBranchOrder": "AAcFBgMBBAI=", + "ControlBlockName": "comyu.bin", + "Title": "コミュ - 黒い竜と優しい王国 - | Co:μ-黑龙与温柔的王国" + }, "Crime Rhyme series": { "$type": "FlyingShineCrypt", "Title": "クライミライ" @@ -99,10 +228,29 @@ "Key": 53, "Title": "出会って5分は俺のもの! 時間停止と不可避な運命 | 5分钟的邂逅!时间停止与不可避免的命运 | 相见5分属于我!时间停止不可避的命运" }, + "Deep One": { + "$type": "CxEncryption", + "Mask": 625, + "Offset": 1691, + "PrologOrder": "AgAB", + "OddBranchOrder": "AAIEAQUD", + "EvenBranchOrder": "BQYBBwMEAgA=", + "ControlBlockName": "deepone.bin", + "Title": "Deep One -ディープワン- | 深渊的来访者" + }, "Do-M Imouto O-nedari Kojin Lesson": { "$type": "HashCrypt", "Title": "ドM妹おねだり個人レッスン~私のSEX家庭教師お兄ちゃん~ | 义妹私教辅导~哥哥我是家庭教师" }, + "Dracu-Riot!": { + "$type": "CxEncryption", + "Mask": 752, + "Offset": 1048, + "PrologOrder": "AgAB", + "OddBranchOrder": "AAMFBAIB", + "EvenBranchOrder": "BQMAAgEEBgc=", + "TpmFileName": "plugin/dracuriot.tpm" + }, "Fate/stay night": { "$type": "FateCrypt" }, diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/akuratsu.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/akuratsu.bin new file mode 100644 index 0000000..025768f Binary files /dev/null and b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/akuratsu.bin differ diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/bakuretsu.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/bakuretsu.bin new file mode 100644 index 0000000..025768f Binary files /dev/null and b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/bakuretsu.bin differ diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/chikan.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/chikan.bin new file mode 100644 index 0000000..025768f Binary files /dev/null and b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/chikan.bin differ diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/comyu.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/comyu.bin new file mode 100644 index 0000000..d726c4b Binary files /dev/null and b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/comyu.bin differ diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/concerto.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/concerto.bin new file mode 100644 index 0000000..e136f59 Binary files /dev/null and b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/concerto.bin differ diff --git a/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/corona1.bin b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/corona1.bin new file mode 100644 index 0000000..7794999 --- /dev/null +++ b/src/scripts/kirikiri/archive/xp3/crypt/cx_cb/corona1.bin @@ -0,0 +1,16 @@ +b|sNnIg QJĒD%~"0A#h dR{ɔylvx*NO7-=o]owYR؃>xȡv}S uGg!=$!W5gy2|aj/VRD<@6BLKiq\i߰Ƀ א&fMƓO})*>.sCqR` =W*ܒS6v]ObtToֹUE&CZgO`zf:e;$v:lJ rwf=N}w* +&@;쎐vLv,I9N"/DՋ̘|[.co/ 2c[Dfў4<t@?sȒqZ5[$O[ (]<ۨ=2w%Зq-;k${]ꠗr5/e`ͯ/(%& 1J//qbRbgQxNtb➘S7;'_2b\X(@l@Ma'h,Bnk?x06FTƚ@ Q1<5 +peKkU;X3.*9!{;űJ2Las}2J %n!p@y)bNa*$2E4 +:ScG^D[BmzmדyU m>nL󑠒(}/LJo|Ineòr<{9c5WlQtZ{]Vj;V\ ;8D +9gfȹ)ZDઌJ? .y`Į5hUYfbVUQ՟]wv$t7ںGz3* $Q(3FMA?hX&/Wۇ dgЅijdm%gDA%}GmeB6w/ bB1G޼ +[BYțˎcM{u&п4%A_лDҟ+aA#VƐqlׯ%o]>|Sm92Pf[boP?kDxA3uN49d`8X ȩ;S!vwwRnD)TpRr1 \<Vi5e\2Wcus`!W|ɶ!jo|1lWhb2N:Z@Va|rVϘ@%-PLg3u;N>>ĺ`c] OI6Ԩ߶s[z?d+E'S5|Cْc^4G60f;]vk +tO1{W?%{]FlhkP?g(`{\d$(LU>;ק÷;Ӫiʞ'`´jvw< })~**y pZ4ee0 hʗғu5GJ;+e{P}8+W T'DHjIBRt+GxMK:#}^EQS +VS(AR€$2sVx`90¸'}LT=鄔+{\o= +Fot7 >k~#<}s,7U1eܹeVDە iVa{6P⋬GT$O39Iav$/zh3cWf ]MKi6JQ~v/$^ʞOŊQUGN,0V)uԏA+*.QlGmrHEhX)#78*lai<,& vr3Z<__DͶ+(Y[PEyeHȾ +wo>}UovCS~%471 6&\c$29)7CDs|>J9O`#jcA^/8 +ct'H^4&O#"*9hԯ!X1w Wv ď) ,$|\X\yOFgݝ%v p٤C JriZvKJYbAˬ }콐&pgƯR4KKyqtg1Q8{ +k]D'WԴa i<2#QA}򞮭oGȓ]2T9xA.jWq/˶q(7F)O oI{>K$2#@(J#7TZdX$[^j* 0G +iLQ^Kɞ|^snj$qրz^/IwaeGFOeR,Hl4 e5{뙋S9K\ :fw`z!"m\d"Lm #Qdb2Th5ݜ.[Nl61דy-53pO۾AT6|0i0XLMng[:َzv;ӘE0G~XANqc||t6;\ +zS'@awdmK~T*%LCO8̔b|엱P|ZriͰ|Q4)&({5HlVq -H"H0F{/40؂Y?@aqu*r;r8e:_:7]5T s ̫>uRk#nXe<}daY36} ʏ?h50 2!°h OX.%噚zuǏ<ՄwqpR`D2?+Pވ-*41W5ٝ#HD$Xx]8&$fN3[*"c_Y +_0J'ov!*/D,t@7T@GHe+%ʑQ:BZ*QfKP98Xs_jd}a1TgYC.A2Tc^R~S[nϚ@yo -OZ%0H-kbj@s1A$}Y&#OObѳXB'ߗtb`jEi" MaܬQR20w0O:ݍZ9D y2~ػ8>U2c\B ÖOEXOa`"ȅ/&0 ݔGnximT-I ϳ$ZZlB0T41.Oɻ{ǭCV8cKt!v} ^G,-Wya6<4 ̓x9h췎%mQ01n딌Ztӈ=Wo8#dGkS; @Ɂ3ê**WVh4|+bǺdWB<hG;0z.䎷 .g/I@ヂP46>zjb5PjЙG@O4PNđM"nd,5}RCCy͘^y"EP׺}jL8MDtɯ]WsN⁴A4S%Y*^aY > $ ɌH봽8sd+2lC.2PZERCGh~7LaUO .SW-R'44#4p#hГ7|p%㎜w5 eƍB3%3(- `/!ZPJ H:cF:w.'>Pw,.쨘qw-cHx$:H2/#&6+So4 ,:T+E5(x9nO`{: ~ˊ/b?ؒBI$zT{8P +nܿ雦;9NLBſD vb`W0a2(*z3 d75:Qlcʯ,M}\/(p%AGܕ\lE@}RrsN"+\>@yyiovBMR$^ 654Z|'EXdD:3y +<0ƅ"Bj/a/H/3J$//* ԃc Oa) +B@!!vd:W #5{# Դ5k + UaH̕t'EℱMvHE3lDЏR%BN]w(Al|:Ą4{>RQ0O|_BYgxuHw:SѿS)%|k0m $_ ,YRFp豆E}8mn>ow);H>!ᇉae\&!g T^E^'2JW>}> 7duckN*[9 UaD΋h1xNyxzOOXB8"G>[n&@D_j3R\YD+u}|9>8hwϜ4Yj4//F毉63;Ox3Ӏϵ)/a.|Jȭrl\R߷Ӈ5#FJEp6W I;E>*F K2y>(,@+ljOmh9[ωmHKJM7C6O.#{FU/4nAX%<+]Q#m H-g%5Vr. ȧOL:MRox׮~ITY/ȶE=0fbƪVVbp?&]q90{c3[q*{VLIwp3Ҽ_X `-J8V&o-,Uyd Y|B=)kԵ[tS"k,d^UpH2K_ O٨lOPz|Ce YTI+t}HHm~8T 4+|ۧJvąyˢ\{&389iK̜i4 PG2OȻ[Hp?k_k|Z3a^1b?5^L8:kpAEO 2F9"w7Y"C\@+;J7mc$e% +L.8._)<4(v*-jAr鎸js1TȮSe>9E7ܻr4r@2^,6!` F\FYGM2} S" +3d$$H mǤ#$aK&ԂL[ӡUh܉@$Ž/pmtpբDbCu6;iOҧv7 +AOh( 50):k- )^z_hU2KCQtE&~kwXԶaVkы`Ƅ%Tc8o b8fUBin.u0emu (vvT@g72Dž.R8َ/%mNBFې1"Og6Wx}&86%eN:}]n9dӿFҀ߈j:Y~AM" Rott1Ԭݘ3Rq0ưkiY,Rv~).{13Py5f8)/pu]M +pnL+,ϿMBǚ6*댔Xq^y+iĠ5`:roGgŪ0@ /^AF1,uI>W S[Ԑj҄pU74GiOo@PU 0*5>@n0`7m"VK=$Ya0GMD^ {k_ag]r!]cE{I؂=3MvKhbYp[ +dq u_:){66~!>.!1T3μ/!L40:wݫ< $nGr!}E G +T=n3 +@B彈5 \ No newline at end of file