ast模塊,ast結構軟件

本文目錄一覽:

警惕eval()的安全漏洞

eval() 函數用來執行一個字符串表達式,並返回表達式的值。

expression — 表達式。

globals — 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。

locals — 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

如果傳入globals參數的字典缺少__builtins__的時候,當前全局命名空間將作為globals參數輸入並且在表達式計算之前被解析。locals參數默認與globals相同,如果兩者都省略的話,表達式將在eval()調用的環境中執行。

如果要將字符串型的list,tuple,dict轉變成原有的類型,可以用eval()

eval還可以對字符串型的輸入直接計算。

eval()能對解析的字符串都做處理,而不顧忌可能帶來的後果!

在實際應用過程中如果使用對象不是信任源,應該盡量避免使用eval,在需要使用eval的地方可以用安全性更好的ast.literal_eval替代。

ast模塊就是幫助Python應用來處理抽象的語法解析的。而該模塊下的literal_eval()函數:則會判斷需要計算的內容計算後是不是合法的python類型,如果是則進行運算,否則就不進行運算。

別克昂科威刷收音機模塊後按鍵位置變化

別克昂科威中控台收音機操作方法如下:

根據以下功能介紹來調整:POWER/VOL(左邊旋轉鍵):按下去是開關,旋轉是音量TPK/MANU(右邊旋轉鍵):MP3選曲、瀏覽播放曲目AST:長按此鍵自動存儲收音電台RPT:CD/USB模式下重複播放INT:CD/USB模式下瀏覽播放RDM:CD/USB模式下隨機播放AUXINUSB:USB播放器接口、標準3.5mm音頻接口MEMU:CD/USB模式下進入MP3文件夾選擇模式,按4-6健上下旋轉文件夾SET:音效調節BND:收音波段選擇SRC:在收音、CD、MP3之間切換SCAN:意思是瀏覽、掃描的意思。該鍵的作用就是用來快速的搜素電台。瀏覽播放,每一個台播放一會,跳到下一個台,循環,再按此鍵收聽當前電台。

符號表和抽象語法樹是什麼關係?兩者在編譯器設計中是否必需

一般的編譯器可能包含下面這些模塊:

1, 詞法分析器:

輸入: 源代碼

輸出: token

2, 語法分析器:

輸入: token

輸出: AST

在這個過程中, 可以識別出不符合語法規則的語句, 就可以報syntax錯誤, 如果有syntax錯誤, 編譯結束

3, 語義分析器:

輸入: AST

輸出: 無

在這個過程中, 根據語言的語義規則來識別語義錯誤, 要識別語義錯誤 就必須編譯AST, 因為是樹的遍歷, 假如你先遍歷到了int a 這個節點, 接着又遍歷到了一個表達式a = 4這個節點, 你需要檢查變量a有沒有聲明啊, 變量a和4的類型批不匹配呢? 這時你如果沒有保存變量a的信息, 那麼你怎麼檢查? 所以就需要符號表來保存這些信息了.

4, 代碼優化:

最簡單的就是常量摺疊優化了, 比如: a = 1 + 2 這個語句可以直接換成: a = 3了, 也就是說在編譯階段就把一些必要的運算先計算完成, 在程序運行的時候就不需要計算這些了, 就提高了程序的運行效率. 這部分是最複雜的了, 還有各種各樣各樣的優化

5, 代碼生成:

輸入: AST

輸出: 可以是虛擬機代碼, 可以是本地彙編代碼

超級巡警殺毒時出現的發現包裹,包裹是啥意思?需要處理嗎?

不需要

這是它一系列的操作流程

一:掃描檢測

1)分全面掃描、目錄掃描、掃描內存、隔離區與報告。

在掃描設置里,掃描類型可以根據自己的實際需要來進行掃描。比如,你懷疑某個可執行程序是流氓程序,會自動運行並修改註冊表,就可以專對可執行程序進行掃描,如果你已經知道在某個盤或者目錄,就可以對盤符-目錄-可執行文件進行定點掃描,加快掃描速度,節省時間,其他殺毒軟件如NOD32雖然也有分盤掃描,但是沒有細化分,而Anti-Spyware Toolkit除了可執行程序類型外,還分有包裹(rar/zip等)、全部文件與自定義文件(其能針對某一程序類型或者文件進行掃描,比前面的“可執行程序”更細分定位)可以明確的感受到Anti-Spyware Toolkit在設計上盡量考慮CPU佔用率的問題。但是有個問題就是,我能不能構造特殊文件名繞過AST反病毒引擎呢?我在XP2上建立一個可執行程序,名為:lj、、??.exe。在掃描自定義選項里添上程序名後掃描,結果是成功繞過AST掃描。

