From da19dd05d1d83b2fddb6e0a5fd5cbf4fd5e35d1c Mon Sep 17 00:00:00 2001 From: eliboa Date: Sat, 12 May 2018 19:03:41 +0200 Subject: [PATCH] Added an "auto inject" checkbox to automatically inject payload after selection or/and when the Switch is plugged in RCM mode. --- TegraRcmGUI.rc | Bin 13382 -> 13246 bytes TegraRcmGUI.vcxproj | 5 + TegraRcmGUI.vcxproj.filters | 15 +++ TegraRcmGUIDlg.cpp | 203 ++++++++++++++++++++++++++++++------ TegraRcmGUIDlg.h | 21 +++- presets.conf | 0 res/Thumbs.db | Bin 0 -> 43008 bytes res/bitmap2.bmp | Bin 0 -> 1270 bytes res/driver_ko.bmp | Bin 0 -> 85854 bytes res/init_logo.bmp | Bin 0 -> 29678 bytes res/rcm_detected.bmp | Bin 0 -> 85854 bytes res/rcm_undetected.bmp | Bin 0 -> 85854 bytes resource.h | Bin 2834 -> 3198 bytes 13 files changed, 208 insertions(+), 36 deletions(-) create mode 100644 presets.conf create mode 100644 res/Thumbs.db create mode 100644 res/bitmap2.bmp create mode 100644 res/driver_ko.bmp create mode 100644 res/init_logo.bmp create mode 100644 res/rcm_detected.bmp create mode 100644 res/rcm_undetected.bmp diff --git a/TegraRcmGUI.rc b/TegraRcmGUI.rc index 518213079519fc510e00bc184e5fdefe1aa0c763..8890aa276533325ffc82cd60a22c125a2a9ff637 100644 GIT binary patch delta 559 zcmZuuyGlbr5Iq5(Ni=Bm1_d=Lh?48YBsb>TnFR5L27G{>7!_YJf+$fj#>UcWK& zz%A@7ZEdUs1wX>xv+JV@%k0j~IkPio_j&tit8!A;6hjmVmUcmiPzGHD@3 z8^Mq~)W5VSl0%wJ#H4S_b;ElwN?c`Q`U(}k8r7#Gy}pc$ zdux($#;Uo(l%M2jVv%bV8BAavOWYSQjX9(+Nk5Epgr)2&hGJw^sh5)PG^Fy?u~M*F zKH$&x=WxJvggo~(Y+w_I>^6u!?G?D^W#8YUH7iXCPWwAK-(s$u!ZE84ShIrycFA97 z+(%9d%hZvjrfDjgp^6M+lUQ2UsH%cyrnT}veg;#TJ4;>`E4rI{DfJ6Vh5bK46TI@( z6_83t#hq$?tM|m^GuSSU(OIkh_b195hR4?VTcg{Pa378PHn}q|q;I%YHX=E(EU%oI Tt&DGIo$@+-sW5lj`l$T|JG^N@ delta 520 zcmZ`#ze_@46g>~p{E1Ndgam(qQ22cKp4O{TOhQN#HEI(r%!a5TA}FaPT!e-@*dqN4 zg+;VPL$pNg4ebpr{RiFm=@Qg%@8vu9oO{1>AGV%bSBF-&1_Mbb2y;yj&a82X9>?E2 z1{N69k>Wg$BwgA*+(XP5A?J2O%F??dMqhS$(nM!5$64c=HaYa-$Obfl46`mcCNpI+ zspmNIY0Nh@zj_pNw*TqeI@|s~H9YU$5u&C`^-QCJ7Ix7@4$IK#&J`N@NeNd&KZTP6 z-m9{Cm1~rLk;fvksIj_=3`d?{3U?~lN1bCE8-iD1#AM}BK#4cx_;|-0YXV)Wo@&8{{E5taGliB!eQ$OI*v07Ev8syZbiDpor|FO?k?q@f2OW zE@XLxKgmH!qq;XT81r|%6jmDaIdel@Wx`$KWhxrj!5*U2iFYKO`btma02LFbl0JA% Hd|Q41BOPLN diff --git a/TegraRcmGUI.vcxproj b/TegraRcmGUI.vcxproj index d3a1f48..dec9e5c 100644 --- a/TegraRcmGUI.vcxproj +++ b/TegraRcmGUI.vcxproj @@ -232,9 +232,14 @@ + + + + + diff --git a/TegraRcmGUI.vcxproj.filters b/TegraRcmGUI.vcxproj.filters index 06ab70e..d9c0355 100644 --- a/TegraRcmGUI.vcxproj.filters +++ b/TegraRcmGUI.vcxproj.filters @@ -98,5 +98,20 @@ Resource Files + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + \ No newline at end of file diff --git a/TegraRcmGUIDlg.cpp b/TegraRcmGUIDlg.cpp index 5d9557f..04d123e 100644 --- a/TegraRcmGUIDlg.cpp +++ b/TegraRcmGUIDlg.cpp @@ -6,29 +6,7 @@ #include "afxdialogex.h" #include "TegraRcmGUI.h" #include "TegraRcmGUIDlg.h" -#include "TegraRcmSmash.h" -#include "res/BitmapPicture.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -std::string exec(const char* cmd) { - std::array buffer; - std::string result; - std::shared_ptr pipe(_popen(cmd, "r"), _pclose); - if (!pipe) throw std::runtime_error("_popen() failed!"); - while (!feof(pipe.get())) { - if (fgets(buffer.data(), 128, pipe.get()) != nullptr) - result += buffer.data(); - } - return result; -} + using namespace std; @@ -39,6 +17,11 @@ using namespace std; TCHAR* PAYLOAD_FILE; int RCM_STATUS = -10; int LOOP_WAIT = 0; +BOOL WAITING_RECONNECT = FALSE; +BOOL AUTOINJECT_CURR= FALSE; +BOOL PREVENT_AUTOINJECT= TRUE; +BOOL DELAY_AUTOINJECT = FALSE; +CString csPath; // CTegraRcmGUIDlg dialog @@ -76,15 +59,30 @@ BOOL CTegraRcmGUIDlg::OnInitDialog() { CDialog::OnInitDialog(); + TCHAR szPath[_MAX_PATH]; + VERIFY(::GetModuleFileName(AfxGetApp()->m_hInstance, szPath, _MAX_PATH)); + CString csPathf(szPath); + int nIndex = csPathf.ReverseFind(_T('\\')); + if (nIndex > 0) csPath = csPathf.Left(nIndex); + else csPath.Empty(); + RCM_BITMAP0.SetBitmap(INIT_LOGO); RCM_BITMAP1.SetBitmap(RCM_NOT_DETECTED); RCM_BITMAP2.SetBitmap(DRIVER_KO); RCM_BITMAP3.SetBitmap(RCM_DETECTED); - SendMessage(PAYLOAD_PATH, BM_CLICK, 0); - // Add "About..." menu item to system menu. + string value = GetPreset("AUTO_INJECT"); + if (value == "TRUE") + { + AUTOINJECT_CURR = TRUE; + CMFCButton*checkbox = (CMFCButton*)GetDlgItem(AUTO_INJECT); + checkbox->SetCheck(BST_CHECKED); + } + CString file(GetPreset("PAYLOAD_FILE").c_str()); + this->GetDlgItem(PAYLOAD_PATH)->SetWindowTextW(file); + //PREVENT_AUTOINJECT = TRUE; - // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); @@ -185,6 +183,23 @@ void CTegraRcmGUIDlg::OnTimer(UINT nIDEvent) { if (nIDEvent == ID_TIMER_SECONDS) { + + CButton *m_ctlCheck = (CButton*)GetDlgItem(AUTO_INJECT); + BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; + if (AUTOINJECT_CURR != IsCheckChecked) + { + if (IsCheckChecked) + { + SetPreset("AUTO_INJECT", "TRUE"); + DELAY_AUTOINJECT = TRUE; + } + else + { + SetPreset("AUTO_INJECT", "FALSE"); + DELAY_AUTOINJECT = FALSE; + } + AUTOINJECT_CURR = IsCheckChecked; + } TegraRcmSmash device; int rc = device.RcmStatus(); @@ -209,7 +224,7 @@ void CTegraRcmGUIDlg::OnTimer(UINT nIDEvent) pCtrl3->ShowWindow(SW_HIDE); this->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); this->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); - s = "Please Install the lbusbK driver (download Zadig)"; + s = "Install lbusbK driver (download Zadig)"; } else @@ -220,14 +235,37 @@ void CTegraRcmGUIDlg::OnTimer(UINT nIDEvent) this->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); this->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); s = "Waiting for Switch in RCM mode."; + + string value = GetPreset("AUTO_INJECT"); + if (value == "TRUE") + { + DELAY_AUTOINJECT = TRUE; + } } if (rc != RCM_STATUS) { CStatic*pCtrl0 = (CStatic*)GetDlgItem(RCM_PIC_4); pCtrl0->ShowWindow(SW_HIDE); - CA2T wt(s.c_str()); - SetDlgItemText(INFO_LABEL, wt); + + if (rc == 0) + { + CString file; + this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); + + if (DELAY_AUTOINJECT && file.GetLength() > 0) + { + InjectPayload(); + DELAY_AUTOINJECT = FALSE; + } + else + { + s = "\nSelect a payload :"; + CA2T wt(s.c_str()); + SetDlgItemText(INFO_LABEL, wt); + } + } + if (rc <= -5) WAITING_RECONNECT = FALSE; } RCM_STATUS = rc; } @@ -239,14 +277,52 @@ void CTegraRcmGUIDlg::OnEnChangePath() this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); PAYLOAD_FILE = _tcsdup(file); - std::string s = ""; + if (!PREVENT_AUTOINJECT) + { + CT2CA pszConvertedAnsiString(file); + std::string file_c(pszConvertedAnsiString); + SetPreset("PAYLOAD_FILE", file_c); + } + + std::string s = "\nSelect a payload :"; + + + CButton *m_ctlCheck = (CButton*)GetDlgItem(AUTO_INJECT); + BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; + if (IsCheckChecked && !PREVENT_AUTOINJECT) + { + if (RCM_STATUS != 0) + { + DELAY_AUTOINJECT = TRUE; + s = "Payload injection scheduled.\nWaiting for RCM mode."; + } + else InjectPayload(); + } + PREVENT_AUTOINJECT = FALSE; CA2T wt(s.c_str()); SetDlgItemText(INFO_LABEL, wt); + } void CTegraRcmGUIDlg::OnBnClickedButton() { + InjectPayload(); +} + + +void CTegraRcmGUIDlg::InjectPayload() +{ + if (WAITING_RECONNECT) + { + CString message = _T("Payload already injected. Are you sure you want to overwrite the stack again ?"); + const int result = MessageBox(message, _T("WARNING !"), MB_YESNOCANCEL | MB_ICONQUESTION); + if (result != IDYES) + { + return; + } + } + LOOP_WAIT = 1; TCHAR* args[2]; args[0] = TEXT(""); @@ -254,7 +330,7 @@ void CTegraRcmGUIDlg::OnBnClickedButton() string s; if (PAYLOAD_FILE == nullptr) { - s = "No file selected !"; + s = "\nNo file selected !"; CA2T wt(s.c_str()); CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt); LOOP_WAIT = 0; @@ -268,7 +344,8 @@ void CTegraRcmGUIDlg::OnBnClickedButton() if (rc >= 0) { - s = "Payload injected !"; + s = "\nPayload injected !"; + WAITING_RECONNECT = TRUE; } else { @@ -304,7 +381,7 @@ void CTegraRcmGUIDlg::OnBnClickedShofel2() BOOL payload_exists = infile2.good(); if (!coreboot_exists || !payload_exists) { - s = "Linux kernel found not found in \\shofel2 dir"; + s = "Linux kernel not found in \\shofel2 dir"; CA2T wt(s.c_str()); CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt); @@ -360,7 +437,7 @@ void CTegraRcmGUIDlg::OnBnClickedShofel2() } else { - s = "Payload injected !"; + s = "\nPayload injected !"; } } else @@ -372,3 +449,61 @@ void CTegraRcmGUIDlg::OnBnClickedShofel2() LOOP_WAIT = 0; } + + +string CTegraRcmGUIDlg::GetPreset(string param) +{ + CString rfile = csPath + "\\presets.conf"; + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + ifstream readFile(rfile_c); + string readout; + string search = param + "="; + std::string value = ""; + if (readFile.is_open()) + { + while (getline(readFile, readout)) { + if (readout.find(search) != std::string::npos) { + std::string delimiter = "="; + value = readout.substr(readout.find(delimiter)+1, readout.length()+1); + } + } + } + readFile.close(); + return value; +} + +void CTegraRcmGUIDlg::SetPreset(string param, string value) +{ + // Preset conf gfile + CString rfile = csPath + "\\presets.conf"; + CString wfile = csPath + "\\presets.conf.tmp"; + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + CT2A wfile_c(wfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), wfile_c.m_psz); + + // Replace or create preset in file + ofstream outFile(wfile_c); + ifstream readFile(rfile_c); + string readout; + string search = param + "="; + string replace = "\n" + search + value; + BOOL found = FALSE; + while (getline(readFile, readout)) { + if (readout.find(search) != std::string::npos) { + outFile << replace; + found = TRUE; + } + else { + outFile << readout; + } + } + if (!found) { + outFile << replace; + } + outFile.close(); + readFile.close(); + remove(rfile_c); + rename(wfile_c, rfile_c); +} diff --git a/TegraRcmGUIDlg.h b/TegraRcmGUIDlg.h index edd845d..c91f754 100644 --- a/TegraRcmGUIDlg.h +++ b/TegraRcmGUIDlg.h @@ -3,6 +3,21 @@ // #pragma once #include "res/BitmapPicture.h" +#include +#include "TegraRcmSmash.h" +#include "res/BitmapPicture.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + // CTegraRcmGUIDlg dialog class CTegraRcmGUIDlg : public CDialog @@ -28,7 +43,7 @@ class CTegraRcmGUIDlg : public CDialog // Implementation protected: HICON m_hIcon; - // Generated message map functions + // Generated message map functions virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnIdle(); @@ -43,6 +58,8 @@ class CTegraRcmGUIDlg : public CDialog int STATUS; afx_msg void OnEnChangePath(); afx_msg void OnBnClickedButton(); + afx_msg void InjectPayload(); afx_msg void OnBnClickedShofel2(); - + afx_msg string GetPreset(string param); + afx_msg void SetPreset(string param, string value); }; diff --git a/presets.conf b/presets.conf new file mode 100644 index 0000000..e69de29 diff --git a/res/Thumbs.db b/res/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..9f30d5a262c1219adab86f9ab8f779f7040c871b GIT binary patch literal 43008 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 a{|B*v7zjZ^ApR&A4S~@R7!82|3IPD0SCat% literal 0 HcmV?d00001 diff --git a/res/driver_ko.bmp b/res/driver_ko.bmp new file mode 100644 index 0000000000000000000000000000000000000000..763c2b1c957707f784ec3d16ee0da20ee197fcea GIT binary patch literal 85854 zcmeI536vDY8OMXiiZ}W^5TD}p5D!ES1p|nZ2LT^Pg52RsA`k%~7{XyZA_+GvZn#B6 z4&ez#R!)^5ha4g(r*erdhaiW-a>GO1Jhr<+1cvq>gwwM_nYeO z>Z-46)N9?K$glM9IQ~lG?{oYO!(WkK6~{NyjP;QP<4fbf3a|pK04u->umY?AE5Hh{ z0;~WlzzVPetN<&(3a|pK04u->umY?AE5Hh{0;~WlzzVPetN<&(3a|pK04u->umY?A zE5Hh{0;~WlzzVPetN<&(3a|pK04u->umY?AE5Hh{0;~WlzzVPetN<&(3a|pK04u-> zumY@r{|c;Iw=O$7yGfHKWy_Ym>86{qva)1{NE{DF0srkB&>r&h^9K$bc>n$P2csMB z#a@ActnTM-3JMAa3>Z+XSTXw}<+VX7;HSZZD0}_-^$$GoK#+>@zMLo!gzbIX$Gh*o zTeN6VCx@9tp3tz5bC^2;yxgC)64<|OK$v^H(p6aY)|E|{weiYu6=L4yXr{PK&pXsubZMmBl? zapvkm;|fOa-@m`NTm}D-j=8!3xx&+yjT<+5h!%5YW91rywYoWhJ_QJ-pTY91RIOSy z=E??!c&knq=(7EHjls$EFANn&EYwr5`1rqL2=$$#?awzdoH(sb{XDiRUiqG+r;#hb z_Q@xo7{{FQzwoqIGFR;<8p3VfYXCEQomMHz)tq$}vTofM1X}6ks#dL97Dt{`QrNiq zaIKEVjsu2R4A; zTC_!bYpEeZ&lwh+%vi0j-ThOcRd0W$C+<5^C{gCYt9W|3!l`h?h!OgsrX0e?)%N{{ zWYbnzL$WdQd;Mr*p|yW|&)BNkfI{hB;UvmQJ68=GHcXi*y@0TBbvW|W;=~#4*Zr&s z*|1xeW#*TK)^?eyCnD4tRw!NY;8i5;TwyGF9HOM3it zp|uOYu}JiaCAplmbA{*8o;=n`f~)%V>#tqA77wgX!$6BGue{RCPrQ`$a)o{>vg3CLjpLBbO7SZFG&&oKBi;6+_NTXfhYEYY z5V*q0NE~?55w~1fjs(N_!*~>#)6>NjuD$VT^Ok`}!x7p)KF~iE`d9-~YpB+Fiq>bA z)_kmW1~ZVUr-YU(^U3%8`SUm4c%zx0cq!@PDs`g=P(ofXJ((l%l~Q9Oh!)0rz9 zKEuP+ZMWUlvuDrY!-uzT-~OtruEKq2-@biMpFRz`&{9pAG6jj?=jo@P9z1yPph1JG zSFdh~lSpK)n5!qAc;d*BBcg%Yx^-*u;>AJ8wbx$z=%bI`eDlpj%NuXJA@U$HWXKRf zkvYO#g`6uiP20C`mw`ci>eQ(UDm81?RPtcarqyDuLe3Q&>zRSUq-=#NrLm$-a6(kF ziACm$xk{QVTx$uCln8Sba;`8M2Ty7gw5Cm)rf_087z~&3N;a{`T=~rvCd)tj?6Ym# zwyj&YZix~lgz^p}0rZPjsZvGuM)K{q-%>p*R;<{jO`94uYJfe|RvEN|Go#HRFjqct zh3jD$Wy_W=N>hL-^EQ{eW=jRY6?S^Z9e2F)$}3~WjKL%3Yp%Hlk8Eboo-JyQI^2Hy z?Z}2!3pgR*GTvNOIfc3MgR85rzFM}6Fc3vBJ+NQDezFy8;=ypGRAAV!VM?7BE?lVO zv0r4aJm(56)totV6uX!g9gYx43s(mZMxWP8^>%d+3v#+KWzW2 z$J(@Tb>_?&bG==?nS!};#g*c(&yosU_nM7jnKF6uWXlrd#I$g=c=2MT!Uql=zw!g;ARI zRPD#;Tw@3|Ypqs&pn=fJ9oo6`G4U|4^N-QtcCl1V!{mssc4|FL)40n0Q_iK&BE-;Q zdB9%lw~P$G8*c1zV$>xkMwYIOoNc~4P>APE(fM}IPmZOx99L*Zv;YDz@>#?Q$Q98u z7%e8j72GXa>@0p#!b_}laTO03hw1iQVGtdKGiS9Qq62_G-(i^S;86`zY1ZUv3pZ;= zA~S39PZ|UBXe)pRRIn|DPE%sGhT#NPm=>|;XCn{(z4wKYP2mb-|0rNIGB!7J_1o-N zA#>Kp_T`YP?$eFUU&}SNO@gaNjT*%&;UINh~jbPa_D}P`*%1f-8`)YSk*eEC&G{ z*Wu&}&RY;(|1ib_UBG}M!k}Uw?VV*YXD`G9R#AX=4orE#gm(m7WeFr`TT8BnMSQ5> ze2P4RD=H0c8OAJ*)kNV6w-pp>4%MgaAmHpwI}%)>4)now8diz+iZ;Z-VkR|hLf^@8 zRl9a=D$xG>*s){uaKs+1jBKw8>67Ty2fCV8j(H2y#S_-3N(8ihu#xUKF?F>h)R1 zrf4?=SD$UuFoTuCzh)anDO^oisjo*i6b|1Y6lh0+Dd$VTE?1`ea8OariAag}mFT|C&JHvGm7$aNIH*E-)FMoJbTNRlA z_`h!oWk5DduBgnPj_a8PS9Cu}?mo_*Gh7%cT%n0W81<>K7pef=gbJ=O{RbT;_@J3Z z`J%m|IxmZin#2!>7V(`lS9p{IUykwIgraN6d3R9oT)`tZo|w;@H*f#`{dg#F`0(MS zOP9X*;)||cgJOR_NY;_Lq8m4An$V0O;HFO)LPTgoy1o*Z^k7V6K*Y=yItM7=DhnAD zuEgADDo5t3@hD?MF$)Z}LRh;~FGp}?bKQivIW^*RjO18 zSAB*MR{tl?>=-KvySq#)`}$f~{~|a6w6x z#FGMatIBmlJXBm^T%Q$37HKnP%&=rhPPFGr(K&33q2kIs%H0B~NK!#T!S&Z)FH>ZW zGgmf0mhf#euOqsTIy$06HblWu?z>MG-$^`}>vp`IFdjmd=?Ob^nJZtpYSE&F+&hZtRF6FJh!dPd9#6PJ zA)-Lb2;6$OdTnd@^5red5sA!|e_Ul{Wtk@+ELgBWi0>rg30LsIkZ@m^abwvunG?}L zdg-N?+84-N`Nvh6GG)w0LI01vMU=IkaFw5*uM}%ugriz>Z7oxr%p_v2{Nw7byY4dE z1&?yfHnmCdgez17cYHQ`p;Z`iY_719f)|YyEm|~TQOuQpTtR$Xt}AxQ&dyF~6gh)e zT;V0Za1-c?#R$&ZQi_D zm}c(Wx#ajxaebf|MPBrZD;wW0^6oI13#U1pH$|N(g1%79MM~HmDvDyRJmd<_J%k&7 z3}a~3sugs`bLTpB>OA+{bCoMs#$r6z2f`vs#4D~at5GT0W)UtL8aHk{V88(MjSL++ z6vu_%i%ov>D(1>7uF!#?xTnUQJNktb&CNsp>|Gyt#TA+zyp&w2jDL$}u1eGyWg~T{ zRzV6U)1sLxpLTRn7b`fiX|FKgO=J@hT)-;_ z?$-5zhg_jnm@AZU=Dt$lE_ZMDx z0oh!+J}|!mNmM4e2yQMCj&ey6Dr_#eO0JS&+sdZBva|)>)SyVzx^-*IobeLjrC%u_ z^+gO~f9$cx;_cCsbmq#HnOt#&u2E{Kui{``CIz1Mk_IHw;9xZ(;Gz+16o7|?@+;V8~4)~Qn`d2^rQfFGT2c$De9 zVw}@k1>ACliKuv&A6^rQyD;3@;l0VO>f>bKidV4Vgo`nU@C(Pymn$22lG!a+sqFNI z8*VV4M!llQzMMmc4lQ549K-U*j~|a)6%KwY5F}S!yLPp=KCjIf1p?y=W82V4E8LpN?$bl1a5xV(0Io2;)VYV!a9Sbrj@oao&@VA@;>66; zjgQD)0bjWSRPg3!Ujbg5kqY?76~@@$E$|sB8Xr_b1$^QP(umY?AE5Hh{0;~WlzzVPetN<&(3a|pK Y04u->umY?AE5Hh{0;~WlaPcYdf1k=w*Z=?k literal 0 HcmV?d00001 diff --git a/res/init_logo.bmp b/res/init_logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f3308fa70f5044785ff5c40d35fc6bc6399e090c GIT binary patch literal 29678 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 literal 0 HcmV?d00001 diff --git a/res/rcm_detected.bmp b/res/rcm_detected.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bcf73b120ac4a2908b79bd18fef76b2fd178532f GIT binary patch literal 85854 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 literal 0 HcmV?d00001 diff --git a/res/rcm_undetected.bmp b/res/rcm_undetected.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6a8d60bdedff011babd7c85b98695a2dd5d5dd40 GIT binary patch literal 85854 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 N0;~WlzzU?Vz<(dHH-G>D literal 0 HcmV?d00001 diff --git a/resource.h b/resource.h index 4c095a830959522065162ee1dc8636f90595d87b..f397f0228dc929e249af699eee4842df27be708f 100644 GIT binary patch delta 235 zcmbOv_D^C%0Mq1EOc9e$u{bfBPM*jmKG~1SiP@CFVsay!>|`!x8%E2?3z;P+uVE5k zG@hKuq|Iu`V8&nomQ7){Vg|A|FJ#ta+^ojx!p!N+;KAU^;LPAXxsXGDaswmVjK-5Evdd1EV6kF0 zWiXkn$R;~kilH cP>s0ABnd6#xJL