<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          雷石|Electron應(yīng)用調(diào)試技巧分享

          共 4510字,需瀏覽 10分鐘

           ·

          2023-06-30 16:33

          c64f4ff651175b6ef5c6e12a45999bfd.webp


          前言


          1cb171e792bd65408d116a995d1cd800.webpElectron是一個使用JavaScript、HTML和CSS構(gòu)建跨平臺的桌面應(yīng)用程序。它基于Node.js和Chromium,被Atom編輯器和許多其他應(yīng)用程序使用。 Electron兼容Mac、Windows和Linux,可以構(gòu)建出三個平臺的應(yīng)用程序。 ? 相對而言,Electron 的維護(hù)成本較低,因而十分流行。VS Code、一些企業(yè)的即時通訊工具等,都使用了Electron。但存在性能問題,同時也引入了其他的安全問題。


          01.

          分析Electron應(yīng)用


          一個正常的Electron程序,通常它的JS源碼會被打包到.asar文件中,或者直接以JS文件的方式存儲在程序目錄內(nèi),下面是一個例子。


          91ea97c78d79a35393f39a7dfe35e2f6.webp


          針對asar文件,可以用官方提供的工具( https://github.com/electron/asar ) 進(jìn)行解包分析,通過extract參數(shù)進(jìn)行解包,當(dāng)然直接看解包以后的代碼并不是很友好,所以這里不做演示。 ?

          chrome調(diào)試Electron應(yīng)用

          02.


          Electron應(yīng)用實際上也是個Chromium ,可以通過Chromium的方式開啟開發(fā)者工具。以某工具為例為例,在運行程序時,添加--remote-debugging-port=xxxx 參數(shù),即可在對應(yīng)端口為Electron應(yīng)用的主窗口開啟遠(yuǎn)程調(diào)試功能: 這里端口需要根據(jù)inspect(chrome://inspect/)中的配置來選擇。

          89cc8612f326af282af67d0840acf898.webp

          這里使用9222端口,在命令行添加參數(shù)啟動。


          e8caf8200e0d4d34b852925e43dc984d.webp


          啟動后可以在inspect頁面看到對應(yīng)的Target:

          17ad0082e3c500173fa0164938ffea5a.webp


          然后就可以點擊進(jìn)入進(jìn)行調(diào)試了,不過此時開啟的是Render Process的開發(fā)者工具。

          87dbd910870cc666f0d877dc2ce19997.webp


          我們可以通過添加--inspect=9222參數(shù)來調(diào)試Main Process。

          edd98dee2065ab4fcb704f651514a6a3.webp


          03.

          Debugtron調(diào)試Electron應(yīng)用


          Debugtron是一個基于Electron開發(fā)的客戶端桌面GUI程序,可以用于調(diào)試生產(chǎn)環(huán)境下的 Electron 應(yīng)用。項目地址: https://github.com/pd4d10/debugtron ? 直接下載對應(yīng)的Releases版本,安裝后即可使用。

          34ffb36721f1396b81366f0e7c6c1e3e.webp

          直接將要調(diào)試的Electron應(yīng)用拖拽過來即可。

          15fa756157473bd27d1cc115cffa5218.webp

          不過debugtron中沒有找到堆棧調(diào)用的信息,可以根據(jù)這里端口(devtools),添加到inspect的配置中,用chrome的inspect進(jìn)行調(diào)試。

          695d948cb43ce8ac79847b6e45cce05a.webp

          這樣就能跑起來,調(diào)起來了。不過現(xiàn)在大多的應(yīng)用都會對關(guān)鍵的js進(jìn)行混淆加密,或者使用修改過的Chromium內(nèi)核,要分析還是要有耐心。

          參考

          04.


          ·Electron 的一些調(diào)試技巧(點擊查看)


          往期回顧


          01

          Python安全工具開發(fā)思路分享

          02

          一個好用的RPC框架

          03

          一個有趣的ssh后門|Linux后門系列

          雷石安全實驗室


          商務(wù)咨詢:

          0571-87031601

          商務(wù)郵箱:

          [email protected]

          瀏覽 173
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  av在线资源站 | 麻豆成人三级片 | 日本黄色免费视频 | 影音先锋成人视频 | 99草在线视频 |