Initial commit

This commit is contained in:
2026-05-17 01:52:51 +08:00
commit 2dd378b17c
43 changed files with 3146 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
using System;
namespace NfcAime.Dll;
internal static class FelicaCommandBuilder
{
internal static byte[] BuildPollingCommand() => new byte[] { 0x06, 0x00, 0x88, 0xB4, 0x01, 0x0F };
internal static byte[] BuildReadWithoutEncryptionCommand(ReadOnlySpan<byte> idm)
{
if (idm.Length != 8)
{
throw new ArgumentException("IDm must be exactly 8 bytes.", nameof(idm));
}
// FeliCa Read Without Encryption:
// Byte 0: Length (16 bytes = 0x10)
// Byte 1: Command Code (0x06)
// Byte 2-9: IDm
// Byte 10: Number of Services (0x01)
// Byte 11-12: Service Code List (0x0B, 0x00 for Service 0x000B, Little Endian)
// Byte 13: Number of Blocks (0x01)
// Byte 14-15: Block List (0x80, 0x00 for Service 0, Block 0)
byte[] command = new byte[16];
command[0] = 0x10;
command[1] = 0x06;
idm.CopyTo(command.AsSpan(2, 8));
command[10] = 0x01;
command[11] = 0x0B;
command[12] = 0x00;
command[13] = 0x01;
command[14] = 0x80;
command[15] = 0x00;
return command;
}
}