• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    PLC程序控制流分析方法

    2018-01-08 07:33:58陸余良
    計算機應用 2017年12期
    關鍵詞:基本塊控制流副作用

    張 曄,陸余良

    (合肥電子工程學院 ,合肥 230037)

    PLC程序控制流分析方法

    張 曄*,陸余良

    (合肥電子工程學院 ,合肥 230037)

    可編程邏輯控制器(PLC)是工業(yè)控制系統(tǒng)的重要組成部分,控制著各類物理設備及工藝流程。無論是攻擊者的惡意篡改還是內部人員的編程錯誤所造成的PLC控制程序錯誤都將嚴重威脅設備及人身安全。為解決該問題,提出了針對PLC程序的控制流分析方法。首先,利用flex和bison分析了源代碼的詞法及語法結構;其次,通過分析抽象語法樹(AST)生成并優(yōu)化了不含指令副作用的中間表示;最后,在中間表示的基礎上劃分基本塊,并以此為基本單元構建了程序的控制流圖。實驗結果表明,所提方法能夠恢復語句表形式PLC程序的控制流結構,為程序理解和安全性分析提供了基礎。

    可編程邏輯控制器;控制流;中間表示;程序理解;安全性

    0 引言

    自“震網(wǎng)”病毒面世以來,人們對工業(yè)控制系統(tǒng)安全的認識達到了前所未有的高度。作為工業(yè)控制系統(tǒng)的核心組件,可編程邏輯控制器(Programmable Logic Controller, PLC)關系著整個工業(yè)現(xiàn)場的運轉秩序,同時也影響著財產(chǎn)、人身安全,其安全性保障也具有較高需求,因此PLC控制邏輯程序也往往成為攻擊者的惡意篡改對象。與此同時,針對PLC程序的形式化分析、靜態(tài)分析等程序分析方法成為了人們廣泛研究的課題。

    控制流分析是一類用于分析程序控制流結構的靜態(tài)分析技術,目的在于生成程序的控制流圖,在編譯器設計、程序分析、程序理解等領域都有重要應用。針對PLC程序的控制流分析實際上分析的是工業(yè)控制系統(tǒng)中離散事件的先后執(zhí)行順序和狀態(tài)的轉換條件,也是各類PLC程序分析方法的基礎。

    本文針對西門子S7系列PLC所使用的STL(STatement List)語言展開研究,開發(fā)了STL代碼的控制流分析工具。STL也被稱為語句表,衍生于IEC 61131-3[1]標準中的指令表語言,是一種類似于匯編語言的私有結構化語言。

    1 相關研究

    當前針對PLC程序的分析方法主要有模型檢測[2-4]、靜態(tài)分析[5-6]、定理證明[7-8]、符號執(zhí)行[9]等。

    模型檢測主要用于驗證程序有窮狀態(tài)是否滿足命題性質,文獻[4]基于抽象解釋理論、反例引導的抽象求精算法設計了具備模型檢測和靜態(tài)分析功能的形式化驗證平臺Arcade.PLC,能夠兼容IEC 61131- 3標準中的所有語言以及西門子的STL及ST語言。CERN基于NuSMV和nuXmv模型檢測引擎開發(fā)的模型檢測工具PLCverif[2]還支持西門子的SFC、SCL等高級語言,但該工具還處于概念驗證階段。

    當前針對PLC程序的靜態(tài)分析利用了控制流、數(shù)據(jù)流分析等技術,主要應用于程序語法規(guī)范性的驗證。

    文獻[7-8]采用定理證明的方法將PLC程序轉化為數(shù)學公式,并用定理證明器進行分析與驗證。

    文獻[9]利用符號執(zhí)行的方法分析程序的路徑約束,通過約束求解計算滿足目標約束的具體值,消除了不可達路徑的訪問,有效解決了PLC程序模型檢測中狀態(tài)爆炸的問題。

    上述的大部分工作都為PLC程序的驗證與分析奠定了良好的基礎,但仍然存在兩個問題:

    1)在程序建模的過程中重點闡述了程序分析后端內容,對代碼解析部分介紹得不夠詳細。

    2)分析并未采用中間語言,而是基于源碼進行建模,指令副作用導致了建模規(guī)則復雜、狀態(tài)空間爆炸等問題。

    本文針對這兩個問題,提出了一種消除語義副作用的STL語言中間表示(Simple STL language Intermediate Representation, SSIR),在不改變STL語義的前提下將STL代碼表示成SSIR形式,之后在SSIR的基礎上進行相應的控制流分析,有效實現(xiàn)了程序的控制流恢復,使后端工作僅需要在控制流圖的基礎上進行即可。

    2 控制流分析框架

    控制流分析框架如圖1所示,主要分為以下幾個步驟:

    1)利用詞法分析生成器flex對STL程序進行詞法分析,生成相應的token序列。

    2)基于bison對token序列進行語法分析,構造程序的抽象語法樹(Abstract Syntax Tree, AST)。

    3)遍歷抽象語法樹生成中間表示SSIR。

    4)在中間表示的基礎上劃分基本塊,構建程序控制流圖用于過程內分析。

    圖1 控制流分析框架Fig. 1 Framework of control flow analysis

    由于前兩步的工作已公開發(fā)表不再贅述,本文主要介紹中間表示的生成與優(yōu)化以及所面臨的主要困難,并給出了程序的控制流圖生成算法。

    3 中間表示生成與優(yōu)化

    STL源代碼不適合直接用于控制流分析,主要因為源代碼的指令副作用使得程序控制流不夠清晰[9],因此,在完成語法分析后,通過遍歷抽象語法樹生成無指令副作用的中間表示SSIR。本章首先介紹了STL程序基本單元,隨即舉例介紹了源代碼中存在的指令副作用,之后介紹了中間表示的語法格式,最后列舉了中間表示生成過程中STL特有元素的翻譯規(guī)則。

    3.1 STL程序基本單元

    3.1.1 邏輯塊

    邏輯塊是STL程序的基本單元,不僅包含用戶編寫的程序,而且包含程序操作所需的數(shù)據(jù)。用戶可編輯的部分主要有組織塊(OB)、功能(FC)、功能塊(FB)、數(shù)據(jù)塊(DB)等,具體功能如下:

    1)組織塊相當于用戶程序中的主程序,可以調用其他塊,是操作系統(tǒng)與用戶的接口,用于控制掃描循環(huán)、中斷程序、PLC的啟動和錯誤處理等,決定了用戶程序的結構。

    2)功能和功能塊類似于函數(shù),通過其輸入、輸出參數(shù)實現(xiàn)與過程控制的傳感器、執(zhí)行器、用戶程序中的其他塊交換數(shù)據(jù),主要區(qū)別在于功能塊有獨立的背景數(shù)據(jù)塊。

    3)數(shù)據(jù)塊是用于存放用戶數(shù)據(jù)的數(shù)據(jù)區(qū)域。

    3.1.2 程序狀態(tài)字與累加器

    STL程序主要依賴于程序狀態(tài)字寄存器、累加器兩類寄存器執(zhí)行指令操作。

    狀態(tài)字是一個16位的寄存器,實際上僅使用了其中的9位,用于存儲CPU執(zhí)行指令后的狀態(tài)、結果以及錯誤,幾乎所有位邏輯運算指令在執(zhí)行過程中都要與程序狀態(tài)字進行交互。用戶一般不直接使用狀態(tài)位,但是PLC在解釋執(zhí)行代碼時會對狀態(tài)字進行隱式的寫操作,從而影響了后續(xù)指令的執(zhí)行結果。狀態(tài)字的具體描述如表1所示。

    表1 程序狀態(tài)字Tab. 1 Program status word

    累加器(ACCUx)是執(zhí)行STL指令操作的關鍵部件。除位邏輯運算以外,大部分語句表操作都是在累加器中進行[10]。不同PLC型號的累加器數(shù)目不同,本文以兩個累加器的為例介紹STL指令的副作用。

    3.2 指令副作用

    STL語言的指令副作用主要源于狀態(tài)字,對狀態(tài)位的隱式讀寫操作由PLC解釋執(zhí)行,其增加了程序的條件分支,但并未顯式地表現(xiàn)在代碼中。

    例如圖2所示,雙斜杠后的內容表示指令的隱式操作。與操作“A”將操作數(shù)的布爾值賦予狀態(tài)寄存器STA,第3行根據(jù)該指令是否是邏輯串的首指令來決定后續(xù)的指令流向,這就是指令副作用產(chǎn)生的額外控制流。為了減少副作用引起的額外控制流,需要對部分指令進行預處理及優(yōu)化,最為主要的有FC狀態(tài)位和OR狀態(tài)位。

    3.2.1 FC狀態(tài)位

    FC狀態(tài)位為0表示該行指令是邏輯串的首指令,與RLO相關的操作將STA狀態(tài)值直接賦予RLO;否則,RLO則需要與STA位進行相應的邏輯操作后再將值賦予RLO。輸出指令或與RLO有關的跳轉指令將其置位為0,表示邏輯串結束。

    除狀態(tài)字傳送指令、O先“與”后“或”指令[10]、調用背景塊指令以外,F(xiàn)C狀態(tài)位值均取決于操作符而非操作值。因此,在源代碼翻譯為中間表示之前,僅需要對源代碼進行一次遍歷,標記執(zhí)行前FC位為0的指令行號,之后行號已被標記的指令便可直接采用相應的翻譯規(guī)則,從而省略多余的條件分支語句。預處理規(guī)則如下:

    1)首行指令執(zhí)行前FC位為0。

    2)賦值、置位、復位指令下一條指令若非跳轉目標,則執(zhí)行前FC位為0。

    3)與RLO相關的跳轉指令的下一條指令若非跳轉目標,則執(zhí)行前FC位為0。

    4)除裝載指令以外的計數(shù)器指令的下一條指令非跳轉目標,則執(zhí)行前FC位為0。

    圖2 STL指令副作用Fig. 2 Instruction side effects of STL

    3.2.2 OR狀態(tài)位

    OR位主要功能是在O先“與”后“或”指令中保存之前“與”操作的運算結果,若運算結果為1,則OR位值為1,后續(xù)若無將OR位復位的指令,RLO值一直為1。

    因此,需要在每條對RLO賦值的指令后添加“RLO=RLO or OR”指令,以此替代冗余的條件判斷。實際上,OR位在多數(shù)情況下為常量0,也意味著該指令無效,所以可以在中間表示的優(yōu)化過程中檢測同一基本塊中該條指令前OR是否為0,若為0則刪除該條指令。

    3.3 SSIR語法規(guī)則

    中間表示SSIR抽象語法規(guī)則用巴科斯范式表示如圖3所示。

    圖3 SSIR語法規(guī)則Fig. 3 Syntax rules of SSIR

    prog表示構成程序的邏輯塊結構,ins代表指令,包括跳轉指令jmp id、條件跳轉指令cjmp id,exp、功能調用指令call id、功能塊調用指令call id,id、塊結束指令BE、帶有標簽的指令label: 、賦值指令:=。exp為表達式,包含了變量、變量的二元運算、變量的一元運算。條件調用指令用于實現(xiàn)組織塊對功能、功能塊的條件調用。pop和push指令用于嵌套指令的堆棧操作,在3.4.5節(jié)詳細介紹。

    實際上,SSIR僅對STL源代碼進行了局部優(yōu)化,并且以四元式作為存儲結構。STL源代碼的指令結構包括了標簽、操作符、至多一個操作數(shù)、注釋。SSIR在STL的基礎上消除了注釋信息,為了消除指令副作用,SSIR增加至三個操作數(shù),包括一個目的操作數(shù)和至多兩個源操作數(shù)。

    3.4 特有元素的翻譯規(guī)則

    與一般程序相比,STL具備一些特有的元素,在生成中間表示時需要得到相應的處理。下面介紹STL特有元素的翻譯規(guī)則。

    3.4.1 定時器

    不同類型的定時器具備不同功能,西門子S7系列PLC為每個定時器都分配一個16位字和一個二進制位。定時器的16位字用于存放剩余時間值,二進制位表示定時器輸出觸點狀態(tài),根據(jù)定時器的類型在滿足相應條件時發(fā)生跳變。 SSIR根據(jù)操作符類型判定程序訪問的是邏輯值還是具體數(shù)值。

    3.4.2 計數(shù)器

    計數(shù)器的主要功能是在滿足預置的指定數(shù)目脈沖后進行某種操作。西門子S7系列PLC為每個計數(shù)器都分配一個16位字和一個二進制位。計數(shù)器的16位字用于存放當前數(shù)值。計數(shù)器值大于0時,二進制位為1;反之為0。因此,SSIR對計數(shù)器的處理與定時器相同。

    3.4.3 邊沿檢測指令

    某些指令在特定的內存單元值發(fā)生高低位變化時才會執(zhí)行,邊沿檢測指令就是通過檢測單個地址位信號的上升或下降來決定后續(xù)指令的執(zhí)行與否。緊跟在“FN”算符或“FP”算符后的邊沿存儲位用于存儲之前的邏輯運算結果,程序執(zhí)行到該條指令,通過判斷邊沿存儲位和指令執(zhí)行前RLO值決定指令執(zhí)行后RLO的取值。SSIR將邊沿檢測指令轉換為RLO位與邊沿存儲位的比較指令和邊沿存儲位的再賦值。

    例如,“FN M 0.2”被轉換為“RLO=RLO

    3.4.4 主控繼電器指令

    主控繼電器(Master Control Relay, MCR)指令控制著一片區(qū)域的指令是否被正常執(zhí)行,自“MCR(”指令開始,以“MCR)”指令結束?!癕CR(”指令將RLO存放在一個8位深、1位寬MCR堆棧中?!?MCR”刪除MCR的棧頂項。

    若進入MCR區(qū)域前,堆棧內所有RLO值為1,則MCR激活,該區(qū)中與MCR相關的指令正常執(zhí)行;否則,MCR去活,賦值指令與傳送指令均向尋址位寫入“0”,復位和置位指令對尋址位不產(chǎn)生影響。因此,SSIR為MCR區(qū)域內指令設立MCR標識,并且在MCR區(qū)域內這4類寫操作指令執(zhí)行前都要進行條件判斷。

    3.4.5 嵌套指令

    除主控繼電器指令以外,STL語言中允許嵌套的指令只有“A(”“AN(”“O(”“ON(”“X(”“XN(”六類位邏輯運算指令。這六類嵌套指令將RLO和OR位以及指令操作數(shù)保存在嵌套堆棧中,當遇到“)”指令時,堆棧中彈出輸入項,恢復OR位,根據(jù)指令代碼完成與RLO的運算。

    SSIR為位邏輯指令和MCR指令分別設立了位堆棧和MCR堆棧,根據(jù)指令操作數(shù)來判別具體使用的堆棧類型。

    4 基于SSIR的控制流圖生成算法

    控制流分析分為過程內的控制流分析和過程間的控制流分析。因為組織塊相當于PLC程序的主函數(shù),所以在中間語言生成過程中將組織塊所調用的功能塊及功能代碼內聯(lián)至組織塊程序中,針對STL程序的控制流分析便由此轉化為針對STL程序組織塊的過程內控制流分析。介紹控制流圖生成算法前,首先介紹幾個基本定義。

    4.1 基本定義

    定義1 基本塊?;緣K是最大化的連續(xù)指令序列,控制流只能從第一條指令進入,從最后一條指令退出,基本塊內部不存在分支。

    基本塊劃分規(guī)則是:

    1)第一條指令是入口語句。

    2)條件跳轉或無條件跳轉的目標語句是入口語句。

    3)條件跳轉或無條件跳轉指令的后一條指令是入口語句。

    4)每條入口語句到下一個入后語句前的所有語句為一個基本塊。

    根據(jù)基本塊的最后一條指令,可以分為四種類型:

    1)單出口基本塊:末指令是無條件跳轉指令,或者該指令的下一條指令是分支轉移的目標地址。

    2)雙出口基本塊:末指令是條件跳轉指令。

    3)多出口基本塊:末指令是多分支跳轉指令,根據(jù)累加器的低字決定跳轉目標。

    4)返回基本塊:末指令是功能、功能塊返回指令或者塊結束指令。

    實際上,多分支跳轉指令很少應用于PLC程序中[11],所以在概念驗證時不考慮多分支跳轉。

    定義2 控制流圖??刂屏鲌DG=(N,E)是一個以基本塊為節(jié)點的有向圖。N={B1,B2,…,Bn}是程序的基本塊集合,E?N×N表示邊的集合,如果存在(Bi,B,Bj)∈E,則從Bi到Bj存在一條有向邊,且Bi稱為Bj的前驅節(jié)點,Bj稱為Bi的后繼節(jié)點。

    4.2 算法步驟

    控制流圖生成算法描述如下。

    輸入 SSIR指令表;

    輸出 控制流圖。

    //若指令表為空,返回

    if (List_Instruction==null) return;

    //遍歷指令表,將入口語句序號添加至入口語句序號表

    for (Instruction ins: List_Instruction)

    {

    //程序的第一條指令為基本塊入口語句

    if (ins.Id == 0)

    List_Entry.add(ins.Id);

    //跳轉指令的下一條指令及目標指令是入口語句

    if (ins.Op == "jmp"|"cjmp")

    List_Entry.add(ins.Id+1);

    List_Exit.add(ins.Id);

    List_Entry.add(LineOfLabel(ins.Label));

    //標簽語句是入口語句

    if (ins.Label != null)

    List_Entry.add(ins.Id);

    }

    //將指令集大小加入入口語句表用于判定循環(huán)結束。

    List_Entry.add(List_Instruction.size());

    //遍歷入口語句序號表,構建基本塊,bc_i表示指令序號,bb_i

    //表示基本塊號,n_bb表示基本塊總數(shù)

    int n_bb=List_Entry.size()+1;

    int[] n_pred=new int[n_bb];

    ControlFlowGraph cfg=new ControlFlowGraph(n_bb);

    //基本塊0和1分別為程序的入口節(jié)點和出口節(jié)點。

    cfg.basic_blocks[0]=new BasicBlock(0,-1);

    cfg.basic_blocks[1]=new BasicBlock(1,-1);

    int bb_i=2; BasicBlock bb=null;

    Iterator it=List_Entry.iterator();

    for (;;)

    {

    int bc_i=it.next ();

    if (bc_i == bc.length) break;

    bb=cfg.basic_blocks[bb_i]=new BasicBlock(bb_i, bc_i);

    ++bb_i;

    }

    //為每個基本塊添加后繼節(jié)點信息

    cfg.basic_blocks[0].successors=new BasicBlock[1];

    cfg.basic_blocks[0].successors[0]=cfg.basic_blocks[2];

    cfg.basic_blocks[1].successors=new BasicBlock[0];

    Iterator it=List_Exit.iterator();

    bb_i=2;

    while (it.hasNext())

    {

    int bc_i=it.next ();

    bb=cfg.basic_blocks[bb_i];

    //該基本塊中沒有出口語句

    while (bc_i > bb.end)

    {

    bb.successors=new BasicBlock[1];

    bb.successors[0]=cfg.basic_blocks[bb_i+1];

    BasicBlock next_bb=bb.successors[0];

    bb=next_bb;

    }

    //出口語句為非條件跳轉指令

    if(ins[bc_i].op=="jmp")

    {

    BasicBlock target_bb=cfg.getBasicBlockByIndex

    (ins[bc_i].oprand1);

    bb.successors=new BasicBlock[1];

    bb.successors[0]=target_bb;

    }

    //出口語句為條件跳轉指令

    if(ins[bc_i].op=="cjmp")

    {

    int bb_i=bb.id;

    BasicBlock next_bb=cfg.basic_blocks[bb_i+1];

    BasicBlock target_bb=cfg.getBasicBlockByIndex

    (ins[bc_i].oprand2);

    bb.successors=new BasicBlock[2];

    bb.successors[0]=next_bb;

    bb.successors[1]=target_bb;

    }

    }

    算法中:List_Entry為入口節(jié)點表;List_Exit為出口節(jié)點表;List_Instruction為指令表;ControlFlowGraph為控制流圖類;BasicBlock為基本塊類;LogicBlock表示邏輯塊類。

    4.3 實例分析

    因為本文主要針對PLC程序的控制流進行分析,所以采用一個控制分支較多的實例程序進行實驗驗證。圖4所示的的STL程序包含了常用的跳轉語句及循環(huán)語句,將圖中的指令轉化為SSIR后分析其控制流,輸出的控制流圖如圖5所示。程序分為9個基本塊,其中,BB0 、BB1分別是整個控制流圖的入口塊和出口塊,二者均不含指令。

    圖4 控制流分析實例代碼Fig. 4 Example code of control flow analysis

    圖5 控制流圖示例Fig. 5 Example of control flow graph

    圖6 控制流圖的圖形化表示Fig. 6 Graphical representation of control flow graph

    將圖5中字符串形式的控制流圖轉換為圖形化表示如圖6所示。BB5是一個循環(huán)體,因此存在一條指向自身的回邊。由于BB6中最后一條指令是無條件跳轉指令,因此不存在指向BB7的邊。

    5 結語

    本文提出了PLC程序控制流分析方法,在對源程序進行語法分析的基礎上,利用中間表示有效解決了指令副作用的問題,生成的控制流圖為后續(xù)研究奠定了良好的基礎。未來工作主要集中于以下三方面:1)浮點數(shù)指令的中間表示轉換;2)SSIR中間表示的靜態(tài)單賦值形式轉化;3)PLC程序的數(shù)據(jù)流分析方法研究。

    References)

    [1] International Electrotechnical Commission. IEC 61131-3: programmable controllers — Part 3: programming languages [S]. Geneva: IEC, 2003.

    [2] DARVAS D, ADIEGO B F, VINUELA E B. PLCverif: a tool to verify PLC programs based on model checking techniques [C]// Proceedings of the 15th International Conference on Accelerator and Large Experimental Physics Control Systems. Melbourne, Australia: JACoW, 2015: 911-914.

    [3] ADIEGO B F, DARVAS D, VINUELA E B, et al. Applying model checking to industrial-sized PLC programs [J]. IEEE Transactions on Industrial Informatics, 2015, 11(6): 1400-1410.

    [4] BIALLAS S, BRAUER J, KOWALEWSKI S. Arcade.PLC: a verification platform for programmable logic controllers [C]// Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. New York: ACM, 2012: 338-341.

    [5] STATTELMANN S, BIALLAS S, SCHLICH B, et al. Applying static code analysis on industrial controller code [C]// Proceedings of the 2014 IEEE Conference on Emerging Technology and Factory Automation.Piscataway, NJ: IEEE, 2014: 1-4.

    [7] HUUCK R. Semantics and analysis of instruction list programs [J]. Electronic Notes in Theoretical Computer Science, 2005, 115: 3-18.

    [8] BIHA S O. A formal semantics of PLC programs in Coq [C]// Proceedings of the 2011 IEEE 35th Computer Software and Applications Conference. Washington, DC: IEEE Computer Society, 2011: 118-127.

    [9] MCLAUGHLIN S, POHLY D, MCDANIEL P, et al. A trusted safety verifier for process controller code [EB/OL]. [2017- 04- 20]. http://pdfs.semanticscholar.org/3f5e/13e951b58c1725250cb60af

    c27f08d8bf02c.pdf.

    [10] 西門子股份有限公司.SIMATIC S7- 300和S7- 400語句表(STL) 編程:參考手冊[M].慕尼黑:西門子公司,2002:24.(Siemens LTD. STatement List (STL) for SIMATIC S7- 300 and S7- 400 Programming, Reference Manual [M]. Munich: Siemens, 2002: 24.)

    [11] 廖常初.S7- 300/400 PLC應用技術[M].北京:機械工業(yè)出版社,2005:120.(LIAO C C. Application Technology of S7- 300/400 PLC [M] Beijing: China Machine Press, 2005: 120.)

    ZHANGYe, born in 1993, M. S. candidate. His research interests include information security.

    LUYuliang, born in 1964, Ph. D., professor. His research interests include information security.

    ControlflowanalysismethodofPLCprogram

    ZHANG Ye*, LU Yuliang

    (HefeiElectronicEngineeringInstitute,HefeiAnhui230037,China)

    Programmable Logic Controller (PLC) is one of the most important components of industrial control system, which controls varieties of physical equipments and production processes. The faults of PLC control program caused by malicious tempering of attacker and programming errors of internal personnel will seriously threaten equipment safety and personal safety in industrial field. In order to solve this problem, a control flow analysis method of PLC program was proposed. Firstly, the lexical and syntactic structure of source code were analyzed by using flex and bison. Then, the intermediate representation without instruction side effects was generated and optimized by analyzing the Abstract Syntax Tree (AST). Finally, the basic blocks were divided on the basis of intermediate representation, and the control flow graph of the program was constructed by taking basic block as the basic unit. The experimental results show that, the proposed method can restore the control flow structure of PLC program in the form of statement table, and provide the basis for program understanding and security analysis.

    Programmable Logic Controller (PLC); control flow; intermediate representation; program understanding; security

    2017- 05- 09;

    2017- 07- 04。

    張曄(1993—),男,江西九江人,碩士研究生,主要研究方向:信息安全; 陸余良(1964—),男,江蘇宜興人,教授,博士,主要研究方向:信息安全。

    1001- 9081(2017)12- 3581- 05

    10.11772/j.issn.1001- 9081.2017.12.3581

    (*通信作者電子郵箱zhangye_only@foxmail.com)

    TP393.08;TP312

    A

    猜你喜歡
    基本塊控制流副作用
    徐長風:核苷酸類似物的副作用
    肝博士(2022年3期)2022-06-30 02:48:28
    基于級聯(lián)森林的控制流錯誤檢測優(yōu)化算法
    抵御控制流分析的Python 程序混淆算法
    距離與權重相結合的導向式灰盒模糊測試方法
    計算機工程(2021年3期)2021-03-18 08:03:34
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    抵御控制流分析的程序混淆算法
    一種檢測控制流錯誤的多層分段標簽方法
    當心緊急避孕藥的副作用
    彼格梨
    基于控制流隱藏的代碼迷惑
    亚洲最大成人中文| 日韩av不卡免费在线播放| 日韩精品有码人妻一区| 精品一区在线观看国产| 大香蕉97超碰在线| av在线老鸭窝| 国产精品久久久久久久电影| 国产久久久一区二区三区| 国产日韩欧美在线精品| 欧美区成人在线视频| 国产一区二区在线观看日韩| 欧美一区二区亚洲| 男人狂女人下面高潮的视频| 在线播放无遮挡| 成人毛片60女人毛片免费| 美女国产视频在线观看| 亚洲精品国产av成人精品| 狠狠精品人妻久久久久久综合| 国产精品人妻久久久久久| 日本黄大片高清| 亚洲av成人精品一二三区| 综合色丁香网| 香蕉精品网在线| 日韩成人伦理影院| 亚洲真实伦在线观看| 日本猛色少妇xxxxx猛交久久| 亚洲国产最新在线播放| 久久久久久久大尺度免费视频| 熟女av电影| 国内少妇人妻偷人精品xxx网站| 久久久久视频综合| 女性被躁到高潮视频| 国产日韩欧美亚洲二区| 日本免费在线观看一区| 黑人高潮一二区| 好男人视频免费观看在线| 国产精品久久久久久久久免| 三级经典国产精品| 日本wwww免费看| 一区二区三区四区激情视频| 久久久久久人妻| 久久精品国产亚洲av涩爱| 国产永久视频网站| 狂野欧美激情性xxxx在线观看| 亚洲欧美中文字幕日韩二区| 亚洲av综合色区一区| 91久久精品国产一区二区三区| 少妇高潮的动态图| 大香蕉久久网| 亚洲经典国产精华液单| 久久久久久九九精品二区国产| av国产免费在线观看| 欧美精品国产亚洲| 久久6这里有精品| 简卡轻食公司| 国产精品国产三级国产专区5o| 亚洲精品中文字幕在线视频 | 国产视频首页在线观看| 久久综合国产亚洲精品| 国精品久久久久久国模美| 人妻系列 视频| 亚洲av综合色区一区| av在线老鸭窝| 麻豆成人av视频| 夫妻性生交免费视频一级片| 亚洲精品日韩av片在线观看| 免费观看a级毛片全部| 黄片wwwwww| 欧美精品一区二区免费开放| 国产视频首页在线观看| 18禁在线无遮挡免费观看视频| 下体分泌物呈黄色| 中文字幕亚洲精品专区| 99热这里只有是精品50| 国产在线视频一区二区| 久久久久久久久久成人| 一个人看视频在线观看www免费| h视频一区二区三区| 日韩电影二区| 成人高潮视频无遮挡免费网站| 国产白丝娇喘喷水9色精品| 三级国产精品欧美在线观看| 国产精品偷伦视频观看了| 最黄视频免费看| 黑人高潮一二区| 久久久成人免费电影| 国产精品欧美亚洲77777| 国产精品欧美亚洲77777| 亚洲欧美日韩卡通动漫| 啦啦啦中文免费视频观看日本| 能在线免费看毛片的网站| 韩国av在线不卡| 一级爰片在线观看| 亚洲国产日韩一区二区| 人人妻人人爽人人添夜夜欢视频 | 九九爱精品视频在线观看| 国产免费又黄又爽又色| a级一级毛片免费在线观看| 麻豆成人av视频| 国产av码专区亚洲av| 久久久午夜欧美精品| 日韩人妻高清精品专区| 亚洲熟女精品中文字幕| 国产精品秋霞免费鲁丝片| 亚洲综合色惰| 街头女战士在线观看网站| 九九久久精品国产亚洲av麻豆| 国产成人精品婷婷| 成人18禁高潮啪啪吃奶动态图 | 日本欧美国产在线视频| 美女cb高潮喷水在线观看| 国产精品蜜桃在线观看| 男女无遮挡免费网站观看| 日韩国内少妇激情av| 久久精品人妻少妇| 亚洲av男天堂| 最近最新中文字幕免费大全7| 国产免费视频播放在线视频| 国产精品99久久99久久久不卡 | 亚洲无线观看免费| 亚洲色图av天堂| 亚洲真实伦在线观看| 亚洲精品乱久久久久久| 久久综合国产亚洲精品| 热99国产精品久久久久久7| 狠狠精品人妻久久久久久综合| 久久毛片免费看一区二区三区| av福利片在线观看| 亚洲国产av新网站| 日本欧美国产在线视频| 亚洲性久久影院| 日韩精品有码人妻一区| 国产片特级美女逼逼视频| 秋霞伦理黄片| 日韩中字成人| 在线 av 中文字幕| 亚洲精华国产精华液的使用体验| 国产永久视频网站| 18禁裸乳无遮挡动漫免费视频| 91精品国产国语对白视频| 天美传媒精品一区二区| 五月天丁香电影| 亚州av有码| 日韩中字成人| 久久99精品国语久久久| 国产精品人妻久久久影院| 中文字幕精品免费在线观看视频 | 交换朋友夫妻互换小说| 国产精品一区二区在线观看99| 99视频精品全部免费 在线| 插逼视频在线观看| 亚洲欧美精品专区久久| 3wmmmm亚洲av在线观看| 草草在线视频免费看| 亚洲美女黄色视频免费看| 日韩精品有码人妻一区| 在线观看一区二区三区| 精品熟女少妇av免费看| 日本免费在线观看一区| 少妇的逼水好多| 亚洲三级黄色毛片| 国产免费又黄又爽又色| av专区在线播放| 久久av网站| 少妇精品久久久久久久| 亚洲精品456在线播放app| 久久精品国产亚洲网站| 卡戴珊不雅视频在线播放| 久久97久久精品| 欧美国产精品一级二级三级 | 尾随美女入室| 久久久精品免费免费高清| 久久这里有精品视频免费| 国产精品蜜桃在线观看| 一级黄片播放器| 亚洲精品乱码久久久v下载方式| 免费看日本二区| 晚上一个人看的免费电影| 国产v大片淫在线免费观看| 老熟女久久久| 91精品一卡2卡3卡4卡| 日韩一区二区视频免费看| 美女视频免费永久观看网站| 国产亚洲一区二区精品| 亚洲精品456在线播放app| 午夜视频国产福利| 18+在线观看网站| a级一级毛片免费在线观看| 老师上课跳d突然被开到最大视频| 一级av片app| 日韩一区二区三区影片| 蜜桃亚洲精品一区二区三区| 狂野欧美激情性bbbbbb| 久久久久久久精品精品| 少妇 在线观看| 久久精品夜色国产| 又爽又黄a免费视频| 成人一区二区视频在线观看| 中文字幕人妻熟人妻熟丝袜美| 中文字幕亚洲精品专区| 国产亚洲一区二区精品| 亚洲av不卡在线观看| 性色av一级| 青春草国产在线视频| 国产v大片淫在线免费观看| 午夜精品国产一区二区电影| 亚洲av综合色区一区| 亚洲不卡免费看| 欧美日韩亚洲高清精品| 精品亚洲成国产av| 国产成人午夜福利电影在线观看| 成人综合一区亚洲| 熟女av电影| 精品国产露脸久久av麻豆| 亚洲成人手机| 热99国产精品久久久久久7| 亚洲四区av| 国产免费一区二区三区四区乱码| 91久久精品国产一区二区成人| 亚洲国产精品一区三区| 女人十人毛片免费观看3o分钟| 99久久综合免费| 亚洲婷婷狠狠爱综合网| 五月天丁香电影| 国产老妇伦熟女老妇高清| 人妻少妇偷人精品九色| 国产精品99久久99久久久不卡 | 如何舔出高潮| 国产深夜福利视频在线观看| 99热这里只有是精品50| 亚洲国产精品999| 男女边摸边吃奶| 精品久久久久久久久av| 麻豆成人午夜福利视频| 久久毛片免费看一区二区三区| 汤姆久久久久久久影院中文字幕| 男女国产视频网站| 又爽又黄a免费视频| av.在线天堂| 在线观看三级黄色| 国产美女午夜福利| 免费看不卡的av| 日韩一本色道免费dvd| 亚洲真实伦在线观看| 最后的刺客免费高清国语| 久久久久久久亚洲中文字幕| 日韩av在线免费看完整版不卡| 18禁在线无遮挡免费观看视频| 国产成人a区在线观看| 免费观看a级毛片全部| 男男h啪啪无遮挡| 欧美3d第一页| 女人久久www免费人成看片| 26uuu在线亚洲综合色| 日韩 亚洲 欧美在线| 中国美白少妇内射xxxbb| 国产精品国产三级国产av玫瑰| 男人爽女人下面视频在线观看| 色综合色国产| 高清av免费在线| 欧美高清性xxxxhd video| 最近中文字幕2019免费版| 亚洲欧洲国产日韩| 久久精品国产亚洲网站| 伦理电影大哥的女人| 亚洲av成人精品一二三区| 亚洲成人手机| 中文字幕人妻熟人妻熟丝袜美| 插逼视频在线观看| 舔av片在线| 2021少妇久久久久久久久久久| 国产精品99久久久久久久久| 精品一区二区免费观看| 精品久久久精品久久久| 亚洲性久久影院| 最新中文字幕久久久久| 婷婷色av中文字幕| 插逼视频在线观看| 亚洲aⅴ乱码一区二区在线播放| 国产在线一区二区三区精| 午夜福利在线在线| 欧美zozozo另类| 久久久久久久久久久丰满| 亚洲精品,欧美精品| 日日摸夜夜添夜夜爱| 国产精品人妻久久久久久| 欧美日韩视频精品一区| 欧美精品亚洲一区二区| 久久久久久久久久久免费av| 在线观看美女被高潮喷水网站| 国产片特级美女逼逼视频| 日韩一区二区视频免费看| 99热网站在线观看| 亚洲国产色片| 在线精品无人区一区二区三 | 丰满乱子伦码专区| 51国产日韩欧美| 91狼人影院| 黄片无遮挡物在线观看| 日日摸夜夜添夜夜爱| 亚洲国产精品999| 男女下面进入的视频免费午夜| 六月丁香七月| 久久这里有精品视频免费| av在线蜜桃| 97热精品久久久久久| 日本欧美视频一区| 日本与韩国留学比较| 久久韩国三级中文字幕| 国产免费又黄又爽又色| 五月伊人婷婷丁香| 少妇猛男粗大的猛烈进出视频| 久久久久久久亚洲中文字幕| 99久久中文字幕三级久久日本| 国产美女午夜福利| 中文天堂在线官网| 久久精品久久精品一区二区三区| 久久亚洲国产成人精品v| av免费观看日本| 亚洲欧美日韩另类电影网站 | 欧美精品国产亚洲| 超碰97精品在线观看| 三级国产精品欧美在线观看| 嫩草影院新地址| 美女中出高潮动态图| 2022亚洲国产成人精品| 久久6这里有精品| 日日摸夜夜添夜夜添av毛片| 高清日韩中文字幕在线| 麻豆成人午夜福利视频| 亚洲欧美一区二区三区黑人 | 免费观看无遮挡的男女| 男人添女人高潮全过程视频| 久久久久视频综合| 中文字幕亚洲精品专区| 国产精品无大码| 97热精品久久久久久| 国产v大片淫在线免费观看| 免费高清在线观看视频在线观看| 精品久久久精品久久久| 最近中文字幕2019免费版| 国产精品欧美亚洲77777| 久久国产精品男人的天堂亚洲 | 亚洲精品中文字幕在线视频 | 国产淫语在线视频| 成人黄色视频免费在线看| 免费大片18禁| 91精品一卡2卡3卡4卡| 免费播放大片免费观看视频在线观看| 国产中年淑女户外野战色| 99re6热这里在线精品视频| 国产精品无大码| 婷婷色综合www| 久久这里有精品视频免费| 亚洲一级一片aⅴ在线观看| 韩国av在线不卡| 人人妻人人澡人人爽人人夜夜| 久久久国产一区二区| 最近最新中文字幕大全电影3| 亚洲av国产av综合av卡| 毛片女人毛片| .国产精品久久| 久久午夜福利片| 人人妻人人看人人澡| 亚洲综合色惰| 天堂俺去俺来也www色官网| 五月开心婷婷网| 日韩三级伦理在线观看| 亚洲av综合色区一区| 欧美三级亚洲精品| 卡戴珊不雅视频在线播放| 欧美 日韩 精品 国产| 在线观看免费日韩欧美大片 | 日产精品乱码卡一卡2卡三| 欧美zozozo另类| 九草在线视频观看| 久久久精品94久久精品| 国产精品麻豆人妻色哟哟久久| 国产真实伦视频高清在线观看| 麻豆乱淫一区二区| 免费观看av网站的网址| 成人18禁高潮啪啪吃奶动态图 | 成人国产av品久久久| 美女cb高潮喷水在线观看| 免费看不卡的av| 成人影院久久| 中文字幕人妻熟人妻熟丝袜美| www.色视频.com| 99热全是精品| 国产精品偷伦视频观看了| 18禁裸乳无遮挡免费网站照片| 99精国产麻豆久久婷婷| 女人十人毛片免费观看3o分钟| 国产欧美亚洲国产| 多毛熟女@视频| a级一级毛片免费在线观看| 欧美bdsm另类| 99热这里只有精品一区| 国产亚洲5aaaaa淫片| 韩国高清视频一区二区三区| 亚洲av日韩在线播放| 久久久久网色| 欧美最新免费一区二区三区| 国产免费视频播放在线视频| 欧美人与善性xxx| 亚洲天堂av无毛| 婷婷色av中文字幕| 久久热精品热| 天堂俺去俺来也www色官网| 成人黄色视频免费在线看| 欧美日韩亚洲高清精品| 久久久久久久久大av| 精品亚洲乱码少妇综合久久| 亚洲伊人久久精品综合| 国产日韩欧美亚洲二区| 视频区图区小说| 久久人人爽人人片av| 一区二区三区精品91| 久久国内精品自在自线图片| 久久久久久久久久久免费av| 插阴视频在线观看视频| 国产探花极品一区二区| 啦啦啦视频在线资源免费观看| 国产伦理片在线播放av一区| 国产av国产精品国产| av专区在线播放| 成人影院久久| 夜夜爽夜夜爽视频| 国产精品精品国产色婷婷| 中文字幕久久专区| 激情五月婷婷亚洲| 久久国产精品男人的天堂亚洲 | 人人妻人人澡人人爽人人夜夜| 多毛熟女@视频| kizo精华| 亚洲天堂av无毛| 熟妇人妻不卡中文字幕| 美女国产视频在线观看| av线在线观看网站| 97超视频在线观看视频| videos熟女内射| 亚洲国产欧美在线一区| 老熟女久久久| 少妇丰满av| 老熟女久久久| 精品国产三级普通话版| 久久久久久久久久久丰满| av国产免费在线观看| 国产久久久一区二区三区| 国产亚洲5aaaaa淫片| 中文字幕制服av| 免费高清在线观看视频在线观看| 国产精品久久久久久精品古装| 亚洲精品日韩在线中文字幕| 夜夜骑夜夜射夜夜干| 中文天堂在线官网| 日韩亚洲欧美综合| 欧美最新免费一区二区三区| 国产精品嫩草影院av在线观看| 色网站视频免费| 欧美zozozo另类| 女性生殖器流出的白浆| 中文字幕精品免费在线观看视频 | 精品久久久久久久久av| 国产高清三级在线| 国产高清国产精品国产三级 | 91久久精品国产一区二区三区| 亚洲,欧美,日韩| 欧美另类一区| 国产伦在线观看视频一区| 久久久国产一区二区| 特大巨黑吊av在线直播| av播播在线观看一区| 亚洲人成网站在线播| 国产精品偷伦视频观看了| 国产免费又黄又爽又色| 中文欧美无线码| 麻豆乱淫一区二区| 伦理电影大哥的女人| 春色校园在线视频观看| 天堂中文最新版在线下载| 久久精品夜色国产| 男女啪啪激烈高潮av片| 嘟嘟电影网在线观看| 亚洲精品日韩在线中文字幕| 国产老妇伦熟女老妇高清| 欧美三级亚洲精品| 嫩草影院入口| 国产精品女同一区二区软件| 三级经典国产精品| 午夜福利视频精品| av.在线天堂| 亚洲综合精品二区| 婷婷色麻豆天堂久久| 国内精品宾馆在线| 国产精品久久久久久久电影| 男女国产视频网站| 伊人久久国产一区二区| 韩国高清视频一区二区三区| 欧美一级a爱片免费观看看| 成人毛片60女人毛片免费| 一区二区三区四区激情视频| 简卡轻食公司| 交换朋友夫妻互换小说| 国产成人免费无遮挡视频| 国产精品麻豆人妻色哟哟久久| 精品久久久久久电影网| 亚洲欧美清纯卡通| 精品少妇黑人巨大在线播放| 亚洲av成人精品一二三区| 夜夜骑夜夜射夜夜干| 又爽又黄a免费视频| 亚洲精品乱码久久久久久按摩| 成人漫画全彩无遮挡| 国产精品一区www在线观看| 久久婷婷青草| 黑丝袜美女国产一区| 久久人人爽人人爽人人片va| 国产精品国产三级国产专区5o| 久久久久久久大尺度免费视频| 成年美女黄网站色视频大全免费 | 寂寞人妻少妇视频99o| 人人妻人人添人人爽欧美一区卜 | 成人国产av品久久久| 成人漫画全彩无遮挡| 赤兔流量卡办理| 国产精品免费大片| 亚洲无线观看免费| 一级二级三级毛片免费看| 欧美最新免费一区二区三区| 欧美日韩国产mv在线观看视频 | 最后的刺客免费高清国语| 男女啪啪激烈高潮av片| 亚洲欧美一区二区三区国产| 亚洲欧洲国产日韩| 久久精品国产鲁丝片午夜精品| 黄片无遮挡物在线观看| 中文字幕制服av| 男女边摸边吃奶| 天堂俺去俺来也www色官网| 亚洲欧美精品自产自拍| 99久久精品国产国产毛片| 国产伦理片在线播放av一区| 色视频在线一区二区三区| 国产精品久久久久久久电影| 一级毛片我不卡| 岛国毛片在线播放| 久久久色成人| 国内少妇人妻偷人精品xxx网站| 精品一区二区三区视频在线| 插逼视频在线观看| 美女cb高潮喷水在线观看| 日本黄大片高清| 夜夜骑夜夜射夜夜干| 久久99蜜桃精品久久| 国产一级毛片在线| 五月伊人婷婷丁香| 成人一区二区视频在线观看| 亚洲内射少妇av| 赤兔流量卡办理| 精品久久久久久久末码| 熟女电影av网| 99久久精品国产国产毛片| 亚洲成人中文字幕在线播放| 在线亚洲精品国产二区图片欧美 | 亚洲不卡免费看| 成人黄色视频免费在线看| 美女视频免费永久观看网站| 国产午夜精品久久久久久一区二区三区| 99热全是精品| 在线天堂最新版资源| 久久久久性生活片| 国产精品福利在线免费观看| 久久久久性生活片| 午夜福利在线在线| 熟女人妻精品中文字幕| 日本wwww免费看| 在线亚洲精品国产二区图片欧美 | 日本一二三区视频观看| 五月开心婷婷网| 一二三四中文在线观看免费高清| 看免费成人av毛片| 亚洲欧美日韩卡通动漫| 亚洲av二区三区四区| 老司机影院成人| 亚洲,一卡二卡三卡| 免费不卡的大黄色大毛片视频在线观看| 又黄又爽又刺激的免费视频.| 国产欧美另类精品又又久久亚洲欧美| 久久久欧美国产精品| av国产精品久久久久影院| 黄色配什么色好看| 欧美日韩国产mv在线观看视频 | 欧美国产精品一级二级三级 | 国产欧美亚洲国产| 国产精品熟女久久久久浪| 蜜臀久久99精品久久宅男| 九九爱精品视频在线观看| 日韩三级伦理在线观看| 亚洲av成人精品一二三区| 精品视频人人做人人爽| 久久青草综合色| 人人妻人人澡人人爽人人夜夜| 男人和女人高潮做爰伦理| 22中文网久久字幕| 国产一级毛片在线| 自拍欧美九色日韩亚洲蝌蚪91 | 国产伦在线观看视频一区| 青青草视频在线视频观看| 女性生殖器流出的白浆| 亚洲精品国产av成人精品| 久久热精品热| 内地一区二区视频在线| 色婷婷av一区二区三区视频| 久久久久久久亚洲中文字幕|