Skip to content
This repository was archived by the owner on Jan 25, 2024. It is now read-only.
This repository was archived by the owner on Jan 25, 2024. It is now read-only.

Split antidebug/antitracing techniques from the code-complexity-and-obfuscation document #10

Description

@trufae

Explain various obfuscations in detail:

  • obfuscate code (antidisasm tricks)
  • obfuscate data (strings, files)
  • obfuscate metadata (objc, symbols)

Expose the decompilation information on every language (java, js, objc, swift, C, ..)

  • swift is not as introspectable as objc

Anti-debug techniques

  • restricting debuggers or making debugging complicate have nothing to do with code complexity or obfuscation
  • explain how to use the PT_DENY_ATTACH and android:debuggable=false with code

Control flow validation

  • flow integrity - verify the workflow is the expected on every function (where do i come from?)
  • white box security
  • I dont think compiler optimizations should be listed as a way to protect code logic

Anti-RE techniques:

  • renaming symbols with wrong or invalid names
  • depending on the compiler the final binary can have more than one symbol table
  • always verify the resulting binary with strings | grep... (at least)
  • i dont think the DRM applied by FairPlay can be in any way a security measure to care because there are several tools (appcake, clutch, r2, dumpdecrypted, ...) to automate this cracking into a single press-enter

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions