能力值:
( LV2,RANK:10 )
2 楼
大佬,我看过您之前在"IDEA 2019.1版本的破解文件JetbrainsCrack.jar分析"这篇文章中的回帖,已经成功的搞定了低版本,然后高版本的话,我看你们说更换了证书的比对方式,我就转到您这篇文章中说的方式,我在测试的时候一直提示key is invalid,也不知道是power的内容生成错了,还是那个metadata和hash搞错了
能力值:
( LV2,RANK:10 )
3 楼
junzixinglu
大佬,我看过您之前在"IDEA 2019.1版本的破解文件JetbrainsCrack.jar分析"这篇文章中的回帖,已经成功的搞定了低版本,然后高版本的话,我看你们说更换了证书的 ...
https://bbs.pediy.com/thread-271052.htm
那就再看看这个帖子吧,涉及内容太多,还是需要自己调试排查问题出在哪里,不可能随便一下就猜想出来。
能力值:
( LV2,RANK:10 )
4 楼
guduzhe
https://bbs.pediy.com/thread-271052.htm
那就再看看这个帖子吧,涉及内容太多,还是需要自己调试排查问题出在哪里,不可能随便一下就猜想出来。
谢谢大佬,我去学习一下,如果您提供的power规则计算没毛病的话,我确认自己的生成证书的公钥的指数和模数都没弄错,那估计很大可能就是出在了这个metatdata计算上面,后面有不懂的,还望大佬不吝赐教
能力值:
( LV2,RANK:10 )
5 楼
大佬,我仔细阅读了您刚才发我的那篇文章,我用文章中您给出的key提取签名,直接使用
System.out.println(new BigInteger(certificate.getSignature())); 输出来的长度为1233,而我自己生成的key签名输出的长度仅为616,这个会有影响吗?
我利用内置根证书颁发了自己的证书,在低版本利用此证书进行签名是可以成功激活的,结合您之前文章中所说,官方并没有针对替换证书做反制,所以这个自签的证书应该没毛病。
[
[
Version: V3
Subject: CN=prod2y-from-20201019
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun RSA public key, 2048 bits
params: null
modulus: 24580709077926620092044597552644293578345857265291819713044583762019889091207964073568161458804739458715380004434957967437606343043933001048031460204315561010346653890686793411514424415196735544767317833834873354780844688987895426437451628923551202414995434390331352210541261081218991147728656851435588281542821927947680997620259245155445014207429697565849156564251315760201267965288759078692695634602396216907138195404684647682172795883669338343228721466443314480641316732771827742321474271319939651686393329091959712489682268404241477393924334507448947669694217826663019016070298971335144331825007157671038461489053
public exponent: 65537
Validity: [From: Fri Oct 02 19:00:56 CST 2015,
To: Tue Oct 24 19:00:56 CST 2045]
Issuer: CN=JetProfile CA
SerialNumber: [ 0d]
Certificate Extensions: 5
[1]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: A3 9E B6 48 67 42 12 36 41 BD 6D E0 B9 B4 A0 52 ...HgB.6A.m....R
0010: 8B 97 F1 B3 ....
]
[CN=JetProfile CA]
SerialNumber: [ d26cb183 b28379e1]
]
[2]: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:false
PathLen: undefined
]
[3]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
serverAuth
]
[4]: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
DigitalSignature
Key_Encipherment
]
[5]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 24 DA 11 22 96 F5 85 41 C0 93 47 E8 31 23 4C F4 $.."...A..G.1#L.
0010: C0 84 02 FF ....
]
]
]
Algorithm: [SHA256withRSA]
Signature:
0000: 16 0A D4 6D 75 6F A9 BB CA 94 09 3A 00 D0 3A CC ...muo.....:..:.
0010: CD 92 87 CB 96 0F 24 9A 6C 7C DE 4B 83 BB E0 A3 ......$.l..K....
0020: 19 7F 38 1C C2 E5 23 D3 1B 1F DA 27 9C 49 A8 10 ..8...#....'.I..
0030: F6 3E 8A BE E5 D8 A6 AE 44 7A 94 70 DF 54 11 A5 .>......Dz.p.T..
0040: 7C D8 19 C1 A7 C8 3C 23 CD 25 69 5C B3 03 96 79 ......<#.%i\...y
0050: 29 28 B6 4E 09 DC 34 B6 A9 B6 03 67 EF 68 96 95 )(.N..4....g.h..
0060: AD 9B CF 8F 9A 9F EC 6F 2D D1 BB D8 F3 4A BE EB .......o-....J..
0070: 63 9D 41 CF 94 56 F4 16 61 9C 9E 43 67 56 04 7E c.A..V..a..CgV..
0080: 09 8B 34 16 2A 9B 67 56 BC 84 F0 74 BE 80 48 40 ..4.*.gV...t..H@
0090: BF D8 37 FC 05 FF 36 82 F0 C2 A4 70 85 8F 8A 02 ..7...6....p....
00A0: 3E 8B 89 E2 D6 89 F8 F7 4B F1 48 15 67 39 F2 BA >.......K.H.g9..
00B0: A1 9A 47 FB B2 A6 2E 68 87 17 BB 7B 49 8A 63 35 ..G....h....I.c5
00C0: 3E 76 5D 70 70 9E D7 1A 21 55 B6 E0 BF 53 8A 3F >v]pp...!U...S.?
00D0: AB 2D 36 67 E1 50 F5 B5 3B 0A 78 67 44 F9 7C 5E .-6g.P..;.xgD..^
00E0: 2E 07 DD 96 31 10 1A BF 60 A2 2E 17 BD 5A E9 70 ....1...`....Z.p
00F0: 47 E9 E8 B0 D9 E3 6B 0A 7C 73 F2 B1 E8 AB 9B AC G.....k..s......
]
我利用此证书生成了自己的测试key
OWA0IUA22C-eyJsaWNlbnNlSWQiOiJPV0EwSVVBMjJDIiwibGljZW5zZWVOYW1lIjoiR09PRCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiQ0wiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IkRDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiRE0iLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJEUCIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IkdPIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiSUkiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJQQyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUERCIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUEdPIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUFBDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUFBTIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUFJCIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUFMiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJQU1ciLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJQV1MiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJSQyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJEIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfSwgeyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA4LTExIiwicGFpZFVwVG8iOiIyMDIzLTA4LTExIiwiZXh0ZW5kZWQiOnRydWV9LCB7ImNvZGUiOiJSUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJTMCIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJTQyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJTRiIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJTViIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IlJTVSIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDgtMTEiLCJwYWlkVXBUbyI6IjIwMjMtMDgtMTEiLCJleHRlbmRlZCI6dHJ1ZX0sIHsiY29kZSI6IldTIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wOC0xMSIsInBhaWRVcFRvIjoiMjAyMy0wOC0xMSIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIwMDcyOEVQQUpBMDA4MDA2IiwiaGFzaCI6IjE1MDIxMzU0LzA6LTEyNTExMTQ3MTciLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-MncyoQrYsSubi7CGlBaTrOvzMRwOlkcCEhfYtCvNU5EPyODGWtrY7Mk4PkXoc0P/v0oiDY7FoWr7lxJERtBtfzaDn9C9X57Y4TW6fxDklvAqIlBFWlLNJ/VY9IR1Fz4FtJgcw54i0wJlArXc3+Exc8+detN8Crq6sSa+dA+jRKZojPKfueznRZtWQIRh9u/2tci2fTjDZw7BG5rC1KrKYbUEcekAWr0uUqxZ8HCNMmiVldWQqAcpwjTZMU3BBpDDHn2t7jhfahiv36hg7WaZDfZOulnWjcoekzmdJA5Gg36XkCH5bBKkge8rTqRcRXWwYoSQyn04quTBDQFzm7SkdQ==-MIIDTDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTAwMjExMDA1NloXDTQ1MTAyNDExMDA1NlowHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCt3sq9PjsrP08HEDvqmGl1hgZl3BD+H0dGxx82Xf+FjRpbV4XnDPNDlrYQN/AUEWACQQis/3UpDtio9R9svuygeXCGjoiRMkxEn00oM0HaLepWkQVPKMcvZpmoCOOjPMxBJqZT8m2OGCY+BzsGYgbDEBDMaE4DAy6bh1+rgEqFYUo+pKAeeZTo+MBILEAXgDFkwF5k5fPIsRNe/SfGgVJARqS/MP7Wc5fQSV2TRdeYD35EufK8PHHT81y0tGMpt+wNvyihYXx8yXOSoW2samM5pAH0zKj7CKgkNZUFAKn4j59oDdiNWd/3ELhFtuzOeX11a9g3bkHuQ1s2CbPOS+dAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggEBABYK1G11b6m7ypQJOgDQOszNkofLlg8kmmx83kuDu+CjGX84HMLlI9MbH9onnEmoEPY+ir7l2KauRHqUcN9UEaV82BnBp8g8I80laVyzA5Z5KSi2TgncNLaptgNn72iWla2bz4+an+xvLdG72PNKvutjnUHPlFb0FmGcnkNnVgR+CYs0FiqbZ1a8hPB0voBIQL/YN/wF/zaC8MKkcIWPigI+i4ni1on490vxSBVnOfK6oZpH+7KmLmiHF7t7SYpjNT52XXBwntcaIVW24L9Tij+rLTZn4VD1tTsKeGdE+XxeLgfdljEQGr9goi4XvVrpcEfp6LDZ42sKfHPyseirm6w=
然后,我又结合文章中对power的分析,仿造你们给出的代码生成了针对那个测试key的power规则
EQUAL,175381179676073661997041247740741863655054590486958155258480908982349897968586671478767351332287803988635834007147579877662820912697611189662950857770850218013219795584368857109622084572431539419257599591064252346228729029675300433636718151152388163744717039505722868327929702386224716846561179214517207438601798758277809520464565656561737761825124715586223568883458312175659141101898834454266253837756932413738138025333970583998068766659114919902615239889915243171458397160319039941849144113516212932451323702045818995750495662764915914136570037362881868147687402464293299118534624748474336062322215453747746524957368600071294503485314228805352377141670842310565840259278437941449815203956699834694752025455620959793283832817912425847933609583891849900634650566878321681142349703176513249440433867274738570442152438966254042461944838944122543726366125228330274503313579991885945376611505941032583896776423007485663609227527425323128947532710579990965589472121963252130151510875610492005204759816060268014406101172481101114289818100701793674108566304799936486491937702737833531835941879679179618347126583101478182745179571330510670682471438456583088291352819002580199350570437057692387607611449978471951831248979625911175842944306941,65537,860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353->31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193901962660038693422868203379172012488607629998602600590969401724096223291140202
结果上来就直接key is invalid,我该不会向您在文章中分析的,根本都还没走到验签那一步去吧。
求大佬指点一下,谢谢。
能力值:
( LV2,RANK:10 )
6 楼
规则我不是给了一个python脚本了么,生成了一下和你的规则不一致,应该是生成的签名是不对的。 这里还有一个生成规则的插件,你可以看一下,签名不是简单哈希算法,签名会填充数据到一定长度,还有生成asn.1格式数据的 这个pyhon脚本和插件可以看一下,签名是怎么生成的。 https://github.com/googleweb/power-rule-plugin
能力值:
( LV2,RANK:10 )
7 楼
guduzhe
规则我不是给了一个python脚本了么,生成了一下和你的规则不一致,应该是生成的签名是不对的。
这里还有一个生成规则的插件,你可以看一下,签名不是简单哈希算法,签名会填充数据到一定长度,还有生成 ...
之前没用您的py脚本,在那个脚本中,有一点儿我没太看明白,关于那个公钥模数的地方,目前代码中是860开头的,是内置根证书的公钥模数,我不用换成自己的吗?
我两个都尝试一下吧,我先试试,不行了再回帖请教,多谢!
能力值:
( LV2,RANK:10 )
8 楼
使用py脚本运行的结果,公钥模数为内置根证书 86010 开头的时候,生成的规则如下
EQUAL,2782583080308586106043507595261938150529878943191163610233319373069757147724368017890898304945205312634884618274945894833338700840693934611269835316245123534411547785358201407652579461645831154347581668695935304613577901372763413841837753530902229938252241479176655182477437570402091367369274427424081524241107094554333616466496591406407684326777560397312178166877899478554972904560580780195603271612483749619035730072128460007220116961758402428796049783333223681488620221984636550950382415569788425033683385921743897634200931190579481716657856992875197315649355869771410867222908143510541319590081990750134269090732,65537,860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353->31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193933562195160113971681536251451271864444439514751477869229146103963298251667122 使用py脚本运行的结果,公钥模数为我自签证书 24580 开头的时候,生成的规则如下
EQUAL,2782583080308586106043507595261938150529878943191163610233319373069757147724368017890898304945205312634884618274945894833338700840693934611269835316245123534411547785358201407652579461645831154347581668695935304613577901372763413841837753530902229938252241479176655182477437570402091367369274427424081524241107094554333616466496591406407684326777560397312178166877899478554972904560580780195603271612483749619035730072128460007220116961758402428796049783333223681488620221984636550950382415569788425033683385921743897634200931190579481716657856992875197315649355869771410867222908143510541319590081990750134269090732,65537,24580709077926620092044597552644293578345857265291819713044583762019889091207964073568161458804739458715380004434957967437606343043933001048031460204315561010346653890686793411514424415196735544767317833834873354780844688987895426437451628923551202414995434390331352210541261081218991147728656851435588281542821927947680997620259245155445014207429697565849156564251315760201267965288759078692695634602396216907138195404684647682172795883669338343228721466443314480641316732771827742321474271319939651686393329091959712489682268404241477393924334507448947669694217826663019016070298971335144331825007157671038461489053->31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193933562195160113971681536251451271864444439514751477869229146103963298251667122 除了两个公钥的模数不一样,其他参数s和r结果也是一样的,难道这两个都不对吗?
能力值:
( LV2,RANK:10 )
9 楼
那个签名我并没有简单的hash,我也是通过rsa的私钥来计算的
Signature sign = Signature.getInstance("SHA1withRSA");
sign.initSign(privateKey);
sign.update(bytes);
return sign.sign(); 这个算法难道不对吗?
能力值:
( LV2,RANK:10 )
10 楼
Signature sign = Signature.getInstance("SHA256withRSA"); sign.initSign(privateKey); sign.update(bytes); return sign.sign(); 我换成sha256好像也还是不行,
能力值:
( LV2,RANK:10 )
11 楼
guduzhe
规则我不是给了一个python脚本了么,生成了一下和你的规则不一致,应该是生成的签名是不对的。
这里还有一个生成规则的插件,你可以看一下,签名不是简单哈希算法,签名会填充数据到一定长度,还有生成 ...
我将您这个power-rule-plugin也打包进去做了测试,我发现并没有触发你这个里面的日志输出,那是不是就说明压根就没有走到你这个filter里面,意味着我都没进入到rsa验签的环节
能力值:
( LV2,RANK:10 )
12 楼
Key: Sun RSA public key, 4096 bits
power规则是替换签名的,这里参与运算的密钥的模是
860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353 这个长度需要是4096。 所以你伪造的根证书的私钥需要按4096长度去生成,这样的签名长度才是符合的。不然你用其他长度私钥签名的去和4096的模去运算,直接就被长度给否定了。
密钥对的长度,实际就是指模的长度,模在RSA计算中就是起到截取的作用,模就是尺。
能力值:
( LV2,RANK:10 )
13 楼
终于搞定了,感谢大佬耐心指点,多谢多谢!
我自己不细心,在之前您让我看的那篇文章中已经出现过好几次4096这个字眼了,怪我怪我!
能力值:
( LV1,RANK:0 )
14 楼
你好,我想咨询下 jetbrains的root certificate如何获取
能力值:
( LV2,RANK:10 )
15 楼
https://github.com/JetBrains/marketplace-makemecoffee-plugin/blob/master/src/main/java/com/company/license/CheckLicense.java
能力值:
( LV2,RANK:10 )
16 楼
i do not know,thank you for sharing
能力值:
( LV1,RANK:0 )
17 楼
写了一个注册机,欢迎品尝。
带整合功能,意思就是支持多个产品共用一个授权
如何使用:
1、选择你需要注册的产品
2、添加到结果
3、生成授权
最后于 2023-2-10 17:59
被angelkyo028编辑
,原因:
上传的附件:
能力值:
( LV2,RANK:10 )
18 楼
guduzhe
Key: Sun RSA public key, 4096 bits power规则是替换签名的,这里参与运算的密钥的模是86010657695287910119 ...
这里的签名到底是怎么一回事,求指点
#自建证书和密钥
crt = sys.argv[1]
pem = sys.argv[2]
with open('key', 'r') as f:
key = f.read()
licenseId, licensePartBase64, signatureBase64, certBase64 = key.split('-')
with open(crt, 'rb') as f:
lines = f.read()
crt = x509.load_pem_x509_certificate(lines, default_backend())
newCertBase64 = ''.join(lines.decode("utf-8").split('\n')[1:-2])
#print(newCertBase64)
# 自建证书的签名信息
sign = int.from_bytes(crt.signature, byteorder="big")
#print(sign)
# 自建证书sha256摘要结果
m = hashlib.sha256()
m.update(crt.tbs_certificate_bytes)
m.block_size
k = m.hexdigest()
print(k)
with open(pem, 'rb') as f:
private_key = serialization.load_pem_private_key(f.read(), password=None, backend=default_backend())
#print(private_key)
with open('jetbrains_CA.pem', 'rb') as f:
ca_public_key = serialization.load_pem_public_key(f.read(), backend=default_backend())
#print(licenseId, licensePartBase64, signatureBase64, certBase64)
#print('licensePart: ', base64.b64decode(licensePartBase64))
newLicensePart = base64.b64decode(licensePartBase64).decode('utf-8').replace('2025-08-01','2050-12-31').encode('utf-8')
newLicensePartBase64 = base64.b64encode(newLicensePart)
#print(newLicensePartBase64)
mgf = padding.MGF1(hashes.SHA256())
salt_length = padding.PSS.MAX_LENGTH
sign = private_key.sign(newLicensePart, padding.PSS(mgf=mgf, salt_length=salt_length), hashes.SHA256())
#print(len(sign))
newSignatureBase64 = base64.b64encode(sign)
#print(sign)
#print(newSignatureBase64)
#private_key.public_key().verify(
crt.public_key().verify(
sign,
newLicensePart,
padding.PSS(mgf=mgf, salt_length=salt_length),
algorithm=hashes.SHA256(),
)
newKey = f"{licenseId}-{newLicensePartBase64.decode('utf-8')}-{newSignatureBase64.decode('utf-8')}-{newCertBase64}"
print(newKey)
能力值:
( LV1,RANK:0 )
19 楼
junzixinglu
大佬,我仔细阅读了您刚才发我的那篇文章,我用文章中您给出的key提取签名,直接使用System.out.println(new BigInteger(certificate.getS ...
兄弟,能指点一下怎么利用内置根证书生成自己的证书嘛
能力值:
( LV2,RANK:10 )
20 楼
能力值:
( LV1,RANK:0 )
21 楼
值得怀疑
其它的 比如 clion怎么生成key?
{
"licenseId": "6666688888",
"licenseeName": "angelkyo",
"assigneeName": "",
"assigneeEmail": "",
"licenseRestriction": "",
"checkConcurrentUse": false,
"products": [{
"code": "PSI",
"fallbackDate": "2299-12-31",
"paidUpTo": "2299-12-31",
"extended": true
}, {
"code": "PSW",
"fallbackDate": "2299-12-31",
"paidUpTo": "2299-12-31",
"extended": true
}, {
"code": "PWS",
"fallbackDate": "2299-12-31",
"paidUpTo": "2299-12-31",
"extended": true
}, {
"code": "CL",
"fallbackDate": "2299-12-31",
"paidUpTo": "2299-12-31",
"extended": false
}, {
"code": "PCWMP",
"fallbackDate": "2299-12-31",
"paidUpTo": "2299-12-31",
"extended": true
}
],
"metadata": "0120220902PSAN000005",
"hash": "TRIAL:539819022",
"gracePeriodDays": 7,
"autoProlongated": false,
"isAutoProlongated": false
}
能力值:
( LV2,RANK:10 )
22 楼
angelkyo028
{
"licenseId": "6666688888",
"licenseeName": "angelkyo", ...
嗯可以,但是这个power只能对应一个激活,要激活其它的要多个power.conf啊要每个ide都设置一个不同的插件··
能力值:
( LV2,RANK:10 )
23 楼
值得怀疑
嗯可以,但是这个power只能对应一个激活,要激活其它的要多个power.conf啊要每个ide都设置一个不同的插件··
这个说法不是正确的
能力值:
( LV1,RANK:0 )
24 楼
值得怀疑
嗯可以,但是这个power只能对应一个激活,要激活其它的要多个power.conf啊要每个ide都设置一个不同的插件··
楼上products里面code对应的软件都能激活
能力值:
( LV2,RANK:10 )
25 楼
mqk233
楼上products里面code对应的软件都能激活
不懂啥意思···我用他这个生成一个Clion的 key 和power.conf ,可以注册,生成idea的又有一个power.conf ,不替换power.conf就注册不了了啊