Skip to content

Commit

Permalink
Init Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
James Richardson authored and James Richardson committed Feb 10, 2016
1 parent b3d772c commit 2ddedd0
Show file tree
Hide file tree
Showing 51 changed files with 11,507 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .gitignore
@@ -0,0 +1,5 @@
*.iml
*.idea
*.DS_Store
target

4 changes: 3 additions & 1 deletion README.md
@@ -1,2 +1,4 @@
# Disassemble
A binary disassembler written in Java with Capstone bindings
A binary disassembler written in Java with Capstone bindings

MachO 64bit ABI support is in the works. Future plans will include ELF and PE ABIs. Disassembling is made possible by the Capstone project and its Java bindings.
21 changes: 21 additions & 0 deletions pom.xml
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>CapStonTest</groupId>
<artifactId>capstonetest</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.2.1</version>
</dependency>

</dependencies>


</project>
17 changes: 17 additions & 0 deletions src/main/java/Main.java
@@ -0,0 +1,17 @@
import abi.mach.parse.MachParser64;
import abi.mach.parse.Reader;

import java.io.File;

public class Main {

public static void main(String[] args){
File in =new File("/Users/jamesrichardson/Desktop/reverse/a.out");

try {
Reader.Read(in);
}catch(Exception e){
e.printStackTrace();
}
}
}
23 changes: 23 additions & 0 deletions src/main/java/abi/generic/ABI.java
@@ -0,0 +1,23 @@
package abi.generic;

import java.util.LinkedList;

/**
* Created by jamesrichardson on 2/10/16.
*/
public abstract class ABI {

protected final byte[] raw;

public ABI(byte[] binary){
raw=binary;
}

public abstract byte[] getRaw();
public abstract Header getHeader();
public abstract Arch getArch();
public abstract LinkedList<Command> getCommands();
public abstract LinkedList<Segment> getSegments();
public abstract LinkedList<Section> getSections();

}
10 changes: 10 additions & 0 deletions src/main/java/abi/generic/Arch.java
@@ -0,0 +1,10 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public enum Arch {
SIXTEEN,
THIRTYTWO,
SIXTYFOUR
}
7 changes: 7 additions & 0 deletions src/main/java/abi/generic/Command.java
@@ -0,0 +1,7 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public interface Command {
}
7 changes: 7 additions & 0 deletions src/main/java/abi/generic/Header.java
@@ -0,0 +1,7 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public interface Header {
}
15 changes: 15 additions & 0 deletions src/main/java/abi/generic/Parser.java
@@ -0,0 +1,15 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public abstract class Parser<T extends ABI> {

protected final T model;

public Parser(T model){
this.model = model;
}

public abstract T getModel();
}
7 changes: 7 additions & 0 deletions src/main/java/abi/generic/Section.java
@@ -0,0 +1,7 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public interface Section {
}
7 changes: 7 additions & 0 deletions src/main/java/abi/generic/Segment.java
@@ -0,0 +1,7 @@
package abi.generic;

/**
* Created by jamesrichardson on 2/10/16.
*/
public interface Segment {
}

0 comments on commit 2ddedd0

Please sign in to comment.