Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter about Obfuscation #127

Open
Fare9 opened this issue Jan 11, 2023 · 5 comments
Open

Chapter about Obfuscation #127

Fare9 opened this issue Jan 11, 2023 · 5 comments
Labels
content New content for the book

Comments

@Fare9
Copy link

Fare9 commented Jan 11, 2023

LLVM project allows managing code easily through LLVM IR, using an IR allows that some obfuscation techniques can be applied to different programming languages in an abstract way. The LLVM project implements techniques for code optimization but the code can be 'deoptimized' to hide code from analysts or malicious actors, while these protection mechanisms are not perfect, they make people taking longer for their analysis. There are currently various projects using LLVM IR for this: https://github.com/emc2314/YANSOllvm, https://github.com/obfuscator-llvm/obfuscator/wiki or https://github.com/open-obfuscator/o-mvll.

Also as part of a chapter like this, it would be possible saying that LLVM IR can be used for deobfuscation of code, binary code can be 'lifted' to LLVM IR, and PassManager can be used for optimizing obfuscated code, making it more readable.

@kbeyls
Copy link
Member

kbeyls commented Jan 11, 2023

Thank you for this suggestion @Fare9 !

It's clear that code obfuscation as done by compilers is on topic for the book.
For the book, I wouldn't limit the text to what is being done using LLVM per se. We try to describe methods and techniques in general. Of course, we can point to specific implementations such as done using LLVM.

In short, yes, let's have a chapter on code obfuscation.

I don't know much myself about code obfuscation. It would be great if we could start with having a chapter with an introduction describing why code obfuscation is used, how it can help with security and -- at a high level -- what the different categories of techniques are that are used.

@all-contributors please add @Fare9 for ideas.

@allcontributors
Copy link
Contributor

@kbeyls

I couldn't determine any contributions to add, did you specify any contributions?
Please make sure to use valid contribution names.

Could not find the user topic on github.

@kbeyls
Copy link
Member

kbeyls commented Jan 11, 2023

Let me try again to let the all contributors bot add Fare9:

@all-contributors please add @Fare9 for ideas

@allcontributors
Copy link
Contributor

@kbeyls

I've put up a pull request to add @Fare9! 🎉

@Fare9
Copy link
Author

Fare9 commented Jan 11, 2023

Agree on having a more general chapter, I can go with it introducing the topic.

@kbeyls kbeyls added the content New content for the book label Jan 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content New content for the book
Projects
None yet
Development

No branches or pull requests

2 participants