5
Software Obfuscation CodeShield

Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Embed Size (px)

Citation preview

Page 1: Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Software Obfuscation

CodeShield

Page 2: Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Symbolic Name Obfuscation

import java.io.Serializable;

import MyClass;

private class TestClass

implements Serializable

{

private MyClass object;

private int response;

public TestClass (MyClass s, int r) public MyClass getMyClass() {}

public int getResponse(){}

}

import java.io.Serializable;

import yy;

class zy

implements java.io.Serializable

{

private yy yv;

private int vv;

public zy(yy y2, int i3) {}

public yy zx() {}

public int wx() {}

}

Page 3: Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Control Flow Obfuscation

private void myMove(int move, int depth)

{

if(depth % 2 == 1)

applyMove(move, true);

else

applyMove(move, false);

}

private void Wz(int i1, int i2) {

i2 2 % 1; if (!=) goto L24; this; i1; .ZY(1,); goto L30; L24: ZY(i1, 0); L30: return;}

Page 4: Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Advantages

• Easy to use/install

• Cheap

• Provides protection from people not willing to put the work in

• Provides for a legal defense

• May improve performance and reduce code size

Page 5: Software Obfuscation CodeShield. Symbolic Name Obfuscation import java.io.Serializable; import MyClass; private class TestClass implements Serializable

Disadvantages

• Anyone willing to put work into figuring out the code could do it

• May degrade performance and increase code size