SubGHz - Keeloq: Read Centurion Nova remotes (#2892)

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
MMX 2023-08-01 12:32:24 +03:00 committed by GitHub
parent aadb72af53
commit fe7a1c2fcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 77 additions and 56 deletions

View File

@ -1,56 +1,57 @@
Filetype: Flipper SubGhz Keystore File
Version: 0
Encryption: 1
IV: 41 84 34 43 84 1D 43 04 45 44 34 38 41 24 3E 74
8C5AEF725F0620DB3952B40BB8E76A815BCEE1D1B92F7E8E8E63D1894F1C7FD0
1DFF1D6A322D6B3D8AD7C594A02462AADE723D417B9233585526982F08187DAA
0A9184F15D4A5589DDDA6422063BACD58580661CFE60EE600D87F73F0CB5013E
6E56802DAA049C3DFDEDC90432A0E694A172C369EBECD136F4C911B979AA098D
A659716B51053604059F7FC3651D6A153F5EAB1852F95B20C44C41A7889A0DE91A078B63E3C311280C4315F0A3C8BA1F
A315170EDC51627157725D9A96490DB75EBF8232957FBA313C03B2BA2884EA85
DEAB3C2C2E2DC76FE45AEBAC7EBFB478CECCD970A63B8DE2024FBFDCCBD1B26E
7BBFC36CBA77468B4624C6B685610877D53985C985DAD8EFE47527EB7C7260CD
879EE18B314ED4F3F548B41176099176FB97F4F1A062481C935B2DDFBCE2FE4D
493372D7D47A96A66305DFDC8A915EB651620881AE1D603B7E9605E004C04CA9
F80AAA4C447F8E8C0B039DDAECF9126119C32FF164118780BE268E326A8CBF8010DE2EBF94033CEAC39815D6A8958CF4
41C1393A039E665F6A53A5E5D1C105008BD14D9755751545A667860C39B2E39AA47306E76E2BA7DDDAA2A286FDB58D23
34853A4CDE42CB80045E641AB4800C86C1CF6907EAAFA399156CCC727A008584
D0783A34BD6A36D31BFF5F70FA1116CAE48EF02716D80481AE406DABB3C3400E
0BB3582605434CF2A5D74A27773B88DA331B6033C444837E9F7A155897258B03
E4E71F3EB290B9436FFF0FDADA468BE37D964E89BE8D9971A14776F821822769
744AA59D129C892120B5DAB81C8A3D573B0AD80EF0708C1B9ECF13DA60CECA07DC0591A08611DB4D3A8B7C70994D5DEF
716F9F8D5D2C697BC4183EFCC97E52D08ECA07B613A0F389C801F65803DFF4A4
560262DA8489D2C18C8D97E314DC663403AFE4DE9DCB6D453087D2BFBD36532D
9E31F7152C50B6940EE3E3894C98F75702C7897F702B48E5C9B54B6E25083641AD2E521267505066C7E5BAB7F6CF1433
6630EDA18A6E58BD395792CCC656DD10CD9C5DD2B1949FE677122FA39A53C724E79C0D0752A3A39A03407BBA2282185E
00D15A06F5DD82A4B926B78809CC4D129AAFA9A92B0A81568F255D15697FE0FD
29FF9A4F5346ABEE8FEDE034988F87FCD29EA747735898F1E7207EF74FAB71A8
C0E8EB6AE6F77EE38DF2AB1B7742E34ED5236F3D8E964845E66762A4675AA21F
00FC4C459DC4CE92B62D0AC2546F9FBBE0893F84D2AF0A20ED462A5EAE63DE3B
E92EF482A40CEEFC8339BBB713BBC452A266A09B2645EDEB12716544B2DB9B09
D7D9C5C757831BCE2FF1DB25A080D77769FB36A1F3F48F4361418A0A45609280
C19246F52AE1EE5CE968CED52F642D9CD78B020029632FE83C49C657D23ED075
FEE3C05432FB3860D5D28562323F5D1B053B8F3ADCD416BD0C4645F6F4D43DCF
D780A4AADD0205E0BACDCC9AF46ED259E0946C5DA888C341BFE96E09A87CCCFA
CE3C13CFA08E532B637FDB707E29548D57EE92EAEF6516C3D67E9D36FCD59CF9
5E88CE71258CB0D91631FEB41C9A2F47AE0FF4810A9A1EDF3F308BBDE6944D5E
1531F4107FC64810BA5DB5E46C7B9AD61531AF5430E137B7688109FBC06B6221
68050A39C0B302E0B713FAAC5F829C79AB30E18B1D982A94005DBAC7CCFB95379A619C0B9F7409C44D19FF2C5E8E4546
3F73E8BA22C602280496EF8E88E2CAA9EC442E3B3083B684942DBF9CB5121241
FA1FCD7C9182FAE8FFF4E88433AE68F66076B3BDFF8AD0BF5CEA43870082E9BE
DFF7DD2678C03401656B093BF7AC7E033F15FD0F30188E48A62045740B423699
371BCFF653E7811D99C048A1A39921AAA563E06AC86CB3D2F392C2C955A1ABD0
F4F1766DEAEDE934478208B9EB3050326D9FFCC001C73EEE93407D8B12CD49E4
A241C9FC62DDF67D645936245FAFFE2A42C86151F484B7BCE5410E8F36FC87901D3AC4E40334E08FFFC2AD676E490D94
3566A94A9C0479E0C4387D9137375ADF2C921504364F3903F198D6757CDFD21B
7274E1B5A6445FDC29C355D550E981C17F349BC4A14251B3B51BC96FC334FBCA
04EEA5EDD9B3BC3E0638E53A5561DC8BF761D615A64D435BD31A94AF2650159E
B84818CC1695FE8B731CD653D0679D1AAA0578C0B06AD1E3510785B2DE20841C
4121343D6B79E38C06DD038D770D76D10336AFF47ED0D0DCDDD6B0FEA4DAE67C
75E49C839CCD7019D9CE90AC364F488468B2AB01E387A8BEF8815915925166A6
CFAA9F4717568C1EC7B96E0D71D260B828A70484E1D9CA7C99A50D10704F8BBBAE62EE98C9FBDFF06F357F1C1E2F2677
41E4D250B92BC57442B91DE2015C41226531CF9A8D77B83AFC8E4F3183DB11DE
45EA8BD854D7F044FB249C16F08A0C24FF117D54BC20A4CC667B3DAD09EAC4F9
F455CA0BB8B496C301406DE4FB52C9B0F64645776803BC2935A2F38675318BE2
22FF72A5D2E1A2EBFB6C55FFD0A3CEA0474CCBD13462D63229C9708276E87D3F
8470F9A300170F226C0216C07AA829591CBD4CE34AA918EAE49363BDE86CC77EEEBEEA84A097488D35B92F773F5DBB4C
IV: 23 17 32 54 92 3A 28 13 12 DE 8B A7 24 71 25 74
B8ACA082EA4B34E8B217A6FE63F3545D160AB7F4833C87E8743BAA7002ACC123
E779135FE66629CAC4661B1C3D5C9857C9417CAF216241933FF6CE60A74D53C0
15340C049A444C79ED489619A31E2AFDCFF6E4864CC4D9B1DA8E98D7EAB9C8D5
8E696E85837B3BA8D6D380E1F36E445D630CF0B7B18A45930A08F832EE634A02
C85341BE669E509E902FEFCA7D025A20DC80D4F14FE1C3542B1DC3A5C7393A36F901A63C3BC074B058897B12F0F5F0D6
2834E5D7726670A03ED6C8B27B5863EEE2FD3668795251AB65B9E4FF76ADEC3E
8E71AF7660BCFC545E92674D74F98A35FCF1B54AB5BACCEE182B7F8EDB3FA356
C20442D506332D1A410AF3187C29BE01729C282A69B85CF8D92D70FAE3407BA8
00BC449D006566A6549A86F52B98410871B0C14D60C181BFC017446B192C934A
8A6A28DAF1F61867B1209AB9105986A7383ECE72A40F8D93F1D0066251800A3A
4A6AFDFA6130A50180358B111145D7914C720E04D69EE5459C049FCD64249153315F86A5A9F75AEE5CB726847BA64F2A
91F838BC515C8CDD32C5803679B81A24FD5CF0C3A4AEA2C07342ACA1020E05F3B393A410B33847A8C48141D923202CF3
7C4DEBC03295291EC5B2EBB002670D14E7C972F32DB2B3CD4E61B2BE846345D9
8FFEB948DA3D1A7FCF620F043B1D35354F83861F22B6D693F2A7119A2E287D01
309C66AF38E6447CB33FB0967C9365CA36314DBF74695F63CF9E558A4FF5193B
411D32EC6ADED3360DE9E9A0962F97DF2B80A09F2A2AC8D4DB6DB09FAD6EA217
A5E5550BD59425003F9166237CD4BB6A323885D7916F71F3B2795B8A4C7125ACC1237BBF0840F0E999BD2EC14327654F
4370A828AFED684B96E8EDAB670C46D2D525FCB7E469B63CD1228C902C3ACF4E
88E3853F58129C4D834B18E4D01785591094301148D802A3A21B63521DDDA325
D5365BF55DFE7107909684F4ECCE052E617F91FAF08CE5254721A30BEF87F368F329C46439BD1EA2819DC416B2CEF247
BDAB9FFD3A82ECE05E8CA00F11954CDB1C124B558A5D369DFE16D32C3AEF08B2013945CC69212F170F17F62A55D35928
8E448AA1D39C894F306FE65B0D0DD733717EF81758FFA908AF7583BFD00108E5
019A1B0AA3492427DF3DB817B438D0302B0B8C77807D19EE45EAC7F697B2EB85
C678A3F9DA726FE1688F86BB063EA017EDB5389E0F185484D9F5DFD4EBEE0579
760F77AB9BD99593AC855E4AE00FBAFBB34FA2BFF504BD5CC9557658E850C6D0
4F3E77342E9A655D4EC167E2B0428833FEE31CF603FA1CE3D1BCD619D5C9D511
2233EFBEDD4A3A95BA8160EFCED533D9F25B65AAB10F627681D2753871814366
A1261BE878933B4905956BE7708F7C40E999714503B52B8021D44E131D87FF6C
8F31E76314A46EA9B0CCD3EDA4B2DF603829D8E3AF8CE41AEA6BFFBA2E2990AC
850C08E45CDA4E42BD4F09B956299C0ED58615BE3664791C88D1E2608D46D205
6283656518C6ADFC3B7D309D2763BD91111720CD51029FAA691211DEFF84CB47
9FCAF9F77C9D1B9B6934E53DB10DFF88D392D8E7BB4DC28D65F65DC396E2E00A
41D2406BE1887FCC094861E4DF0683B1BE534C5CBF059259E946F9D04222C2AB
1D6F37E645591F0C491312C1E0CB54F1A6B70F94B54D63100C4584AA016DB589338A704B6D8B6B89C2381F660D987A2F
DCEA08D6E5C0D6229EBDE07DBB6CBC0EA8D6E24A3B631CC3775CE23A496CF178
907051215A741BE55603F27C3FD86561CC6231CEED83AA76665D6A0B6B3FEC88
36CD5B5BCC63D45B89592B2938D6542B9D82AB47BEB73C0D30D2EC19BD8B35C2
1FD9651ABAD773D6D22DE677CF7B19615D5B805594DCA117F04AC3255AE8184A
4900723A8F7736C9BEAE938EE021F3E44AD806244010F825D04C59E6C67B5EA2
0D56A8CE77106DA2CB44F65B8CF5F4A024B9CC774D1C4CB8E862C95BD30B42E7B2E946CAC361F2830361C010DC938833
11543FD104EA7D68B6B9C3BFE3F25A84F651FCB7FB5423AADDC472A48E12AFB2
98CD236E8B92D706DA0F92F43AC1D2CAF1CFBCDC7B330A7C9D65CDC4F2E2A677
753557A9A5075C033206111E3C832044227A32EBF3AB2B08F6FBFCC2109B2F2A
4AA124232EF6C25CB7321F5E5F7BE11114C763F8DDAFB6B05E8412ADF37B5C7B
01514EA408E26BAFD30290429DE1A0211F4FBDB09DE2E66CE92A6F09B998EF29
4715716D5AFF99A2D8205A46AEEF0BC20D72F3F54991F7DF4142FF187485C178
281A32B90F8B85F31F54BF0D83B6D03E4E65A72ADB3D5A297C91881E36B45E8F
9C05D3CB9F473D5693697A8567DBA7CF650C0A0D6C1BBE3ACE78ACDE0BD027B6C836B6CB6365D5B5D00F101FA83876B9
DC88B0237634CB007244A4169A5D9F5F65FC782E3C4388358A7E2019F7B4CC05
BC7ACAA91D23616A0070DCA328901DDDE3BB5B59260FB45083916B6ED0E6450C
A280434D059D652D77ACB9F44409CDC7393A876239BA894DD4BE843FAB0AC561
334F1316A35EB8A838F6B209FA4F8148062972E27A296379731B1F728A0BB32E
DDC9883E90EBE73915CFDF8EA7193F2449B66010D45F5EC6F20949D5C49719A9298B95269531A3440577B00EADE1B379

View File

@ -467,6 +467,19 @@ static inline bool subghz_protocol_keeloq_check_decrypt(
}
return false;
}
// Centurion specific check
static inline bool subghz_protocol_keeloq_check_decrypt_centurion(
SubGhzBlockGeneric* instance,
uint32_t decrypt,
uint8_t btn) {
furi_assert(instance);
if((decrypt >> 28 == btn) && (((((uint16_t)(decrypt >> 16)) & 0x3FF) == 0x1CE))) {
instance->cnt = decrypt & 0x0000FFFF;
return true;
}
return false;
}
/**
* Checking the accepted code against the database manafacture key
@ -509,10 +522,17 @@ static uint8_t subghz_protocol_keeloq_check_remote_controller_selector(
// https://phreakerclub.com/forum/showpost.php?p=43557&postcount=37
man = subghz_protocol_keeloq_common_normal_learning(fix, manufacture_code->key);
decrypt = subghz_protocol_keeloq_common_decrypt(hop, man);
if((strcmp(furi_string_get_cstr(manufacture_code->name), "Centurion") == 0)) {
if(subghz_protocol_keeloq_check_decrypt_centurion(instance, decrypt, btn)) {
*manufacture_name = furi_string_get_cstr(manufacture_code->name);
return 1;
}
} else {
if(subghz_protocol_keeloq_check_decrypt(instance, decrypt, btn, end_serial)) {
*manufacture_name = furi_string_get_cstr(manufacture_code->name);
return 1;
}
}
break;
case KEELOQ_LEARNING_SECURE:
man = subghz_protocol_keeloq_common_secure_learning(