From 2d10abf2837b31199c66fdb16d73ae79c88cdd74 Mon Sep 17 00:00:00 2001 From: kyororay Date: Thu, 9 Jul 2026 01:02:59 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E3=82=B7=E3=82=B0=E3=83=8D=E3=83=81?= =?UTF-8?q?=E3=83=A3=E3=82=92=E4=BF=AE=E6=AD=A3=EF=BC=880x2F2638E1=20?= =?UTF-8?q?=E2=87=92=200=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArcFormats/ImagePNX.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArcFormats/ImagePNX.cs b/ArcFormats/ImagePNX.cs index f230f04cd..22ce0f6d8 100644 --- a/ArcFormats/ImagePNX.cs +++ b/ArcFormats/ImagePNX.cs @@ -33,7 +33,7 @@ public class PnxFormat : PngFormat { public override string Tag { get { return "PNX"; } } public override string Description { get { return "Encrypted PNG image"; } } - public override uint Signature { get { return 0x2F2638E1; } } + public override uint Signature { get { return 0; } } public override bool CanWrite { get { return false; } } public override ImageMetaData ReadMetaData (IBinaryStream file) From 712da15c5a6c83c94723f82f49c54f81debd687a Mon Sep 17 00:00:00 2001 From: kyororay Date: Thu, 9 Jul 2026 14:46:29 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E5=90=89=E9=87=8C=E5=90=89=E9=87=8C=20?= =?UTF-8?q?=E5=BE=A9=E5=8F=B7=E3=82=A2=E3=83=AB=E3=82=B4=E3=83=AA=E3=82=BA?= =?UTF-8?q?=E3=83=A0=E3=81=AE=E8=BF=BD=E5=8A=A0=EF=BC=88=E3=82=AF=E3=83=A9?= =?UTF-8?q?=E3=82=B9=E5=90=8D=EF=BC=9AHoneyCombCrypt=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 対象ゲームタイトル: [140829][ALcot ハニカム] サツコイ ~悠久なる恋の歌~ [141128][ALcot ハニカム] キミのとなりで恋してる! --- ArcFormats/KiriKiri/CryptAlgorithms.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ArcFormats/KiriKiri/CryptAlgorithms.cs b/ArcFormats/KiriKiri/CryptAlgorithms.cs index ad473cc76..84eb3a202 100644 --- a/ArcFormats/KiriKiri/CryptAlgorithms.cs +++ b/ArcFormats/KiriKiri/CryptAlgorithms.cs @@ -1671,4 +1671,22 @@ private byte[] InitKey(uint hash) } } + [Serializable] + public class HoneyCombCrypt : ICrypt + { + public override void Decrypt(Xp3Entry entry, long offset, byte[] buffer, int pos, int count) + { + uint seed = entry.Hash ^ 0xABCD9876; + byte key = (byte)((seed >> 24) ^ (seed >> 16) ^ (seed >> 8) ^ seed); + if (key == 0) + key = 0xA5; + for (int i = 0; i < count; ++i) + buffer[pos + i] ^= key; + } + + public override void Encrypt(Xp3Entry entry, long offset, byte[] values, int pos, int count) + { + Decrypt(entry, offset, values, pos, count); + } + } }