整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          EXE防破解

          EXE防破解

          們所說的exe文件是window可執(zhí)行文件,Portable Excutable,簡稱PE文件

          PE文件格式

          Portable_Executable_32_bit_Structure

          exe破解所涉及的技術(shù)屬于軟件逆向工程軟件逆向可以繞過軟件使用限制、利用軟件漏洞、制造外掛等。逆向工程并不能直接還原代碼,但是可以分析行為特征來還原算法,從匯編層面修改程序執(zhí)行流程。

          如何破解

          http://www.cjzzc.com/article/853.html

          逆向破解步驟

          · 反編譯

          · 調(diào)試

          · 修改數(shù)據(jù)

          防護(hù)策略

          如何防護(hù)

          · 防止反編譯

          · 反調(diào)試

          · 防篡改

          具體落地就是加殼


          所謂的“殼”就是一種對(duì)軟件進(jìn)行保護(hù)的加密程序,它可以具體分為三種:(1)壓縮殼壓縮殼的主要目的是壓縮應(yīng)用程序的體積,例如最穩(wěn)定的UPX可以將一般的應(yīng)用程序壓縮到原體積的30%左右。壓縮殼并不會(huì)對(duì)被加殼程序本身做任何修改,而是直至將其換成一種更加節(jié)省空間的存儲(chǔ)方式,其目的大致類似于我們經(jīng)常使用的RAR或ZIP。經(jīng)過壓縮殼處理過的程序在真正被CPU執(zhí)行前是會(huì)自動(dòng)解壓縮(解密)的。(2)加密殼加密殼的主要目的是保護(hù)原程序不被破解,一般情況下,經(jīng)過加密殼處理的應(yīng)用程序體積會(huì)增加,但也有部分加密殼結(jié)合了壓縮殼的特性,會(huì)在加密完成后再進(jìn)行壓縮。而且一般情況下,加密殼會(huì)對(duì)原程序進(jìn)行一定的修改,例如代碼亂序、代碼混淆等,因此經(jīng)過加密殼處理的程序即便是提交給CPU去執(zhí)行,原程序的代碼也還是發(fā)生了改變。(3)虛擬機(jī)保護(hù)殼虛擬機(jī)保護(hù)殼是近幾年在軟件安全領(lǐng)域內(nèi)流行起來的一種非常強(qiáng)悍的加密保護(hù)方案。它的關(guān)鍵技術(shù)就在于實(shí)現(xiàn)了一個(gè)軟件版的CPU,被加密的可執(zhí)行代碼已經(jīng)不再遵守Intel制定的OPCode標(biāo)準(zhǔn)了,而是執(zhí)行由虛擬機(jī)作者本身制定的非公開的、動(dòng)態(tài)的CPU指令編碼解碼標(biāo)準(zhǔn),我們通常稱之為TextCode。虛擬機(jī)保護(hù)殼會(huì)將被保護(hù)程序的可執(zhí)行代碼重新編碼為自己的軟件CPU可以識(shí)別的格式,并進(jìn)行存儲(chǔ)、加載及模擬執(zhí)行。因此在任何時(shí)候,原程序代碼對(duì)外界來說都將是一個(gè)徹底的黑盒,任何人都很難破解。

          現(xiàn)在的殼已經(jīng)變成一種混合殼,兼具以上幾種功能。

          加殼工具的工作原理解析二進(jìn)制先將文件拆開成一個(gè)個(gè)block,這些 Block 有可能是一個(gè)函數(shù),也有可能是一個(gè)函數(shù)的一部分,里面有地址和代碼指令。可以針對(duì)每一個(gè) Block 選擇加密方式了,如混淆、加密、虛擬化,不同的加密方式強(qiáng)度不同,對(duì)性能的影響也不同,重要的 Block 可以選安全強(qiáng)度最高的,不重要 Block 的選性能最好的或不保護(hù)。安裝殼代碼在程序外部套上殼代碼,加上加密和虛擬化手段以及授權(quán)方式,程序啟動(dòng)從殼開始。編譯保護(hù)將block進(jìn)行保護(hù),實(shí)施假分支、立即數(shù)加密、指令混淆、虛擬化、代碼加密等技術(shù),使得Block 會(huì)被掰開、揉碎、打散,變成多個(gè) Block,而且還分散在各處,不易被反編譯。鏈接和保存對(duì)之前大三的block進(jìn)行鏈接,重定位,使程序加殼后能夠正常執(zhí)行

          幾款加殼工具(評(píng)價(jià)收集于網(wǎng)上,僅參考)

          Virbox Protector(商用)分帶授權(quán)的版本和獨(dú)立殼。帶授權(quán)的版本加殼后需要綁定許可,許可控制軟件能否用,加殼保護(hù)安全。獨(dú)立版的話就只是對(duì)代碼做加殼,防止代碼反編譯。碎片代碼執(zhí)行、外殼加密、混淆、數(shù)據(jù)加密。服務(wù)商提供了較為完善的文檔以及加密方式,提供了較為充分的產(chǎn)品管理平臺(tái),以及云端網(wǎng)絡(luò)加密,并且對(duì)于開發(fā)者免費(fèi)使用。使用評(píng)價(jià):簡單下載使用了一下,提供的功能很多,并且管理平臺(tái)較好。比較推薦這一個(gè)軟件。

          https://shell.virbox.com/

          DRMsoft EncryptEXE加密模式:非綁定模式 ---- 加密后的文件不綁定用戶電腦,但用戶需要一個(gè)開啟密碼才可以打開綁定模式 ---- 一機(jī)一碼授權(quán),加密后的文件不同用戶電腦需要不同的開啟密碼無密碼模式 ---- 加密后的文件無需要開啟密碼即可運(yùn)行,僅對(duì)原始文件做加密保護(hù)一碼通模式 ---- 采用相同秘鑰和產(chǎn)品編號(hào)加密的不同文件,在同臺(tái)電腦上只需認(rèn)證一次特點(diǎn):可以設(shè)置加密后文件的運(yùn)行次數(shù)和有效期;可以設(shè)置加密文件運(yùn)行過程中鎖定用戶鍵盤;可以設(shè)置加密文件運(yùn)行中禁用鼠標(biāo)右鍵;可以設(shè)置用戶提示語,在用戶打開之前顯示給用戶;可以禁止拷貝、編輯、打印;可以禁止虛擬機(jī)運(yùn)行;可以設(shè)置加密后的文件只能從命令行打開運(yùn)行,以便只有你自己的程序可以調(diào)用他;可以禁用打印機(jī);

          可以檢測(cè)用戶電腦是否開啟遠(yuǎn)程桌面服務(wù)并終止運(yùn)行

          http://www.drmsoft.net/

          EXECryptor有支持代碼和資源的壓縮;壓縮功能主要用來減少帶寬占用和加快下載速度。支持多種文件格式,在保護(hù)代碼中插入不同的處理器指令或代碼片段,并使用其它指令替換,這些指令的運(yùn)算結(jié)果都是相同的。是在 CPU 指令層面上混亂代碼而不是在應(yīng)用層上。

          網(wǎng)絡(luò)評(píng)價(jià)兼容性不是很好,但是加密安全性表現(xiàn)良好。

          VProject(有破解版)原創(chuàng)虛擬機(jī)保護(hù)引擎、隨機(jī)指令集、隨機(jī)填充代碼、代碼亂序執(zhí)行、外殼保護(hù)、反內(nèi)存轉(zhuǎn)儲(chǔ)存、區(qū)段合并、資源加密、反調(diào)試、防修改。使用擬機(jī)亂序引擎,可以阻止絕大多數(shù)人逆向分析。使用SDK,進(jìn)行重點(diǎn)加密。所以基本上不影響程序運(yùn)行效率自帶授權(quán)系統(tǒng),正常用戶管理系統(tǒng),黑名單,加密SDK,授權(quán)API等實(shí)用功能,分析使用Vprotect保護(hù)后的程序,將不僅僅是一項(xiàng)技術(shù)活,同時(shí)也會(huì)成為高強(qiáng)度的體力活。

          Axprotect(商用)加密方式:

          在運(yùn)行時(shí)自動(dòng)解密和重新加密軟件的技術(shù),為軟件提供自動(dòng)防護(hù)。該技術(shù)目前支持多種操作平臺(tái),諸如Windows,Linux,Mac OS,.NET 及Java應(yīng)用程序等等。所有的用戶收到的是相同的被保護(hù)軟件版本。可以針對(duì)不同用戶購買的不同功能模塊或者產(chǎn)品類型,個(gè)性化生成對(duì)應(yīng)的許可信息。您有權(quán)決定客戶以何種方式接受許可,或者將許可存放至CmDongle加密狗中發(fā)放給客戶,或者通過CmAct許可文件進(jìn)行發(fā)放。可以對(duì)客戶分配相應(yīng)的許可類型,例如本地單用戶許可、網(wǎng)絡(luò)并發(fā)許可、時(shí)間限制型許可(適用于軟件測(cè)試版)。

          特點(diǎn):

          Protection 保護(hù)工具用于實(shí)現(xiàn)高安全強(qiáng)度的保護(hù)軟件,防止盜版及逆向工程

          Licensing 授權(quán)工具用于實(shí)現(xiàn)便捷、安全的軟件授權(quán),包括創(chuàng)建靈活的授權(quán)模式、整合軟件的業(yè)務(wù)流程,以及采用企業(yè)現(xiàn)行的辦公后臺(tái)系統(tǒng)對(duì)軟件所有的生命周期進(jìn)行完整的管理。

          Security 安全工具監(jiān)控軟件最終使用者,防止來自第三方的惡意篡改及攻擊。

          Vmproject(商用軟件、長期更新)虛擬機(jī)保護(hù)機(jī)制,安全系數(shù)較高,破解難度大

          VMProtect允許對(duì)可執(zhí)行文件(EXE、SCR)、動(dòng)態(tài)鏈接庫(DLL,OCX,BPL)和驅(qū)動(dòng)程序(SYS)進(jìn)行保護(hù)。VMProtect允許對(duì)32位和64位應(yīng)用、庫和驅(qū)動(dòng)進(jìn)行保護(hù)。MProtec保護(hù)的文件可以在幾乎任何版本W(wǎng)indows OS上運(yùn)行,自Windows 95開始。32和64位版本都被支持,VMProtect兼容DEP和UAC。VMProtect允許生成和驗(yàn)證序列號(hào)。手動(dòng)和自動(dòng)生成都被支持。序列號(hào)可以是有限的時(shí)間或日期和硬件鎖定的,而免費(fèi)升級(jí)期間也可以被限制。VMProtect確保它實(shí)際上無法運(yùn)行沒有一個(gè)序列號(hào)代碼。

          網(wǎng)絡(luò)評(píng)價(jià):

          加密的安全級(jí)別很高,破解難度很大,但是加密數(shù)據(jù)多,可能會(huì)影響系統(tǒng)的性能。

          主要功能是代碼加密、內(nèi)存打亂

          文章出自【碼同學(xué)軟件測(cè)試

          碼同學(xué)公眾號(hào):自動(dòng)化軟件測(cè)試

          碼同學(xué)抖音號(hào):小碼哥聊軟件測(cè)試


          在UI自動(dòng)化中,我們經(jīng)常會(huì)遇到上傳文件操作。處理上傳事件是一個(gè)比較麻煩的操作,因?yàn)辄c(diǎn)擊上傳控件會(huì)彈出Windows窗口供用戶選擇文件,但是Windows窗口是瀏覽器之外的組件,所以selenium本身無法處理這個(gè)windows窗口。這里給大家?guī)讉€(gè)處理思路,我們先看一下下面這個(gè)HTML。

          <html>

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

          <title>test</title>

          <script language="javaScript">

          function toAlert()

          {

          alert("hello continue...");

          }


          </script>

          </head>

          <body>

          <form>

          <table >


          <tr>


          <td>

          <input name="file" type="file"/>

          </td>


          </tr>



          </table>

          </form>

          </body>

          </html>


          用notepad++ 打開,將它存成一個(gè) autotest.html文件,打開之后,只有一個(gè)上傳按鈕,我們來看一下怎么處理上傳事件。


          1


          直接調(diào)用selenium自帶的sendkeys進(jìn)行操作,將需要上傳的文件路徑直接傳遞進(jìn)上傳控件。


          2.import org.openqa.selenium.By;
          import org.openqa.selenium.WebDriver;
          import org.openqa.selenium.chrome.ChromeDriver;

          /**
          * Description:
          * Author: ChrisMa
          * Date: 2019-05-15
          */
          public class testupload2
          {
          public static void main
          (String ags[]) throws InterruptedException {
          //初始化webdriver
          WebDriver driver=new ChromeDriver
          ();
          //打開本地html
          driver.get
          ("file:///D:/UI/autotest1.html");
          // 將文件所在路徑傳遞給上傳文件控件
          driver.findElement
          (By.name("file")).sendKeys("D:\text.txt");
          // 等待看到結(jié)果
          Thread.
          sleep(10000);
          //關(guān)閉webdriver
          driver.quit
          ();

          }
          }


          這種方案可以解決大部分的上傳操作,可是對(duì)于一些上傳框禁止輸入的就無法操作了,這時(shí)候我們就要考慮其他方案。

          免費(fèi)領(lǐng)取 碼同學(xué)軟件測(cè)試 課程筆記+超多學(xué)習(xí)資料+完整視頻+最新面試題,可以轉(zhuǎn)發(fā)文章 + 私信「碼同學(xué)666」獲取資料哦

          2


          針對(duì)無法輸入的,我們可以考慮采用AutoIT來進(jìn)行上傳。

          AutoIt目前最新是v3版本,這是一個(gè)使用類似BASIC腳本語言的免費(fèi)軟件,它設(shè)計(jì)用于Windows GUI(圖形用戶界面)中進(jìn)行自動(dòng)化操作。它利用模擬鍵盤按鍵,鼠標(biāo)移動(dòng)和窗口/控件的組合來實(shí)現(xiàn)自動(dòng)化任務(wù)。

          官方網(wǎng)站:https://www.autoitscript.com/site/

          從網(wǎng)站上下載AutoIt并安裝,安裝完成在菜單中會(huì)看到下圖的目錄:


          AutoIt Windows Info 用于幫助我們識(shí)Windows控件信息。

          Compile Script to.exe 用于將AutoIt生成 exe 執(zhí)行文件。

          Run Script 用于執(zhí)行AutoIt腳本。

          SciTE Script Editor 用于編寫AutoIt腳本。

          我們打開html 網(wǎng)頁,然后點(diǎn)擊一下上傳按鈕:


          下面我們看一下怎么用autoIT來處理這個(gè)上傳。

          ? 打開AutoIT Window Info,然后點(diǎn)擊Finder Tool,不松開左鍵,等鼠標(biāo)變成瞄準(zhǔn)器類型時(shí),將鼠標(biāo)挪動(dòng)到文件上傳框需要識(shí)別的控件上松開左鍵。

          識(shí)別出對(duì)象之后所有的信息會(huì)顯示在AutoIT windows info里

          經(jīng)過識(shí)別窗口的title為“Open”,標(biāo)題的Class為“#32770”。

          文件名輸入框的class 為“Edit”,Instance為“1” ,所以ClassnameNN為“Edit1”。

          打開按鈕的class 為“Button”,Instance為“1” ,所以ClassnameNN為“Button1”。

          我們打開SciTE Script Editor,然后將下列代碼填入:


          ;ControlFocus("title","text",controlID) Edit1=Edit instance 1

          ControlFocus("Open", "","Edit1")



          ; Wait 10 seconds for the Upload window to appear

          WinWait("[CLASS:#32770]","",10)



          ; Set the File name textmargin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; clear: both; min-height: 1em; color: rgb(51, 51, 51); font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: left; text-indent: 39pt;">

          ControlSetText("Open", "", "Edit1", "D: est.txt")


          Sleep(2000)


          ; Clickmargin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; clear: both; min-height: 1em; color: rgb(51, 51, 51); font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: left; text-indent: 39pt;">

          ControlClick("Open", "","Button1");


          將script在SciTE Script Editor保存之后,打開上傳窗口,在SciTE Script Editor中選擇Tools->go, 來查看一下文件是否可以上傳。

          確認(rèn)腳本運(yùn)行正常, 我們將這個(gè)腳本保存成Script.au3, 然后打開Compile Script to.exe,將Script.au3文件轉(zhuǎn)換為Script.exe:

          這個(gè)時(shí)候,我們打開上傳文件控件,雙擊Script.exe文件,可以看到文件上傳事件已經(jīng)處理成功。


          免費(fèi)領(lǐng)取 碼同學(xué)軟件測(cè)試 課程筆記+超多學(xué)習(xí)資料+完整視頻+最新面試題,可以轉(zhuǎn)發(fā)文章 + 私信「碼同學(xué)666」獲取資料哦


          接下來,就是使用java來調(diào)用該EXE文件:

          import org.openqa.selenium.By;
          import org.openqa.selenium.WebDriver;
          import org.openqa.selenium.chrome.ChromeDriver;
          import java.io.IOException;

          /**
          * Description:
          * Author: ChrisMa
          * Date: 2019-05-15
          */
          public class testupload2
          {
          public static void main
          (String ags[]) throws InterruptedException {
          //初始化webdriver
          WebDriver driver=new ChromeDriver
          ();
          //打開本地html
          driver.get
          ("file:///D:/ UI/autotest.html");
          // 點(diǎn)擊選擇文件按鈕
          driver.findElement
          (By.name("file")).click();
          // 設(shè)置等待3秒
          Thread.
          sleep(3000);
          // Java 的Runtime 模塊的getruntime.exec()方法可以調(diào)用exe 程序并執(zhí)行。
          Runtime exe=Runtime.
          getRuntime();
          try
          {
          String str="D://Script.exe";
          // 運(yùn)行指定位置的.exe文件
          exe.exec
          (str);
          } catch (IOException e) {
          System.
          out.println("Error to run the exe");
          e.printStackTrace
          ();
          }
          // 等待看到結(jié)果
          Thread.
          sleep(10000);
          //關(guān)閉webdriver
          driver.quit
          ();

          }
          }


          借助AutoIT也有自己的限制,比如只能在Windows系統(tǒng)中進(jìn)行,如果要移植到其他系統(tǒng),就得參考其他方式。

          3


          如果想在非Windows系統(tǒng)中處理上傳,我們可以用純Java的形式處理,這時(shí)候,我們就要用到Robot這個(gè)類,在該過程中流程表現(xiàn)為:打開上傳文件的控件->將文件在磁盤上的路徑,通過robot copy pasty進(jìn)去(需要文件輸入框默認(rèn)是光標(biāo)聚焦)->按下回車,觸發(fā)彈窗確定按鈕,完成文件上傳過程

          4

          代碼如下:

          import org.openqa.selenium.By;
          import org.openqa.selenium.WebDriver;
          import org.openqa.selenium.chrome.ChromeDriver;

          import java.awt.*;
          import java.awt.datatransfer.StringSelection;
          import java.awt.event.KeyEvent;

          /**
          * Description:
          * Author: ChrisMa
          * Date: 2019-05-15
          */
          public class testupload
          {
          public static void main
          (String ags[]) throws InterruptedException, AWTException {
          //初始化webdriver
          WebDriver driver=new ChromeDriver
          ();
          //打開本地html
          driver.get
          ("file:///D:/ UI/autotest.html");
          // 指定上傳文件的路徑
          StringSelection sel=new StringSelection
          ("D:\test\test1.txt");

          // 把圖片文件路徑復(fù)制到剪貼板
          Toolkit.
          getDefaultToolkit().getSystemClipboard().setContents(sel,null);
          System.
          out.println("selection" +sel);

          // 點(diǎn)擊上傳按鈕
          driver.findElement
          (By.name("file")).click();
          // 新建一個(gè)Robot類的對(duì)象
          Robot robot=new Robot
          ();
          Thread.
          sleep(1000);

          // 按下回車
          robot.keyPress
          (KeyEvent.VK_ENTER);

          // 釋放回車
          robot.keyRelease
          (KeyEvent.VK_ENTER);

          // 按下 CTRL+V
          robot.keyPress
          (KeyEvent.VK_CONTROL);
          robot.keyPress
          (KeyEvent.VK_V);

          // 釋放 CTRL+V
          robot.keyRelease
          (KeyEvent.VK_CONTROL);
          robot.keyRelease
          (KeyEvent.VK_V);
          Thread.
          sleep(1000);

          // 點(diǎn)擊回車 Enter
          robot.keyPress
          (KeyEvent.VK_ENTER);
          robot.keyRelease
          (KeyEvent.VK_ENTER);
          // 等待看到結(jié)果
          Thread.
          sleep(10000);
          //關(guān)閉webdriver
          driver.quit
          ();
          }
          }

          上傳文件咱們就先處理到這里,希望可以給大家開闊思路,大家下次見。


          END

          免費(fèi)領(lǐng)取碼同學(xué)軟件測(cè)試課程筆記+超多學(xué)習(xí)資料+學(xué)習(xí)完整視頻,可以關(guān)注我們公眾號(hào)哦:自動(dòng)化軟件測(cè)試

          本文著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

          、配置Windows注冊(cè)表

            為了通過HTML超鏈接調(diào)用本地的show.exe程序并傳遞參數(shù),需要先在Windows注冊(cè)表中定義一個(gè)新的URL協(xié)議處理程序。以下步驟將指導(dǎo)您如何創(chuàng)建一個(gè).reg文件來執(zhí)行此操作:

            1. 創(chuàng)建一個(gè)新的文本文件,并將其保存為.reg擴(kuò)展名(例如,showProtocol.reg)。

            2. 使用文本編輯器打開該文件,并添加以下內(nèi)容:

            Windows Registry Editor Version 5.00

            [HKEY_CLASSES_ROOT\show]

            @="URL:Show Protocol Handler"

            "URL Protocol"=""

            [HKEY_CLASSES_ROOT\show\DefaultIcon]

            @="D:\show.exe"

            [HKEY_CLASSES_ROOT\show\shell]

            [HKEY_CLASSES_ROOT\show\shell\open]

            [HKEY_CLASSES_ROOT\show\shell\open\command]

            @="\"D:\show.exe\" \"%1\""

            1. 保存并關(guān)閉文件。

            2. Windows資源管理器中雙擊該.reg文件,系統(tǒng)將提示您導(dǎo)入注冊(cè)表更改。確認(rèn)后,這些更改將被應(yīng)用到Windows注冊(cè)表中。

            二、在HTML頁面中創(chuàng)建指向自定義URL協(xié)議的鏈接

            HTML頁面中,您可以使用<a>標(biāo)簽創(chuàng)建一個(gè)指向自定義URL協(xié)議的鏈接。例如,要調(diào)用show.exe并傳遞參數(shù)cmd,可以編寫如下代碼:

            <a href="show://cmd/"target="_blank">調(diào)用本地show.exe,傳入?yún)?shù)cmd</a>

            當(dāng)用戶點(diǎn)擊這個(gè)鏈接時(shí),Windows將使用在注冊(cè)表中定義的命令來執(zhí)行show.exe,并將cmd作為參數(shù)傳遞。

            三、在本地show.exe程序中處理命令行參數(shù)

            為了使show.exe能夠接收和處理通過URL傳遞的參數(shù),您需要在程序中實(shí)現(xiàn)相應(yīng)的邏輯。以下是一個(gè)簡化的C++代碼示例,展示了如何將命令行參數(shù)轉(zhuǎn)換為字符串并進(jìn)行處理:

            #include<iostream>

            #include<string>

            #include<windows.h>

            // 假設(shè)Common是一個(gè)包含輔助函數(shù)的命名空間或類

            // 例如,GetSubstr函數(shù)用于從字符串中提取子串,WriteLogs函數(shù)用于記錄日志

            intmain(intargc, char* argv[]){

            // 命令行參數(shù)位于argv數(shù)組中,其中argv[0]是程序路徑,argv[1]及之后是傳入的參數(shù)

            if(argc > 1) {

            // 第二個(gè)參數(shù)(argv[1])將包含通過URL傳遞的參數(shù)

            std::string cmdLine=argv[1]; // 直接使用argv[1]而不是lpCmdLine(在WinMain中使用)

            // 將命令行參數(shù)進(jìn)行適當(dāng)處理,這里簡單打印出來

            std::cout << "Received command line argument: "<< cmdLine << std::endl;

            // 如果需要更復(fù)雜的解析,可以使用類似Common::GetSubstr的函數(shù)

            // std::string strCmd;

            // if (Common::GetSubstr(cmdLine, /*...*/, strCmd)) {

            // Common::WriteLogs(strCmd.c_str());

            // }

            } else{

            std::cout << "No command line argument provided."<< std::endl;

            }

            return0;

            }

            請(qǐng)注意,此示例假設(shè)show.exe是一個(gè)控制臺(tái)應(yīng)用程序,并且使用標(biāo)準(zhǔn)輸出(std::cout)來打印接收到的參數(shù)。在實(shí)際應(yīng)用中,您可能需要根據(jù)程序的類型(如GUI應(yīng)用程序)和需求來調(diào)整參數(shù)處理邏輯。


          主站蜘蛛池模板: 蜜桃视频一区二区三区在线观看 | 免费精品一区二区三区第35| 一区二区中文字幕在线观看| 国产在线不卡一区二区三区 | 国产日产久久高清欧美一区| 国产成人高清视频一区二区| 午夜影院一区二区| 国产在线精品一区二区在线观看| 日韩成人一区ftp在线播放| 无码囯产精品一区二区免费 | 亚洲AV美女一区二区三区| 色欲精品国产一区二区三区AV| 丝袜美腿高跟呻吟高潮一区| 亚洲一区在线视频| 无码精品国产一区二区三区免费| 国产福利电影一区二区三区,免费久久久久久久精 | 国产日本亚洲一区二区三区| 国偷自产av一区二区三区| 一区二区三区在线视频播放| 国产乱子伦一区二区三区| 国产一区二区不卡老阿姨| 无码中文人妻在线一区| 国产日韩一区二区三区在线播放| 污污内射在线观看一区二区少妇| 无码国产伦一区二区三区视频 | 国产AV午夜精品一区二区入口| 久久久久人妻一区精品果冻| 日本一区午夜艳熟免费| 好看的电影网站亚洲一区| 日本不卡一区二区三区视频| 无码人妻精品一区二区三区久久 | 成人免费一区二区三区| 国产精品99无码一区二区| 国精无码欧精品亚洲一区| 少妇激情AV一区二区三区| 一区二区乱子伦在线播放| 人妻无码久久一区二区三区免费| 国产福利一区二区三区在线观看 | 夜夜添无码一区二区三区| 日韩精品一区二区三区老鸭窝| 亚洲国产AV一区二区三区四区 |