2)編輯信任列表這又是加快掃描速度的設置,把那些系統文件或者已經知道的安全文件導入,掃描時會直接跳過,還可以避免將某安全軟件誤報,這比其他卡巴、NOD32直接扼殺來的人性化。但是有一點不足,就是會發生已經編輯到信任列表的程序,掃完也不能正常使用,在信任列表中應該在掃描之外吧,這樣的情況算是AST的一個 BUG了。

3)特殊模塊 提供Rootkit 檢測功能(不使用傳統特徵碼)與NTFS數據流掃描。目前查殺ROOTKIT,基本都是依賴ICE等專門工具,但是有些ROOTKIT使用的是底層驅動,所以ICE等工具需要與其他軟件配合,才能完全查殺ROOTKIT,必要時手動再所難免,而Anti-Spyware Toolkit檢測ROOTKIT的方法等同和強於ICE,還有可以說是國內首個提供自動化的ROOTKIT檢測和清除的工具,並不需要依賴第三方軟件,其關鍵在於它的“SSDT”這個模塊(留待後面詳細說明);至於NTFS數據流掃描,目前殺毒軟件沒有充分的檢查這一方面的文件,Anti- Spyware Toolkit提供了類Sfind的查找方法,避免麻煩的手動查找清楚,可以發現隱藏在文件流中的病毒。

二:IE修復

比一般的IE修復軟件具有更多的功能,比如增加了“鎖定首頁”、”禁止表單自動完成”。至於“插件免疫”與“惡意網站屏蔽”也比一般軟件收集的更全,還可以自己添加需要屏蔽的網站或者插件,其關於插件的描述還是有點意思,至少讓你明白這些插件是些什麼東西。

三:垃圾清理

有看頭的是 “智能掃描”與“文件粉碎”模塊,智能掃描就是根據默認的擴展名和用戶輸入的擴展名來掃描相關的文件,然後定點清除,並在清除的時候,可以對文件進行徹底粉碎;文件粉碎功能,也是定點清除,結合了bcwipe的功能。(其官方解釋:粉碎標準遵循美國國防部(DoD 5220.22-M)標準。)個人希望能加入隱藏文件的功能,與文件粉碎相得益彰,免寫rootkit了。

四:啟動管理

1)註冊表雖然加了這個功能,但是出了問題還是需要msconfig,有點麻煩,因為其不能擴大查看完整的文件地址與鍵路徑。如果在啟動管理中加入搜索註冊表功能那也許會更好些,比如在啟動管理刪除某個註冊表的鍵值後,搜索有關的鍵值,然後直接刪除 ,並查找並刪除關聯項。打個比方 : rsrc.dll,開始先點擊相關鍵路徑後彈出個窗口,然後輸入rsrc.dll搜索這個關鍵,就自動查找(類msconfig的F3),然後都自行刪除。其的“定位到啟動文件”又是一個人性化的設計,方便查看管理。如果能加個註冊表修復文件關聯功能,那也許會更好些。

2)WinSock SPI

自動檢測和修復Winsock SPI鏈的相關錯誤。也就是從註冊表中讀SPI相關鍵值,判斷他的結構是否合理。如果你發現有某個dll修改Winsock SPI,拿AST的這個功能來修復WinSock SPI 到系統默認就行了,這樣就不需要使用專門的工具進行修復或者刪除動作。

五:進程管理

這功能其實就是系統監測,只要點擊某個進程,在下方快就有詳細的分析與模塊,對於所懷疑的或者是檢測出來的可以用“強制卸載標記模塊”功能來刪除,不錯吧,但是這對於某些流氓的dll,比如自動加保護的就無法強制卸載成功,或者卸載不幹凈,這點需要改進。在專業版里,如果你要查看內核進程,可以在模塊中點 “從內核獲取進程列表”。

六:服務管理

