原创 Soot 靜態分析框架(二)Soot的核心

2. Soot核心Body Body 是對應的是Java一個函數體,Body是Soot的核心,Graph、Flow的構建都是基於Body進行分析,當然你可以基於不同的IR語言構建不同的Body,soot提供了JimpleBody,Shim

原创 Soot 靜態分析框架(三)Soot 過程分析

3.1 Soot構建語法樹   Soot通過objectweb來進行字節碼構建成語法樹 首先scene會去查找一些基礎的JVM的類 基礎的對象Object, Boolean, Void, Integer, Long, Float等 字符

原创 【TensorFlow基礎函數】tf.transpose函數說明和用法

tf.transpose 函數 官網介紹 https://www.tensorflow.org/api_docs/python/tf/transpose tf.transpose( a, perm=None, n

原创 Soot 靜態分析框架(一)整體框架

 1. Soot 靜態分析框架     Soot核心對象分別是:Scene、SootClass、SootMethod、SootField、Body。     1.1  Scene Scene:Scene表示完整的分析環境,可以通過Sc

原创 CVE-2016-1000031 Apache Commons FileUpload 反序列化漏洞深入分析

反序列化漏洞最近一直不得安寧,先有Apache Commons Collections通過反序列化實現遠程代碼執行,再有Spring RMI 反序列化漏洞,最新又有了common upload file的反序列化漏洞CVE-2016-10

原创 Java 8 動態類型語言Lambda表達式實現原理分析

Java 8支持動態語言,看到了很酷的Lambda表達式,對一直以靜態類型語言自居的Java,讓人看到了Java虛擬機可以支持動態語言的目標。 import java.util.function.Consumer; public cl

原创 Struts2遠程命令執行漏洞 S2-045 源碼分析

Struts2 又爆OGNL的高危漏洞S-045,又是OGNL的漏洞漏洞分析1. Struts 的上傳request在上傳文件裏,Struts默認使用的是common upload 的上傳組件, 爲了能被action訪問到上傳的文件,通常

原创 大數據:Spark Storage(一) 集羣下的區塊管理

Storage模塊 在Spark中提及最多的是RDD,而RDD所交互的數據是通過Storage來實現和管理 Storage模塊整體架構 1. 存儲層 在Spark裏,單節點的Storage的管理是通過block來管理的,每個Block的存

原创 大數據:Spark Standalone 集羣調度(一)從遠程調試開始說application創建

遠程debug,特別是在集羣方式時候,會很方便了解代碼的運行方式,這也是碼農比較喜歡的方式 雖然scala的語法和java不一樣,但是scala是運行在JVM虛擬機上的,也就是scala最後編譯成字節碼運行在JVM上,那麼遠程調試方式就是

原创 大數據:Spark Storage(二) 集羣下的broadcast

Spark BroadCast Broadcast 簡單來說就是將數據從一個節點複製到其他各個節點,常見用於數據複製到節點本地用於計算,在前面一章中討論過Storage模塊中BlockManager,Block既可以保存在內存中,也可以保

原创 Java XML XXE 底層防禦

JavaXML相關API 是由JAXP定義了相關的XML的通用接口,常見包括DOM/SAX/STAX/XPATH 的標準API Javax.xml.parsers  -> DOM/SAX Javax.xml.stream   -> STA

原创 Soot 靜態分析框架(七)模塊分析

Java 9裏開始支持模塊化,以一個獨立的開源項目jigsaw而來, 具體可以參考鏈接, https://openjdk.java.net/projects/jigsaw/  同時也可以參考JSR376標準   1. module-inf

原创 Soot 靜態分析框架(五)Annotation 的實現

1. Annotation的實現 1.1 Java實現的Annotation java 的自定義註解實現,通常我們會先自定義一個註解 import java.lang.annotation.ElementType; import jav

原创 soot 靜態分析框架(四)Soot lambda 構建

1. JVM 的 Lambda構建 和JVM構建Lambda的方式不同,因爲Lambda表達式的類是一個運行的時候動態生成的類,是通過新的JVM的指令集InvokeDynamic來實現,通過調用java/lang/invoke/Lambd

原创 Soot 靜態分析框架(六)數據流指向分析

1. 數據流指向分析 1.1 指向分析 指向分析,給定一個變量的函數,計算其可能的類型,指向信息,指向分析可以幫助其它的分析。 1.2 Soot的指向分析框架 soot提供了PointsToAnalysis ,PointsToSet接口。