Konloch   10-11-2014, 09:51 PM
#1
Code:
public static void saveAsJar(ArrayList<ClassNode> nodeList, String fileName) { try { JarOutputStream out = new JarOutputStream(new FileOutputStream(fileName)); for (ClassNode cn : nodeList) { ClassWriter cw = new ClassWriter(0); cn.accept(cw); out.putNextEntry(new ZipEntry(cn.name + ".class")); out.write(cw.toByteArray()); out.closeEntry(); } out.close(); } catch (IOException e) { e.printStackTrace(); } }
Konloch   10-12-2014, 09:55 AM
#3
(10-12-2014, 09:28 AM)Bibl Wrote: https://bitbucket.org/0xJAVA/byte-engineer/src

Looks sexy, I'll have to take a better look at this later.

Is there any documentation on it?
Bibl   10-12-2014, 09:58 AM
#4
(10-12-2014, 09:55 AM)konloch Wrote:
(10-12-2014, 09:28 AM)Bibl Wrote: https://bitbucket.org/0xJAVA/byte-engineer/src

Looks sexy, I'll have to take a better look at this later.

Is there any documentation on it?

not really its not even done but when I need stuff I just add
Konloch   10-12-2014, 10:12 AM
#5
(10-12-2014, 09:58 AM)Bibl Wrote:
(10-12-2014, 09:55 AM)konloch Wrote:
(10-12-2014, 09:28 AM)Bibl Wrote: https://bitbucket.org/0xJAVA/byte-engineer/src

Looks sexy, I'll have to take a better look at this later.

Is there any documentation on it?

not really its not even done but when I need stuff I just add

Interesting project non-the-less, favorited it for later.

What tools does it feature atm?
Bibl   10-12-2014, 10:21 AM
#6
load jars from file or url 
Code:
JarDownloader dl = new JarDownloader(new JarInfo(new File("jar.jar"))); boolean worked = dl.parse(); Map<String, ClassNode> nodes = dl.getContents();
Code:
JarDumper dumper = new JarDumper(contents); dumper.dump(new File("out.jar"));


Add Analysers, store class, field and method data into HookMaps
A lot of filters

https://bitbucket.org/0xJAVA/byte-engine...?at=master

Code:
Refactorer refactorer = new Refactorer(hookMap, contents); refactorer.run();
changes whole jars class, method and field names based on mapping data.

Code:
InstructionPrinter.consolePrint(methodName);
pretty prints

Code:
InstructionSearcher searcher = new InstructionSearcher(m.instructions, pattern); boolean match = searcher.search(); List<AbstractInsnNode[]> matchedInsns = searched.getMatches();
find opcode/instruction patterns in code.
Konloch   10-12-2014, 10:26 AM
#7
(10-12-2014, 10:21 AM)Bibl Wrote: load jars from file or url 

Code:
JarDownloader dl = new JarDownloader(new JarInfo(new File("jar.jar"))); boolean worked = dl.parse(); Map<String, ClassNode> nodes = dl.getContents();
Code:
JarDumper dumper = new JarDumper(contents); dumper.dump(new File("out.jar"));


Add Analysers, store class, field and method data into HookMaps
A lot of filters

https://bitbucket.org/0xJAVA/byte-engine...?at=master


Code:
Refactorer refactorer = new Refactorer(hookMap, contents); refactorer.run();
changes whole jars class, method and field names based on mapping data.


Code:
InstructionPrinter.consolePrint(methodName);
pretty prints


Code:
InstructionSearcher searcher = new InstructionSearcher(m.instructions, pattern); boolean match = searcher.search(); List<AbstractInsnNode[]> matchedInsns = searched.getMatches();
find opcode/instruction patterns in code.

Sexy as fuck, I might start contributing to this once I'm done with Bytecode Viewer.
Explicit   01-21-2015, 12:31 AM
#8
Nice, mine differs slightly:

Code:
public static void dumpJar(List<ClassNode> classes, Manifest manifest, String absolutePath) {    try (JarOutputStream jos = new JarOutputStream(new FileOutputStream(new File(absolutePath)), manifest)) {        for (ClassNode cn : classes) {            ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);            jos.putNextEntry(new JarEntry(cn.name + ".class"));            cn.accept(writer);            jos.write(writer.toByteArray());        }    } catch (IOException e) {        e.printStackTrace();    } }

Gotta have a manifest to make it runnable xD
Konloch   01-21-2015, 01:24 AM
#9
(01-21-2015, 12:31 AM)Swizzbeat Wrote: Nice, mine differs slightly:

Code:
public static void dumpJar(List<ClassNode> classes, Manifest manifest, String absolutePath) {    try (JarOutputStream jos = new JarOutputStream(new FileOutputStream(new File(absolutePath)), manifest)) {        for (ClassNode cn : classes) {            ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);            jos.putNextEntry(new JarEntry(cn.name + ".class"));            cn.accept(writer);            jos.write(writer.toByteArray());        }    } catch (IOException e) {        e.printStackTrace();    } }

Gotta have a manifest to make it runnable xD

Very true! Haha
  
Users browsing this thread: 1 Guest(s)
Konloch Software - Bytecode Viewer - Hack Log - Reverse Engineering Forum
Copyright © 2014-2026 The Bytecode Club. Powered By MyBB.
CC0 Unless Specified Otherwise.