類ICE,可以查看W32、內核驅動、隱藏已知微軟服務等功能,對服務的管理還比較自由,其描述我感覺很好,至少我知道關閉某服務可以防止發生什麼事,當出問題的時候,知道改做什麼,不需要再去手動。但是其對卡巴的AVP等程序還是不能強制卸載成功。(我知道自己提出的要求都比較BT)

七:端口關聯

非常不錯的功能,檢測隱藏的端口,還可以定位遠程IP地址與Whois 遠程IP地址,關閉端口,斷開連接。都避免了手動的麻煩,我比較感興趣的是Whois遠程IP地址,從網上的Whois數據庫中,查詢曾在Whois服務器上登記過的用戶或站點的聯絡信息,比如查詢對象的名稱、Email地址和電話號碼等等。可惜的是定位遠程IP這個功能不夠精確,國外只能定位到某個國家;國內只能定位到大範圍的地區,希望能在下一版本增加其精確性。

八:SSDT [此條解釋來自其官方 FAQ,其本身就已經述說的很清楚]

系統內核服務描述表恢復,顯示和摘除被Hook的內核函數,自動還原被Inline hook的內核函數。

主要有三個功能:

1.恢複選擇的Hook:恢復您當前行選擇的被Hook的函數。

2.恢復所有的Hook:恢復全部列表中的函數地址為系統默認函數地址。

3.僅顯示被Hook的函數:僅僅顯示被Hook了的函數,這樣便於查看。

以劃詞搜索為例來說,劃詞搜索使用驅動進行註冊表Hook和文件Hook,它的兩個驅動文件:hcalway.sys和abhcop.sys.sys交叉保護,劃詞搜索自身的卸載功能不能刪除hcalway.sys和abhcop.sys.sys這兩個文件,使用Icesword也不能直接刪除這兩個文件。對付類似的流氓軟件使用的底層驅動,可以在SSDT中找到驅動文件,從紅色的“當前服務函數所在模塊”尋找它們,然後使用“恢複選擇的Hook”功能恢復底層函數,恢復後,即可以刪除劃詞搜索的相關註冊表服務,然後在重啟動,就可以完全刪除驅動和其它的文件了。對一些使用Rootkit技術的灰鴿子、 PcShare木馬,你在恢復了SSDT表後,會在進程管理和服務管理中發現一些多出來的項目。

