23.11.2013 Views

Obfuscation of Abstract Data-Types - Rowan

Obfuscation of Abstract Data-Types - Rowan

Obfuscation of Abstract Data-Types - Rowan

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 1. OBFUSCATION 21<br />

• Outlining A sequence <strong>of</strong> statements within a method is made into a<br />

separate method.<br />

• Interleaving Two methods are merged; to distinguish between the original<br />

methods, an extra parameter could be passed.<br />

• Cloning Many copies <strong>of</strong> the same method are created by applying different<br />

transformations.<br />

1.4 Conclusions<br />

We have seen there is a need for s<strong>of</strong>tware protection, and code obfuscation is<br />

one method for making reverse engineering harder. We have summarised some<br />

current obfuscation techniques and highlighted a few <strong>of</strong> the many commercial<br />

obfuscators available. In Section 1.2 we reviewed two definitions <strong>of</strong> obfuscation:<br />

the definition <strong>of</strong> Collberg et al. [10] uses various complexity metrics and Barak et<br />

al. [6] prove that obfuscation is impossible using their definition. We have seen<br />

how to apply obfuscations to variables and arrays. In Chapter 3 we shall develop<br />

a different approach to obfuscation which enables us to apply obfuscations to<br />

more abstract data structures. As a consequence we will give a new definition<br />

for obfuscation and also discuss the efficiency <strong>of</strong> obfuscated operations.<br />

In the next chapter, we give a case study <strong>of</strong> a situation where there is a<br />

particular need for obfuscation and give specifications for some obfuscations.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!