This application provides a Java code detection method and device, the method comprises: receiving the detected source code; analysis of source code of function calls, all the sub structure of the code to get the source code; obtaining the source code as well as each sub structure code to call the jar package set; each jar judgment gets a collection of packets if there is a conflict jar package; each jar gets in the packet conflict set jar packet, output of the source code to detect the presence of inconsistent results function after confusion. Applying this application example, it is possible to realize the inconsistent function of the code in advance when the Java code is confused.
【技術實現步驟摘要】
一種Java代碼檢測方法及裝置
本申請涉及軟件開發
,尤其涉及一種Java代碼檢測方法及裝置。
技術介紹
在軟件開發過程中,對于編寫好的Java代碼通常可以使用代碼混淆工具(如proguard工具)對代碼進行混淆。混淆后的Java代碼相對于混淆前的Java代碼可以具有減少代碼量、增加代碼被破譯的難度等優點。然而,使用代碼混淆工具后,經常會發送混淆后的Java代碼功能與混淆前的Java代碼功能不一致,甚至混淆后代碼功能不可用的情況。現有技術中,針對混淆后代碼功能不一致的情況,通常會對混淆后的代碼進行測試。測試過程中需要用到測試用例。由于導致混淆后代碼功能不一致的原因多種多樣,一般一個測試用例只能發現一種原因,所以需要編寫盡可能多的測試用例。然而,編寫測試用例需要很高的成本,基于成本考慮無法無限制地增加測試用例,因此基于測試用例的測試無法覆蓋所有混淆后代碼功能不一致的情況,導致存在不能及時發現混淆后java代碼功能不一致的問題。
技術實現思路
本申請提供的一種Java代碼檢測方法及裝置,以解決現有技術中存在不能及時發現混淆后Java代碼功能不一致的問題。根據本申請實施例提供的一種Java代碼檢測方法,所述方法包括:接收待檢測的源代碼;分析源代碼的函數調用關系,得出所述源代碼的所有子結構代碼;獲取所述源代碼以及每一個子結構代碼調用的jar包集合;判斷所獲取的各個jar包集合是否存在沖突jar包;在所述獲取的各個jar包集合存在沖突jar包的情況下,輸出Java代碼存在混淆后功能不一致的檢測結果。可選的,所述獲取所述源代碼以及每一個子結構代碼調用的jar包集合, ...
【技術保護點】
一種Java代碼檢測方法,其特征在于,所述方法包括:接收待檢測的源代碼;分析源代碼的函數調用關系,得出所述源代碼的所有子結構代碼;獲取所述源代碼以及每一個子結構代碼調用的jar包集合;判斷所獲取的各個jar包集合是否存在沖突jar包;在所述獲取的各個jar包集合存在沖突jar包的情況下,輸出所述源代碼存在混淆后功能不一致的檢測結果。
【技術特征摘要】
1.一種Java代碼檢測方法,其特征在于,所述方法包括:接收待檢測的源代碼;分析源代碼的函數調用關系,得出所述源代碼的所有子結構代碼;獲取所述源代碼以及每一個子結構代碼調用的jar包集合;判斷所獲取的各個jar包集合是否存在沖突jar包;在所述獲取的各個jar包集合存在沖突jar包的情況下,輸出所述源代碼存在混淆后功能不一致的檢測結果。2.根據權利要求1所述的方法,其特征在于,所述獲取所述源代碼以及每一個子結構代碼調用的jar包集合,具體包括:讀取所述源代碼的配置文件中記錄的所述源代碼調用的jar包;讀取所述子結構代碼的配置文件中記錄的所述子結構代碼調用的jar包;將所述源代碼調用的jar包以及所述每一個子結構代碼調用的jar包,存入對應的jar包集合。3.根據權利要求2所述的方法,其特征在于,所述讀取所述源代碼的配置文件中記錄的所述源代碼調用的jar包,具體包括:讀取所述源代碼的配置文件中記錄的所述源代碼調用的jar包的名稱以及版本號;所述讀取所述子結構代碼的配置文件中記錄的所述子結構代碼調用的jar包,具體包括:讀取所述子結構代碼的配置文件中記錄的所述子結構代碼調用的jar包的名稱以及版本號。4.根據權利要求2或3所述的方法,其特征在于,所述配置文件包括pom文件或者build.gradle文件。5.根據權利要求1所述的方法,其特征在于,所述判斷所獲取的各個jar包集合是否存在沖突jar包,具體包括:獲取所獲取的各個jar包集合中jar包的名稱以及版本號;判斷是否存在相同名稱、不同版本號的jar包;相應地,所述在所述獲取的各個jar包集合存在沖突jar包的情況下,輸出Java代碼存在混淆后功能不一致的檢測結果,具體包括:在存在相同名稱、不同版本號的jar包的情況下,將其加入到沖突jar包集合;輸出所述沖...
【專利技術屬性】
技術研發人員:楊磊磊,
申請(專利權)人:阿里巴巴集團控股有限公司,
類型:發明
國別省市:開曼群島,KY
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。