Title: I'm looking for FORD IPC 3byte Algorithm
Post by: tjshadyluver on August 24, 2023, 08:03:53 AM
I'm looking for FORD IPC 3 byte security algorithm. 02 27 03
SEED 1A 4B 9C KEY A2 0C B0
SEED 00 10 24 KEY 5B 65 73
SEED 00 10 62 KEY 49 F9 1C
SEED 00 0E A0 KEY F7 67 31
SEED 00 0C 02 KEY 74 9A 53
SEED 00 0C 48 KEY 7D 33 76
SEED 00 0C 14 KEY DE 2B 06
SEED 00 0D 56 KEY F9 7F 11
SEED 00 0B 51 KEY B3 8D 64
SEED 00 0C E1 KEY 58 EC 32
SEED 00 0E 4E KEY 8E 4A 57
Title: Re: I'm looking for FORD IPC 3byte Algorithm
Post by: ASTROLIDER on August 24, 2023, 06:10:05 PM
i have the algorithm
Title: Re: I'm looking for FORD IPC 3byte Algorithm
Post by: Jakka on January 12, 2025, 12:00:16 AM
int key_from_seed(int s) { byte b = (byte)((s >> 0x10) & 0xFF); byte b2 = (byte)((s >> 8) & 0xFF); byte b3 = (byte)(s & 0xFF); const int num = 0xBF; const int num2 = 0xA4; const int num3 = 0x90; const int num4 = 0x56; const int num5 = 0xCD; int num6 = ((int)b << 0x10) + ((int)b2 << 8) + (int)b3; int num7 = ((num6 & 0xFF0000) >> 0x10) | (num6 & 0xFF00) | (num << 0x18) | ((num6 & 0xFF) << 0x10); int num8 = 0xC541A9; for (int i = 0; i < 0x20; i++) { int num9 = (((num7 >> i) & 1) ^ (num8 & 1)) << 0x17; int num11; int num10; num8 = ((num10 = (num11 = num9 | (num8 >> 1))) & 0xEF6FD7) | ((((num10 & 0x100000) >> 0x14) ^ ((num11 & 0x800000) >> 0x17)) << 0x14) | (((((num8 >> 1) & 0x8000) >> 0xF) ^ ((num11 & 0x800000) >> 0x17)) << 0xF) | (((((num8 >> 1) & 0x1000) >> 0xC) ^ ((num11 & 0x800000) >> 0x17)) << 0xC) | (0x20 * ((((num8 >> 1) & 0x20) >> 5) ^ ((num11 & 0x800000) >> 0x17))) | (8 * ((((num8 >> 1) & 8) >> 3) ^ ((num11 & 0x800000) >> 0x17))); } for (int i = 0; i < 0x20; i++) { int num9 = (((((num5 << 0x18) | (num4 << 0x10) | num2 | (num3 << 8)) >> i) & 1) ^ (num8 & 1)) << 0x17; int num14; int num13; int num12 = (num13 = (num14 = num9 | (num8 >> 1))); num8 = (num13 & 0xEF6FD7) | ((((num12 & 0x100000) >> 0x14) ^ ((num14 & 0x800000) >> 0x17)) << 0x14) | (((((num8 >> 1) & 0x8000) >> 0xF) ^ ((num14 & 0x800000) >> 0x17)) << 0xF) | (((((num8 >> 1) & 0x1000) >> 0xC) ^ ((num14 & 0x800000) >> 0x17)) << 0xC) | (0x20 * ((((num8 >> 1) & 0x20) >> 5) ^ ((num14 & 0x800000) >> 0x17))) | (8 * ((((num8 >> 1) & 8) >> 3) ^ ((num14 & 0x800000) >> 0x17))); } return ((num8 & 0xF0000) >> 0x10) | (0x10 * (num8 & 0xF)) | ((((num8 & 0xF00000) >> 0x14) | ((num8 & 0xF000) >> 8)) << 8) | ((num8 & 0xFF0) >> 4 << 0x10); }
|