jkinder / jakstab Goto Github PK
View Code? Open in Web Editor NEWThe Jakstab static analysis platform for binaries
License: GNU General Public License v2.0
The Jakstab static analysis platform for binaries
License: GNU General Public License v2.0
Hi, When I run the compile.sh I get the following error
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
with the option -Xlint:unchecked I get
src/org/jakstab/ssl/parser/SSLPreprocessor.java:855: warning: [unchecked] unchecked call to putAll(Map<? extends K,? extends V>) as a member of the raw type Map
if (lhsIn.getVarMap() != null) newMap.putAll(lhsIn.getVarMap());
^
where K,V are type-variables:
K extends Object declared in interface Map
V extends Object declared in interface Map
src/org/jakstab/ssl/parser/SSLPreprocessor.java:856: warning: [unchecked] unchecked call to putAll(Map<? extends K,? extends V>) as a member of the raw type Map
if (rhsIn.getVarMap() != null) newMap.putAll(rhsIn.getVarMap());
^
where K,V are type-variables:
K extends Object declared in interface Map
V extends Object declared in interface Map
src/org/jakstab/ssl/parser/SSLPreprocessor.java:857: warning: [unchecked] unchecked conversion
tmp.add(new SSLInstructionName(lhsIn.getName() + rhsIn.getName(), newMap));
^
required: Map<String,AST>
found: Map
src/org/jakstab/ssl/parser/SSLLexer.java:47: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("m", this), new Integer(83));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:48: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("r", this), new Integer(82));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:49: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("LITTLE", this), new Integer(27));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:50: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("and", this), new Integer(91));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:51: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("BIG", this), new Integer(26));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:52: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("INTEGER", this), new Integer(10));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:53: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("FAST", this), new Integer(93));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:54: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("SHARES", this), new Integer(19));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:55: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("pow", this), new Integer(65));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:56: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("MEMSET", this), new Integer(80));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:57: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("rl", this), new Integer(40));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:58: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("COVERS", this), new Integer(17));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:59: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("rr", this), new Integer(41));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:60: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("FLOAT", this), new Integer(11));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:61: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("or", this), new Integer(92));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:62: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("rrc", this), new Integer(39));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:63: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("halt", this), new Integer(78));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:64: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("OPERAND", this), new Integer(21));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:65: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("rlc", this), new Integer(38));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:66: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("ENDIANNESS", this), new Integer(25));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
src/org/jakstab/ssl/parser/SSLLexer.java:67: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type Hashtable
literals.put(new ANTLRHashString("MEMCPY", this), new Integer(81));
^
where K,V are type-variables:
K extends Object declared in class Hashtable
V extends Object declared in class Hashtable
24 warnings
Any help please?
I'm using jakstab to extract CFG for the binaries in coreutils. Jakstab is working great except it produces some basic blocks and edges that don't correspond to any instruction in the binary. Is there any way to fix this? I would appreciate some pointers and happy to submit a PR.
Tried to analyze /bin/sh on a Debian Jessie machine.
/bin/sh on that machine is the amd64 build of Dash 0.5.7-4+b1.
user@linux:/tmp/jakstab$ uname -a
Linux servea 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
user@linux:/tmp/jakstab$ ./jakstab -m /bin/sh
=======================================================================
Jakstab 0.8.4-devel
Copyright 2007-2015 Johannes Kinder <[email protected]>
Jakstab comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Refer to LICENSE for details.
=======================================================================
Reading machine specification from pentium.ssl.
Parsing /bin/sh...
Cannot find decoder for opcode 1f.
Exception in thread "main" java.lang.NullPointerException
at org.jakstab.loader.elf.ELFModule.<init>(ELFModule.java:135)
at org.jakstab.Program.loadModule(Program.java:145)
at org.jakstab.Program.loadMainModule(Program.java:116)
at org.jakstab.Main.main(Main.java:115)
Exception in thread "main" java.lang.AssertionError
at org.jakstab.loader.elf.ELFModule.(ELFModule.java:120)
at org.jakstab.Program.loadModule(Program.java:145)
at org.jakstab.Program.loadMainModule(Program.java:116)
at org.jakstab.Main.main(Main.java:115)
For more info on the off-by-one error: tpetersonkth/AlternatingControlFlowReconstruction#3
For more info on the LessOrEqual bug in the strided interval domain: tpetersonkth/AlternatingControlFlowReconstruction#4
I have fixed both of the bugs in my fork of the repository: https://github.com/tpetersonkth/AlternatingControlFlowReconstruction
I'm trying extract inter-procedural CFG for ELF. But the DOT file I get, simply shows couple of basic blocks in the main function. Can Jakstab extract interprocedural CFG?
How do you generate the trace file for the trace replay analysis?
The documentation states that in order to analyze the jumptable.exe
input example, Jakstab should run with jakstab -m input/jumptable.exe --cpa xfi
. I'm getting the following error:
jakstab -m input\bin\juptable.exe --cpa xfi
=======================================================================
Jakstab 0.8.4-devel
...
Reading machine specification from pentium.ssl.
Parsing input\bin\jumptable.exe...
Finished parsing executable.
Initializing control flow reconstruction.
--- Using Bounded Address Tracking
--- Using Forward substitution
No analysis corresponds to letter "i"!
Is the interval analysis used somewhere? I can see that there is some code related to this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.