Comments (4)
After I dug into this I found it was indeed a frontend-related issue and although "--allow-phantom"
can suppress the error, there are some potential pitfalls.
For example, in the following case, the frontend will not execute valid reference analysis on U.class
, then the class U
will not be included in the World of analysis (then Soot error occurs).
public class Test {
public static void main(String[] args) throws Exception {
Class<U> klass = U.class; // U is another empty class in the same directory with Test
java.lang.reflect.Method[] declaredMethods = klass.getDeclaredMethods(); // just for using U
}
}
"--allow-phantom"
can suppress the error, but notes that some classes will be empty/ignored, that is, in the above case, U
and its related process will be ignored. (There are so many U.class
in the main method of org.apache.hadoop.hbase.mapreduce.Driver)
If you are very concerned about U
‘s handling, then you can manually add U
via --input-classes
according to wiki.
It is an issue about Soot frontend, we are working on it.
from tai-e.
Try to add --allow-phantom
to suppress the resolving error because of frontend according to wiki:
String files = Stream.of(new File("target").listFiles())
.filter(file -> !file.isDirectory())
.map(File::toString)
- .collect(Collectors.joining(":"));
+ .collect(Collectors.joining(File.pathSeparator));
Main.main(new String[]{ "-cp", files,
+ "--allow-phantom", // or "-ap"
"-m", "org.apache.hadoop.hbase.mapreduce.Driver",
"-java", "8",
"-a", "pta"
});
from tai-e.
Thanks! It solve my problem.
from tai-e.
After I dug into this I found it was indeed a frontend-related issue and although
"--allow-phantom"
can suppress the error, there are some potential pitfalls.For example, in the following case, the frontend will not execute valid reference analysis on
U.class
, then the classU
will not be included in the World of analysis (then Soot error occurs).public class Test { public static void main(String[] args) throws Exception { Class<U> klass = U.class; // U is another empty class in the same directory with Test java.lang.reflect.Method[] declaredMethods = klass.getDeclaredMethods(); // just for using U } }
"--allow-phantom"
can suppress the error, but notes that some classes will be empty/ignored, that is, in the above case,U
and its related process will be ignored. (There are so manyU.class
in the main method of org.apache.hadoop.hbase.mapreduce.Driver)If you are very concerned about
U
‘s handling, then you can manually addU
via--input-classes
according to wiki.It is an issue about Soot frontend, we are working on it.
I'm curious about the progress of new frontend. Any plan?
Maybe you can open a https://github.com/pascal-lab/Tai-e/projects and give out an outline of new frontend. Community contribution can boost the progress. : )
from tai-e.
Related Issues (20)
- Reflection analysis for Method.invoke(Object, Object[]) miss target when the second argument is generated by ArrayList.toArray(T[]) HOT 1
- RuntimeException: couldn't find class HOT 2
- When using methods such as Map.get(), if the return value is an array, the elements in the array will not be tainted. HOT 6
- question about Build IR HOT 1
- Plugin [id: 'org.gradle.kotlin.kotlin-dsl', version: '4.3.0'] was not found in any of the following sources: HOT 6
- question about icfg with ImplicitEntries
- Null pointer exception when running BenchmarkRunner on benchmark `columba-1.4` HOT 4
- Tai-e did not detect any taint flows HOT 6
- Could not resolve java.lang.invoke.StringConcatFactory when test Java9StringConcat HOT 1
- How to correctly taint "%this"? HOT 5
- How to dump call graph, pointer flow graph, and points-to set? HOT 7
- Customize multiple entry methods HOT 5
- Inquiry about Method Caller Extraction in Java Library project Using Tai-e HOT 6
- Missed in Inter-taint analysis
- How to obtain the results of CFGBuilder while writing PTA Plugin code? HOT 2
- CHA seems slower than context-insensitive pointer analysis HOT 4
- How to resolve taint propagation in type cast HOT 7
- How to config to result[*] rule for return array type in taint analysis
- How to config to result[*] rule for return array type in taint analysis HOT 9
- Have any suggestion for back taint propagation in param var HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tai-e.