我11.2日想讓SSDT模塊恢復自身被HOOK的函數,卻都提示不能恢復被HOOK的函數:(

九:保險箱

這是專業版本2.0才有的功能,是AST特別為賬號保護設計的功能。AST默認把IE加為保護,但是加了之後就打不開IE,提示錯誤。查看攔截信息無法把被攔截的程序加入被信任的模塊欄,提示失敗。但是對Firefox卻可以正常保護,被攔截的dll也能正常加入信任模塊。加入其他MSN、QQ等程序也是正常。這時候突然提示內存不能為read,取消後又提示應用程序錯誤(0xc0000409),位置(0x68d7295d),程序 drwtsn32.exe出錯。開始懷疑是AST導致,關掉後用AST檢查這個程序則顯示正常。

DrWatson Postmortem Debugger(drwtsn32.exe)是windows XP系統內置的程序錯誤調試器,在默認狀態下,出現程序錯誤時Dr. Watson 將自動啟動。出現以上的問題原因是因為“故障轉儲文件默認權限設置不當”,也就說,可能是AST專業版在把攔截信息加入到信任列表時,產生的錯誤操作導致的。由於我的user.dmp與drwtsn32.log已經刪除,所以如果發生類似情況,請自行查看這兩個文件。

關閉重新啟動後,我把默認的IE保護刪除,再重新加入保護,一切正常。

十:監控功能

我機子上裝着NOD32,檢測的速度與AST一樣,但是只能把文件放到隔離區,而不能手動操作,AST不但滿足了這些要求,只要是某個文件被修改或者被寫入,都會發出提醒,AST在小文件與小程序的管理上比卡巴和NOD32等網空要小的多。AST的實時監控使用了驅動編程技術,讓工作於系統核心態的驅動程序去攔截所有的文件訪問。它會在文件打開,關閉,清除,寫入等操作時檢查文件是否是病毒攜帶者,根據用戶的決定選擇不同的處理方案,如刪除,刪除該文件或忽略。從其在進程管理的“從內核獲取進程列表”使用來看,它很好的控制住Ring0,所以敢於“一秒一刷新”,而不用擔心藍屏的情況出現。

十一:廣譜特徵碼

“廣譜特徵碼”本質上仍舊是特徵碼,採用了開放式外部病毒廣譜特徵庫過濾法查病毒和接口編程加載法殺病毒原理和方式。誤報、誤殺率極高。我在使用AST的時候,並未發現此類事件發生,倒是rootkit被殺了許多,基本上鴿子是通殺,如果AST真的只是依靠“廣譜特徵碼”來反病毒,那樣就會顯的殺傷力不足。

十二:綠色軟件

解壓即可使用,如果想開機自動運行,可以在“設置”→“啟動方式”中選擇“自動隨系統啟動”.還加上了智能升級模塊,會自動進行更新。我在使用AST的時候,也同時使用NOD32,並沒有互相排斥,機子不能啟動使用的情況出現,如python一樣的優秀兼容性,可以互相彌補軟件中的不足。但是有個BUG還是要說下,不知道是不是模塊太多的原因,AST經常出現只有SSDT模塊能看到具體的信息,而其他模塊什麼都看不見的現象,雖然監控功能還是能正常運行,但是有時候會自動變成英文。

十三:總結

就是這樣!!!!

實現一個根據python代碼自動生成流程圖難度有多大

用dis模塊去看bytecode,關注一下帶JUMP的指令和CALL_FUNCTION相關的指令可以找到分支、跳轉和函數調用的相關信息(可以找到跳轉和調用的條件,目標,op在source的line number等等信息),再結合inspect的getsource一系列函數應該差不多了。

如果這樣可行的話,難度不大。

當然,ast模塊去看ast應該也行。不過我之前一些項目經驗讓我更喜歡直接去看bytecode。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256685.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:42
下一篇 2024-12-15 12:42

相關推薦

  • Python腳本控制其他軟件

    Python作為一種簡單易學、功能強大的腳本語言,具有廣泛的應用領域,在自動化測試、Web開發、數據挖掘等領域都得到了廣泛的應用。其中,Python腳本控制其他軟件也是Python…

    編程 2025-04-29
  • 量化交易軟件哪個好?

    量化交易軟件是為量化交易而設計的工具,能夠用程序化方法對市場數據進行分析和交易決策。那麼,哪個量化交易軟件最好呢?下面從幾個方面進行詳細闡述。 一、交易功能 交易功能是量化交易軟件…

    編程 2025-04-29
  • 光模塊異常,SFP未認證(entityphysicalindex=6743835)——解決方案和

    如果您遇到類似optical module exception, sfp is not certified. (entityphysicalindex=6743835)的問題,那麼…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • Python程序的三種基本控制結構

    控制結構是編程語言中非常重要的一部分,它們指導着程序如何在不同的情況下執行相應的指令。Python作為一種高級編程語言,也擁有三種基本的控制結構:順序結構、選擇結構和循環結構。 一…

    編程 2025-04-29
  • Python計算機二級刷題軟件推薦

    Python作為編程語言的代表,已經在計算機學習和開發領域佔據了重要角色。Python計算機二級是國家信息技術應用能力證書的一種,是計算機應用能力的重要評估標準。對於想要獲取Pyt…

    編程 2025-04-29
  • Python模塊下載與安裝指南

    如果想要擴展Python的功能,可以使用Python模塊來實現。但是,在使用之前,需要先下載並安裝對應的模塊。本文將從以下多個方面對Python模塊下載與安裝進行詳細的闡述,包括使…

    編程 2025-04-29
  • 電腦如何下載ps軟件

    如果您想在電腦上使用Photoshop,那麼您需要下載安裝該軟件。下面是詳細的步驟說明: 一、選擇下載網站 目前市面上有很多下載網站都可以下載到Photoshop軟件,比如Adob…

    編程 2025-04-29
  • Python編程三劍客——模塊、包、庫

    本文主要介紹Python編程三劍客:模塊、包、庫的概念、特點、用法,以及在實際編程中的實際應用,旨在幫助讀者更好地理解和應用Python編程。 一、模塊 1、概念:Python模塊…

    編程 2025-04-29
  • Python如何下載第三方模塊

    想要使Python更加強大且具備跨平台性,我們可以下載許多第三方模塊。下面將從幾個方面詳細介紹如何下載第三方模塊。 一、使用pip下載第三方模塊 pip是Python的軟件包管理器…

    編程 2025-04-28

發表回復

登錄後才能評論