secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.03k stars 293 forks source link

Question about IDE Problem #457

Closed YaphetsH closed 2 years ago

YaphetsH commented 2 years ago

The newest flowdroid is only based on IFDS not IDE Solver,so for some situation views,eg. constant propagation(which is better for IDE framework),should we use FastSolver to make problem efficient or use IFDS/IDE in original Heros library?

Normally, what's the real difference between FastSolver and Heros IFDS/IDE

StevenArzt commented 2 years ago

FlowDroid has always been based on IFDS. When we used the original Heros implementation a long time ago, we also used the IFDS solver from Heros. While the Heros IFDS solver is based on the IDE solver (recall that IFDS is just a special case of IDE), FlowDroid was never an IDE problem.

IDE provides you with a second phase in which you can compute a function across the propagation tree that was created in the first phase. That makes sense, e.g., for constant propagation. In CP, the first phase identifies the statements that are involved in the computation of the value that arrives at a given statement. The second phase is used to compute the actual value across these statements.

YaphetsH commented 2 years ago

FlowDroid has always been based on IFDS. When we used the original Heros implementation a long time ago, we also used the IFDS solver from Heros. While the Heros IFDS solver is based on the IDE solver (recall that IFDS is just a special case of IDE), FlowDroid was never an IDE problem.

IDE provides you with a second phase in which you can compute a function across the propagation tree that was created in the first phase. That makes sense, e.g., for constant propagation. In CP, the first phase identifies the statements that are involved in the computation of the value that arrives at a given statement. The second phase is used to compute the actual value across these statements.

Thx for your reply soon~,I see.