{%hackmd @abc90/temp3 %} # PatriotCTF 2023 # Crypto ## Multi-Numeral Challenge given a binary string ``` 0011010100110011001000000011010100110011001000000011001100110010001000000011010100110010001000000011010100110011001000000011001100110010001000000011010100110010001000000011011000111001001000000011001100110010001000000011010100110011001000000011010100110011001000000011001100110010001000000011010100110011001000000011010100110000001000000011001100110010001000000011010100110100001000000011011000111001001000000011001100110010001000000011010100110101001000000011010100110010001000000011001100110010001000000011010100110001001000000011010100110001001000000011001100110010001000000011010100110010001000000011011000111000001000000011001100110010001000000011010100110010001000000011010100110110001000000011001100110010001000000011010100110100001000000011010100110010001000000011001100110010001000000011010100110100001000000011010100110100001000000011001100110010001000000011010100110100001000000011010100110001001000000011001100110010001000000011010100110101001000000011011000110101001000000011001100110010001000000011010100110010001000000011010100110000001000000011001100110010001000000011010100110100001000000011010100110100001000000011001100110010001000000011010100110100001000000011010100110000001000000011001100110010001000000011010100110011001000000011010100110010001000000011001100110010001000000011010100110011001000000011010100110000001000000011001100110010001000000011010100110101001000000011010100110011001000000011001100110010001000000011010100110100001000000011010100110011001000000011001100110010001000000011010100110011001000000011010100110100001000000011001100110010001000000011010100110001001000000011010100110111001000000011001100110010001000000011010100110101001000000011010100110011001000000011001100110010001000000011010100110100001000000011010100110010001000000011001100110010001000000011010100110011001000000011010100110101001000000011001100110010001000000011010100110001001000000011010000111001001000000011001100110010001000000011010100110100001000000011010100110111001000000011001100110010001000000011010100110011001000000011011000110101001000000011001100110010001000000011010100110011001000000011010100110110001000000011001100110010001000000011010100110010001000000011010100110111001000000011001100110010001000000011010100110001001000000011010000111001001000000011001100110010001000000011010100110100001000000011010100110100001000000011001100110010001000000011010100110011001000000011010000111001001000000011001100110010001000000011010100110001001000000011011000111000001000000011001100110010001000000011010100110001001000000011011000111000 ``` solve by CyberChef ![](https://hackmd.io/_uploads/BJTKsy6Ch.png) Flag: `PCTF{w0w_s0_m4ny_number5}` ## My phone Description Some weird triangle man stole my phone, he taunted me by sending me his location but it seems to be encrypted with some odd cipher I've never seen before, could you please help me get my phone back? Flag format: PCTF{city name} (all lowercase) cipher.png ![](https://hackmd.io/_uploads/ByTAo1T0h.png) Solve by dcode [link](https://www.dcode.fr/gravity-falls-bill-crypto Convert the image to words using Gravity falls bill cipher, you will recieve a coordinate list written. Convert the words to numbers (ex one -> 1). Paste the numbers into a longitude & lattitude coordinate locator. Flag : `PCTF{Duluth}` ## ReReCaptcha Boy these captcha's are getting out of hand! First it was some numbers and letters, then they wanted me to find all the crosswalks and stoplights, now, I just got these 4 images in a zip file as the captcha. P.png ![](https://hackmd.io/_uploads/ry903kp0h.png) Q.png ![](https://hackmd.io/_uploads/HyogakaCh.png) E = 65537 CT.png ![](https://hackmd.io/_uploads/BkT7a1602.png) This is basic RSA ,Just give the numbers through the pictures I use GG len to scan the numbers ```python= from Crypto.Util.number import bytes_to_long, long_to_bytes, getPrime p = 752756528841875537911878995753042707647403949554360208367234877025624409540203682761921093915508418655852799100141664622335039455920022213609629067262019404612608900257336038659394515010131767517305770031660647162848609109822750643234640501869740955176655922145570708435217100522986867976006579678556886154064634200401859738311135275046545253349948244695029660140086807289271141101862789519751792359117649145998563961368942821022739792392716620716795592972055314693267400368927621775645833555066476806996288903284102193917193424100068717536343788993196099054983601286805432602788326469869468644448618558376266945936822260704639989072737441301312016573245856870596451013862168846041144962976913828840204703903519058925554216678932337578982416183815574423593903203140061821312979288304894805529113548445359754020916457961543405670043499378618149742163277100368075376976838192481235095913624354114215289486427358337371249645934091262158698478769080944913191018283682299227448548572620178211758775226399248736351823883253425428859608839822967748417750750768678997191631591453855893210333524224040810300416007274952248435723849035137713609019261006737832050925751968653488941495762445378969236893490220931960617082372175080757226428538037 q = 880398969251452887308660917504486182562846904076287121291763168719274136746566491678268037510905591990771798869782714420383346558397372393848950944120645649208321456758294667377506618947318155191556866564510660193561519685221217401809653517643739084470712009338319620153911750948178187377988580670621276663435429513039194166524665848331078509242778461325908028625612645176647057551931509423846025480365963513278356214803825583621656344773968156935822116713294271209716208332966958714033498575400100929432657699444697408341784580190674105709745459315906374144815643729066799108493717417753626735266610965158888422349537481792575479701428877195230383568296602594553805793662138189357884360599766137250987445388558207947305949875916134750004434379767332412127692481777269654899411040863041093873128187130822708039864773659377990453077182559620579273207601721543020232868137483373438109337018806333516965007507716183075768926336370269493707028653198744031420944067462865900096247705191920717575149703524335706216759290920064723973507925674189242744371890566278426602689696896442712046610306732798031648865549772061987449249681612534599958604135136995325790860158962960039727556175624948552406762985831640742320290062631120287472335619521 ct = 54759004599647026122514406856463259157378742086576765421244403681057296667830958496097262677746909468103297432816490414974960025967213693421040371093540798741957150802518404127189506742415632446902481096660685226143139168835776151244118812818745848450316412121438483636074283621696771442062588211105702224797096594284830392179478934633773789319724361281826846525046587704425880624392223072702388140497093800595319096777828899843167601670276914798992771993918276031148033426480942116222001562109013541640188092750398752212726596965440829166079035212641935716410853385684323732317195302607653110572864832832492308614332695688026288520379691225852762946806737257238301231217698751952484355171918946864695694585061331718299798994297433154149373824622985169040067985382226600836882257453757742535197828643434202698460569184108581507634281208686802314678004371660462919488865692183302431661256061955513742244618890434230273318857591946851400449861980175942498279589784406195234672687906617881785093459544645790910945383784867571124154943079571223415398926441026293968354045886500561571326810144583303737574480859608505324180488889170197186871175999271657954999333530291298833058735090465076060239548834720762411779404098209293580868238466921597526031645695700528053632374874845185932714808431370633811502523716823233253451786716629551331404364972256882272398057080620635036019083703322493946834189252061534859326525293003316374735791004880070727032995927925012517689373392639682427582718014579410960338409525830939648282656446532813746549464546747380511872293584924550440836335584666857767951458610836477980076516864059214230403983895530230891408789302306325203234906970983917665145158863889393533463367162504710902317594257056239723173936694745323601923224395095916354161650048792002668682709118545891847039556531344563788200718268073364636546696496449249304700845489683618878058637196637029487619802085884870782067462172988768589896393636504395939721367767239915021596943439462134035647695619496772122726337729191387011155654027977443603283338951893855590636103517011604511158111104893275895159828829025697557539673460337393857004875529156640158439781534266181143797969599285806376638562160457655232891670383782099559129401371578394437360288146260479509996113420815925580470892601019143611638145200265373771650504910779904325868578063492818604204326923531004660704531023499416374365214282656114536666455627295115405857300937775736555543797882713184445755824314743287083 e = 65537 d = pow(e, -1, (p-1)*(q-1)) m = long_to_bytes(pow(ct, d, p*q)) print(m) ``` Flag: `PCTF{I_H0P3_U_U53D_0CR!}` ## Secret Wall Code Description We found this werid symbol language in a secret backroom wall. We have scanned the symbols and need your help figuring what it means. We were able to figure out one symbol. Challenge given 2 images cipher.png and E.png cipher.png ![](https://hackmd.io/_uploads/BJSrR16Rh.png) E.png ![](https://hackmd.io/_uploads/H1bvAJTR2.png) ![](https://hackmd.io/_uploads/r1b2RypRn.png) Manual Solving: Steps to get the Key if cannot find on the internet Step One: Break Alphabet into 6 Groups with Z on its own A B C D E | F H G I J | K L M N O | P Q R S T | U V W X Y | Z Step Two: Every other Row Reverse E D C B A | F G H I J | O N M L K | P Q R S T | Y X W V U | Z Step Three: Reverse The Entire time Z | U V W X Y | T S R Q P | K L M N O | J I H G F | A B C D E | Step Four: Start at end, Alternate Back, Loop E C A G I | O M K Q S | Y W U D B | F H J N L | P R T X V | Z KEY ![](https://hackmd.io/_uploads/H1Sa0ya03.png) Create a variation of the pigpen cipher using hexagon From the links above should be able to see the pattern. Then it becomes a substitution cipher Flag: `pctf{fnaf_is_pretty_insane} not case sensitive` ## Breakfast Club Challenge given some hashs ``` SHA 511993d3c99719e38a6779073019dacd7178ddb9 SHA1 32096c2e0eff33d844ee6d675407ace18289357d MD2 ae8033c09e7cf93b230414cd919da992 MD4 189bb272d916eea5b99b2a572ad93e9a MD5 f95b70fdc3088560732a5ac135644506 SHA224 7e27c59a202f5e2b2b3b5458300140ef7aa7edc3a97a605b788546a1 SHA256 c3641f8544d7c02f3580b07c0f9887f0c6a27ff5ab1d4a3e29caf197cfc299ae SHA384 1861ebe932dc65c5f04d33f6972b13acc8b1e572344016bf3cc950f60bfad6fdc0e32f0318e8bba57cf756eac0a49fce SHA512 9032fb94055d4d14e42185bdff59642b98fe6073f68f29d394620c4e698a86fb2e51351ca6997e6a164aae0b871cf789fbc6e0d863733d05903b4eb11be58d9c SHA3_224 d22e03747b83667e3e84c78e9fb49f7c9376334b9cb337addbdf3ff9 SHA3_256 d14a329a1924592faf2d4ba6dc727d59af6afae983a0c208bf980237b63a5a6a SHA3_384 3bd4e7dcad9d3c02adfa7aa5388727d346278a9a7b007f497b48a4fa2a12b9545c820df150854a8f8c494275bd6fd941 SHA3_512 2d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c TupleHash128 aed477850ed48df54054e9d3e7b8cae7e1764d949adb68fe4f24802ec464cb6c334ef97cc0453471fac5faf0118265bc9388062ccb704d5ac4010489bee201da TupleHash256 a130e4df9144790d9c8824f90f4c1220a3eb5aa0cb296ab1f4f41f23f3ed0800f2ac3fad4f235a4ee601a8ca8bf0be394e06e53e2f789a6272f1bc54c4901d0c BLAKE2s 5abf6b1a79dee98ea32a98195c61a667c29a3674e79c82e43f0d19b0efa4b6f7 BLAKE2b 7ae26253cfd42a3a090c44023c234ec63d0ffe63f8ad40b7913f3f646503b7a7cb8ac571d42a311ef71508344de72f30b57e5c100b402130060ebc947e07a59b ``` Each is only a single letter,so we can brute force ```python= from Crypto.Hash import SHA, SHA1, MD2, MD4, MD5, SHA224, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, TupleHash128, TupleHash256, BLAKE2s, BLAKE2b algos = [SHA, SHA1, MD2, MD4, MD5, SHA224, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, TupleHash128, TupleHash256, BLAKE2s, BLAKE2b] import string with open("BreakfastPasswords.txt", "r") as f: hashes = f.readlines() flag = "" for i in range(len(hashes)): algo, hash = hashes[i].split(" ") algo = algos[i] for char in string.printable: test_hash = algo.new() test_hash.update(char.encode()) if test_hash.hexdigest() in hash: flag += char print(flag) ``` Flag: `PCTF{H@5H_8R0WNS}` ## MasonCompetitiveCyber Challenge given file txt ``` MMMMM‌‍aaaaaaa‌‍ssss‌‌oooooonnnnnCCC‌‌CCCC MMMMaaaaaaassssss‌oooo‍‌nnCCCCCCCCCC‌‌CCCCC MMMMMM‌‍aaaaaaas‍oooonnnnn‌‍CCCCCCCC MMMMMMaaaaaa‌‍sssooo‌‍nnnn‌‌CCCCCCCCC MMMMMMMMMM‌aaaa‍‌s‌‌oo‍‍nnnCCCCCCCCCC‌CC MMMMaaaaaaaaaasssooonnnnnnnnnn‌‍CCC‍‍CCCCC‍‌ MMMMMaaaaaaaaaa‍‍sooooooo‌nCCCCCCCC‍‌CCCCCCCCC MMMMMaaaaaaaaa‌‍sooooonnnnCCCCCCCCCCCC MMMM‍‌aaaa‍sss‌‍ooooooonnnnnn‌‌CCCCCCCCCC‌‌CCC MMMMasss‌‌ooooooonnnnnnnnn‌CCCCCCCCCCCCCCCC‍‍ Maaaaaaa‍‌ssss‌‍oooo‍nnnnnnnnCCCCCCCC‌‌CCCCCCCC MMMMMM‍‌aaaaaassssssssss‌‍oooooo‌‌nnnnCCCCC‌CCCCCCC‌‍ MM‍‌aaaaaaaaass‌‌oo‌nnnnnnnn‌‍C‌‌CC‍‍ MMMMaaaaa‍‌sssssss‌ooooo‍‌nnnnCC‍‍CCCCCCCCC MMMMMMaaaaaaaaaassssssssooooooonnnnnnC‍‍CCCCCC‍ MMMM‌‍aa‌‌sssssssssooonnnnnnnnn‌‌CCCCCCC‍‍CCCCCCCCCC‌ M‍‌aasssooonCCCCCCCCC‌‍CCCCCCC‍‍ MMaaa‍sssoooo‌‍nnnnn‍‌CCCCCCCCCC‍‍CCCCCCCCCC MMMaaaaaaaa‌‍soooooooooonnnnnnn‌CCCCCCCC‍‌CCCCCCCCCC‍‌ MMMMMMaa‌‌ssssssssoonnnnnnnnnnCCCCCCCCCCCCCC‌ MMMMMMM‌‌aaaassssssssss‍‍o‌‌nn‍‍CCCCCC‌CCCCCCCC‍‍ M‍‌aaaaaaa‍‌sssssooonnnnnnnCCCCCCCCCCC MMMMMaaaa‌sssss‌‌oo‍‍nnnn‌‌CCCCCCCC MMMMMMMMMMaaaaaaa‌‍sss‌oo‍‍nnnCCCCCCCCCCC MMMMMMMMM‍‌aa‍‌sssssssssooo‌nnnnnnnnnnCCCCCCCCCCCCC MMM‌‌aaa‍‍ssssooooooonnnn‌‌CCCCCCCCCC MMMMMMMaaaaaassssssssss‌‍ooo‌nnnn‍‌CCCC‍‌CCC MMMMMMMMaaaassssss‍‍ooooo‌nnnnn‌‍CCCCC MMMaaa‌‌s‌‍ooooooonnnnnnnnn‌‍CCC‌CCCC MMMMMMaaaaaa‍‌ssss‍‍oooo‍‍nnnnnnnn‍CCCCCCCCCCCCC‌‍ M‌‌aaaaaaaaaasssss‌‌oo‍‍nnnn‌CCCC MMMMMMMMMaaaaaaaas‍‌oooooooonnnnnnn‍‍CC‌‌CCCC‍ MMaaa‌‍sssoonnnnnnnnnn‌‌CCCCCCC‌‌ MMMMMMMaaaaaa‍‌soooooooooo‌nnnnnnnnnnCCCCCCC‌‍C MMMMMM‍‌aaaa‌‍ssoooooooonnnnnnC‍CCCCCC MMMM‌‍aaaaaaaaaa‍‍sssssssssoooooooooo‌‌nnnn‍‌CC‌CCC‌‍ MMMMMMaaaaaa‌‌ssssonnnnnnnnn‌‌CCCC‍CCCCCCCCC‌‍ MMMMMM‍‍aaa‍‍ssooooo‌‍nCCCCCCC ``` Solve by CyberChef ![](https://hackmd.io/_uploads/SyhWxxTRn.png) ```python= from random import random string = 'MasonCC' zero = '\u200C' one = '\u200D' space = '\uFEFF' count=0 flag = '01010000 01000011 01010100 01000110 01111011 01001101 01000000 01110011 00100100 00110000 01001110 01011111 01000011 01001111 01101101 01010000 00110011 01110100 00110001 01110100 00110001 01010110 01000101 01011111 01000011 01011001 01000010 00110011 01110010 00100001 01111101' for i in range(38): for j in string: #print(int(random()*10)+1) print(j*(int(random()*10)+1), end='') if(random()*10>5.2): for i in range(2): if count < len(flag): if(flag[count] == '0'): print(zero, end='') count+=1 elif(flag[count] == '1'): print(one, end='') count+=1 else: print(space, end='') count+=1 print() print() print(count) print(len(flag)) ``` Flag : `PCTF{M@s$0N_COmP3t1t1VE_CYB3r!}` ## MasonCompetitiveCyber2 Challenge given file ``` M⁢M⁣aa⁢a⁣a⁣ass⁢s⁢s⁣o‍o⁢o⁣n⁣C⁢CC⁣C⁣ M⁣aaaaaa⁣aa‍a⁢a⁣s⁣on⁣C⁢C⁣C⁢C⁣CCC‍C⁢C⁢C⁣C⁢CC M⁢MM⁣a⁣sss⁣o‍oo⁢o⁣n⁣nCC⁣C⁢C⁢C⁣CC⁢CCCCC M‍M⁢M⁣a⁣a⁢a⁢as⁣o⁢o⁣n‍n⁢CC⁢C⁣CC⁢CCC⁢CC⁢CC⁢C M⁢M‍M⁢M⁣M⁣M⁢M⁣Maaaa⁢ss⁢o⁢o‍oooo⁢o⁣onC⁣C⁢CCCC⁢CC⁢CC⁢C⁣CC‍CC⁢C⁣ MM⁣MM⁢aaaaa⁣a⁣a⁢a⁢a‍s⁢onC⁣CC⁣C⁢C⁢C⁣C⁣C⁢C‍C⁢C M⁣a⁣a⁣sso⁢nCC⁣C⁣C⁣C‍C⁢C⁣CC⁣C⁢ M⁢M⁢M⁢M⁣a‍aa⁢a⁣a⁣aa⁣s⁣o⁢o⁢oo⁣n‍n⁢n⁢n⁣nn⁢CC⁢C⁢C⁢C⁢C‍C M⁢M⁣M⁣a⁣a⁢a⁣s⁢on⁢C‍C⁢C⁣C⁣C⁢C⁣C⁢C⁢ M⁢a‍s⁢o⁣n⁣C⁢C⁢C⁣CCC⁢ MM⁣aa‍a⁢aa⁣a⁣a⁣a⁢s⁢s⁣oo⁢o‍o⁢o⁣o⁣o⁢n⁢CC⁣CCCCC⁢C⁣C‍C⁢ M⁢M⁣MM⁢a⁣s⁣oo⁢o⁢n‍C⁢C⁢C⁣C⁢C⁢C⁢C⁢C⁢CC‍CC⁢C⁣CC⁣C⁢C⁣ M⁣a⁣as⁢so‍n⁢C⁣C⁣CC⁢CC⁣C⁣CCC⁣ MM⁣a‍a⁢a⁣aa⁣a⁣ss⁢oo⁣o⁣o⁣o‍o⁢o⁢n⁣n⁢nC⁢C⁢C⁢C⁢C‍C⁢C⁣C⁣C⁣C⁢C⁣C⁢C⁣CC‍C⁢ M⁣M⁣M⁣M⁢M⁢M⁣M⁣a‍ass⁢s⁣s⁣s⁢s⁢o⁣n⁢CCCC⁣CC‍C⁢C⁢C⁣CCC⁢ M⁢a⁢aa⁢a⁢a‍a⁢a⁣ss⁣o⁣o⁢o⁣onC⁢C⁢C‍C⁢ Ma⁣a⁣ss⁢s⁣s⁢o⁢o⁢n‍n⁢n⁣C⁣C⁢C⁢C⁣C⁢C⁣C‍C⁢C⁣CC⁣C⁣ M⁢aa⁢a⁣a⁣a‍a⁢s⁣onCC⁣C⁢C⁢C⁣CC M⁢M⁣M‍a⁢a⁢a⁣s⁢s⁢o⁢o⁢o⁢o‍o⁢o⁣o⁣o⁢n⁣n⁣nn⁣C⁢C‍CC⁢C⁣C⁣C⁣C⁢C⁣C⁢C⁣C‍CCC⁢C⁣ M⁣Ma⁢s⁣o⁣o⁢oo⁣o‍ooo⁢on⁣C⁣C⁢CCCCCC⁢C⁢ M⁣M⁢M‍aa⁢aa⁣s⁣s⁢ss⁢s⁣s⁢o⁣oo‍o⁢oo⁣o⁣n⁣C⁢C⁢C⁣CC⁢C‍CC⁢ M⁣M⁣Ma⁣a⁢a⁢aa⁣s⁣s‍oo⁢o⁢o⁣o⁢o⁢o⁢n⁢n⁢CCCC‍C⁢C⁣CCC⁣C⁣C⁢C⁣C M⁢a⁢aa‍s⁢s⁣o⁣o⁢o⁣oo⁣o⁣n⁣n‍nn⁢n⁢CC⁣CC⁢CC M⁢M⁢M⁢M⁢aaaa‍so⁢oo⁣nC⁣C⁣CC⁢C⁢C⁣C⁣C‍ M⁢Ma⁣a⁣a⁢a⁣a⁣aa⁣s⁣s‍ssss⁢s⁣o⁣nn⁢n⁣C⁣C⁢C⁢C‍CC⁢C⁣CC⁣ MM⁣a⁢a⁣aa⁣aa⁢so‍oon⁢C⁣C⁣C⁢CC⁢C⁣C⁢CC⁣CC‍ Ma⁢aa⁢s⁣s⁢o⁢o⁢n⁢C⁢C‍CC⁢CC⁣ M⁣M⁣M⁢a⁣a⁢a⁢aa‍aa⁢a⁣a⁣as⁢o⁣o⁢nn⁢C⁢C‍CC⁢C⁣C⁣C⁢ M⁢M⁣a⁢a⁣a‍a⁢a⁢ss⁣s⁢o⁢o⁢oo⁢o⁢o‍onC⁢CC⁣CCCC⁣C⁣C⁢C⁢C M⁣M⁢M‍a⁢aa⁣s⁣oon⁢C⁢C⁣C⁢C⁣C‍C⁢C⁣CC⁣C⁣C⁢CC⁢CC⁣C⁣C‍ M⁢M⁣M⁣as⁣s⁢s⁣so⁢o⁢o‍o⁢o⁢o⁣o⁣o⁣n⁢C⁣CC⁢C‍C⁢C⁢ MM⁣M⁢a⁢a⁢ss⁢oo⁢nn‍n⁢C⁢C⁣C⁣C⁢C⁣CC⁢C⁣C‍C⁢C⁢ MMa⁣a⁢aaa⁢a⁢s⁢on⁢C‍C⁢C⁢CC⁣ Ma⁣s⁢on⁢C⁣C⁣CCC‍C⁢C⁢C⁣C⁢ Ma⁢a⁢a⁢s⁢o‍n⁢C⁢C⁣C⁣ M⁣M⁢M⁢M⁢M‍M⁢M⁢as⁣s⁢sss⁢oo⁢o⁢oo⁢n‍C⁢CCC⁢C⁣C⁣ M⁢M⁣MMM⁢M⁢a‍a⁢a⁢a⁣a⁢a⁢as⁢s⁢o⁢n‍nn⁢n⁢n⁣CC⁣C⁢C⁣ M⁣a⁣aa‍a⁢a⁢a⁣a⁢a⁢ss⁢ooo⁢oo⁢ooo‍o⁢on⁢n⁣n⁣n⁢C⁢CC⁢C⁣CCCCCCCC ``` Solve by CyberChef ![](https://hackmd.io/_uploads/BJr3ll60n.png) ```python= f = open('MasonCompetitiveCyber2.txt', 'rb') f = f.readlines() values = {'M':5, 'a':3, 's':8, 'o':4, 'n':7, 'C':1} keys = "".join(list(values.keys())) flag = '' for row in f: line = str(row)[2:-1] temp = '' i=0 while i < len(line): if line[i] in keys: temp += line[i] i+=1 else: i+=4 num=0 for char in temp: num += values[char] flag += chr(num) print(flag) ``` Flag: `PCTF{M0r3!_C0mpET1tIve_CyB3R_@_M4$$on}`