arkanalyzer 1.0.41 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/arkanalyzer.json +1 -2
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +52 -38
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +11 -5
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +42 -24
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +6 -11
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +26 -23
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +11 -63
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +72 -499
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +4 -2
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts +24 -0
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/ContainerPlugin.js +167 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts +26 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/FunctionPlugin.js +151 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts +15 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/IPagPlugin.js +16 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts +25 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/PluginManager.js +66 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts +37 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/SdkPlugin.js +160 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts +68 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/plugins/StoragePlugin.js +288 -0
- package/lib/core/base/Expr.d.ts +1 -0
- package/lib/core/base/Expr.d.ts.map +1 -1
- package/lib/core/base/Expr.js +9 -0
- package/lib/core/common/DummyMainCreater.js +1 -1
- package/lib/core/common/IRInference.d.ts +1 -1
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +7 -3
- package/lib/core/common/ModelUtils.js +1 -1
- package/lib/core/common/SdkUtils.d.ts +3 -2
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +30 -30
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +7 -5
- package/lib/core/dataflow/DataflowSolver.js +3 -3
- package/lib/core/dataflow/UndefinedVariable.js +2 -2
- package/lib/core/graph/BasicBlock.d.ts.map +1 -1
- package/lib/core/graph/BasicBlock.js +9 -4
- package/lib/core/graph/Cfg.d.ts.map +1 -1
- package/lib/core/graph/Cfg.js +4 -1
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +4 -4
- package/lib/core/graph/builder/ConditionBuilder.d.ts +2 -1
- package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/ConditionBuilder.js +8 -4
- package/lib/core/graph/builder/TrapBuilder.d.ts +19 -1
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +195 -68
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +2 -1
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +3 -4
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +24 -20
- package/lib/core/model/builder/ArkImportBuilder.js +28 -25
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +1 -2
- package/lib/core/model/builder/BodyBuilder.js +1 -1
- package/lib/pass/Context.d.ts +47 -0
- package/lib/pass/Context.d.ts.map +1 -0
- package/lib/pass/Context.js +72 -0
- package/lib/pass/Dispatcher.d.ts +102 -0
- package/lib/pass/Dispatcher.d.ts.map +1 -0
- package/lib/pass/Dispatcher.js +202 -0
- package/lib/pass/Pass.d.ts +83 -0
- package/lib/pass/Pass.d.ts.map +1 -0
- package/lib/pass/Pass.js +95 -0
- package/lib/pass/ScenePassMgr.d.ts +73 -0
- package/lib/pass/ScenePassMgr.d.ts.map +1 -0
- package/lib/pass/ScenePassMgr.js +156 -0
- package/lib/pass/validators/Exprs.d.ts +9 -0
- package/lib/pass/validators/Exprs.d.ts.map +1 -0
- package/lib/pass/validators/Exprs.js +40 -0
- package/lib/pass/validators/Models.d.ts +14 -0
- package/lib/pass/validators/Models.d.ts.map +1 -0
- package/lib/pass/validators/Models.js +42 -0
- package/lib/pass/validators/SceneValidator.d.ts +19 -0
- package/lib/pass/validators/SceneValidator.d.ts.map +1 -0
- package/lib/pass/validators/SceneValidator.js +77 -0
- package/lib/pass/validators/Stmts.d.ts +7 -0
- package/lib/pass/validators/Stmts.d.ts.map +1 -0
- package/lib/pass/validators/Stmts.js +36 -0
- package/lib/pass/validators/Validator.d.ts +207 -0
- package/lib/pass/validators/Validator.d.ts.map +1 -0
- package/lib/pass/validators/Validator.js +343 -0
- package/lib/pass/validators/Values.d.ts +7 -0
- package/lib/pass/validators/Values.d.ts.map +1 -0
- package/lib/pass/validators/Values.js +34 -0
- package/lib/save/JsonPrinter.d.ts.map +1 -1
- package/lib/save/JsonPrinter.js +26 -102
- package/lib/save/source/SourceStmt.d.ts +1 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +5 -8
- package/lib/utils/FileUtils.d.ts.map +1 -1
- package/lib/utils/FileUtils.js +13 -6
- package/lib/utils/ValueAsserts.d.ts +9 -0
- package/lib/utils/ValueAsserts.d.ts.map +1 -0
- package/lib/utils/ValueAsserts.js +89 -0
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@ import { Value } from '../../core/base/Value';
|
|
|
5
5
|
import { ArkMethod } from '../../core/model/ArkMethod';
|
|
6
6
|
import { Local } from '../../core/base/Local';
|
|
7
7
|
import { NodeID } from '../../core/graph/BaseExplicitGraph';
|
|
8
|
-
import { FuncPag, InterFuncPag, Pag, PagNode, PagNodeType
|
|
8
|
+
import { FuncPag, InterFuncPag, Pag, PagNode, PagNodeType } from './Pag';
|
|
9
9
|
import { IPtsCollection } from './PtsDS';
|
|
10
10
|
import { PointerAnalysisConfig } from './PointerAnalysisConfig';
|
|
11
11
|
import { ContextID } from './context/Context';
|
|
@@ -23,24 +23,22 @@ export declare class PagBuilder {
|
|
|
23
23
|
private interFuncPags?;
|
|
24
24
|
private handledFunc;
|
|
25
25
|
private ctxSelector;
|
|
26
|
+
private pluginManager;
|
|
26
27
|
private scene;
|
|
27
28
|
private worklist;
|
|
28
29
|
private pagStat;
|
|
29
30
|
private staticField2UniqInstanceMap;
|
|
30
31
|
private instanceField2UniqInstanceMap;
|
|
31
32
|
private sdkMethodReturnValueMap;
|
|
32
|
-
private methodParamValueMap;
|
|
33
|
-
private fakeSdkMethodParamDeclaringStmt;
|
|
34
33
|
private funcHandledThisRound;
|
|
35
34
|
private updatedNodesThisRound;
|
|
36
35
|
private singletonFuncMap;
|
|
37
36
|
private globalThisValue;
|
|
38
37
|
private globalThisPagNode?;
|
|
39
|
-
private storagePropertyMap;
|
|
40
38
|
private externalScopeVariableMap;
|
|
41
39
|
private retriggerNodesList;
|
|
42
40
|
constructor(p: Pag, cg: CallGraph, s: Scene, config: PointerAnalysisConfig);
|
|
43
|
-
|
|
41
|
+
buildFuncPagAndAddToWorklist(cs: CSFuncID): CSFuncID;
|
|
44
42
|
private addToFuncHandledListThisRound;
|
|
45
43
|
buildForEntries(funcIDs: FuncID[]): void;
|
|
46
44
|
handleReachable(): boolean;
|
|
@@ -49,9 +47,8 @@ export declare class PagBuilder {
|
|
|
49
47
|
private buildInvokeExprInStmt;
|
|
50
48
|
private processExternalScopeValue;
|
|
51
49
|
/**
|
|
52
|
-
*
|
|
50
|
+
* process Method level analysis only
|
|
53
51
|
*/
|
|
54
|
-
private buildSDKFuncPag;
|
|
55
52
|
private createDummyParamValue;
|
|
56
53
|
private createDummyParamPagNodes;
|
|
57
54
|
buildPagFromFuncPag(funcID: FuncID, cid: ContextID): void;
|
|
@@ -65,26 +62,16 @@ export declare class PagBuilder {
|
|
|
65
62
|
* handle both PtrInvokeExpr and InstanceInvokeExpr
|
|
66
63
|
*/
|
|
67
64
|
private getDynamicCallee;
|
|
68
|
-
processNormalMethodPagCallEdge(staticCS: CallSite, cid: ContextID,
|
|
69
|
-
/**
|
|
70
|
-
* include container API, Function API
|
|
71
|
-
*/
|
|
72
|
-
processBuiltInMethodPagCallEdge(staticCS: CallSite, cid: ContextID, calleeCid: ContextID, baseClassPTNode: NodeID): NodeID[];
|
|
73
|
-
private processContainerPagCallEdge;
|
|
74
|
-
private handleFunctionCall;
|
|
75
|
-
private handleFunctionApply;
|
|
76
|
-
private handleFunctionBind;
|
|
77
|
-
private addThisEdge;
|
|
78
|
-
private setFunctionThisPt;
|
|
65
|
+
processNormalMethodPagCallEdge(staticCS: CallSite, cid: ContextID, baseClassPTNode: NodeID): NodeID[];
|
|
79
66
|
handleUnkownDynamicCall(cs: DynCallSite, cid: ContextID): NodeID[];
|
|
80
67
|
handleUnprocessedCallSites(processedCallSites: Set<DynCallSite>): NodeID[];
|
|
81
|
-
|
|
68
|
+
addThisRefCallEdge(cid: ContextID, baseLocal: Local, callee: ArkMethod, calleeCid: ContextID, callerFunID: FuncID): NodeID;
|
|
82
69
|
private recordThisRefNode;
|
|
83
70
|
addStaticPagCallEdge(cs: CallSite, callerCid: ContextID, calleeCid?: ContextID, ptNode?: PagNode): NodeID[];
|
|
84
71
|
/**
|
|
85
72
|
* only process the param PAG edge for invoke stmt
|
|
86
73
|
*/
|
|
87
|
-
|
|
74
|
+
addCallParamPagEdge(calleeMethod: ArkMethod, args: Value[], cs: ICallSite, callerCid: ContextID, calleeCid: ContextID, offset: number): NodeID[];
|
|
88
75
|
/**
|
|
89
76
|
* temporary solution for foreach
|
|
90
77
|
* deprecate when foreach is handled by built-in method
|
|
@@ -95,27 +82,13 @@ export declare class PagBuilder {
|
|
|
95
82
|
* process the return value PAG edge for invoke stmt
|
|
96
83
|
*/
|
|
97
84
|
addCallReturnPagEdge(calleeMethod: ArkMethod, callStmt: Stmt, callerCid: ContextID, calleeCid: ContextID): NodeID[];
|
|
98
|
-
|
|
99
|
-
|
|
85
|
+
/**
|
|
86
|
+
* for method level call graph, add return edge
|
|
87
|
+
*/
|
|
88
|
+
addStaticPagCallReturnEdge(cs: CallSite, cid: ContextID, baseClassPTNode: NodeID): NodeID[];
|
|
100
89
|
private addSDKMethodReturnPagEdge;
|
|
101
|
-
private addSDKMethodParamPagEdge;
|
|
102
90
|
getOrNewPagNode(cid: ContextID, v: PagNodeType, s?: Stmt): PagNode;
|
|
103
91
|
getOrNewGlobalThisNode(cid: ContextID): PagNode;
|
|
104
|
-
/**
|
|
105
|
-
* search the storage map to get propertyNode with given storage and propertyFieldName
|
|
106
|
-
* @param storage storage type: AppStorage, LocalStorage etc.
|
|
107
|
-
* @param propertyName string property key
|
|
108
|
-
* @returns propertyNode: PagLocalNode
|
|
109
|
-
*/
|
|
110
|
-
getOrNewPropertyNode(storage: StorageType, propertyName: string, stmt: Stmt): PagNode;
|
|
111
|
-
getPropertyNode(storage: StorageType, propertyName: string, stmt: Stmt): PagNode | undefined;
|
|
112
|
-
/**
|
|
113
|
-
* add PagEdge
|
|
114
|
-
* @param edgeKind: edge kind differs from API
|
|
115
|
-
* @param propertyNode: PAG node created by protpertyName
|
|
116
|
-
* @param obj: heapObj stored with Storage API
|
|
117
|
-
*/
|
|
118
|
-
addPropertyLinkEdge(propertyNode: PagNode, storageObj: Value, cid: ContextID, stmt: Stmt, edgeKind: number): boolean;
|
|
119
92
|
getRealInstanceRef(v: Value): Value;
|
|
120
93
|
/**
|
|
121
94
|
* check if a method is singleton function
|
|
@@ -126,30 +99,6 @@ export declare class PagBuilder {
|
|
|
126
99
|
private funcPagDfs;
|
|
127
100
|
getGlobalThisValue(): Local;
|
|
128
101
|
private getEdgeKindForAssignStmt;
|
|
129
|
-
/**
|
|
130
|
-
* process Storage API
|
|
131
|
-
* @returns boolean: check if the cs represent a Storage API, no matter the API will success or fail
|
|
132
|
-
*/
|
|
133
|
-
private processStorage;
|
|
134
|
-
private processStorageSetOrCreate;
|
|
135
|
-
private processStorageLink;
|
|
136
|
-
private processStorageProp;
|
|
137
|
-
private processStorageSet;
|
|
138
|
-
private processStorageGet;
|
|
139
|
-
private getPropertyName;
|
|
140
|
-
/**
|
|
141
|
-
* get storageType enum with method's Declaring ClassName
|
|
142
|
-
*
|
|
143
|
-
* @param storageName ClassName that method belongs to, currently support AppStorage and SubscribedAbstractProperty
|
|
144
|
-
* SubscribedAbstractProperty: in following listing, `link1` is infered as ClassType `SubscribedAbstractProperty`,
|
|
145
|
-
* it needs to get PAG node to check the StorageType
|
|
146
|
-
* let link1: SubscribedAbstractProperty<A> = AppStorage.link('PropA');
|
|
147
|
-
* link1.set(a);
|
|
148
|
-
* @param cs: for search PAG node in SubscribedAbstractProperty
|
|
149
|
-
* @param cid: for search PAG node in SubscribedAbstractProperty
|
|
150
|
-
* @returns StorageType enum
|
|
151
|
-
*/
|
|
152
|
-
private getStorageType;
|
|
153
102
|
/**\
|
|
154
103
|
* ArkNewExpr, ArkNewArrayExpr, function ptr, globalThis
|
|
155
104
|
*/
|
|
@@ -183,7 +132,6 @@ export declare class PagBuilder {
|
|
|
183
132
|
addUpdatedNode(nodeID: NodeID, diffPT: IPtsCollection<NodeID>): void;
|
|
184
133
|
getUpdatedNodes(): Map<number, IPtsCollection<number>>;
|
|
185
134
|
resetUpdatedNodes(): void;
|
|
186
|
-
private transferArrayValues;
|
|
187
135
|
getContextSelector(): ContextSelector;
|
|
188
136
|
}
|
|
189
137
|
//# sourceMappingURL=PagBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAoC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAA+C,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"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"}
|