All Projects → darvincisec → AntiDebugandMemoryDump

darvincisec / AntiDebugandMemoryDump

Licence: other
Anti-Debug and Anti-Memory Dump for Android

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
CMake
9771 projects
java
68154 projects - #9 most used programming language

AntiDebugandMemoryDump

Anti-Debug and Anti-Memory Dump for Android

Some known techniques for anti-debug and anti-memory dump have been used in this project. The focus is to use these techniques in a stealthy way without relying on Java APIs.

Following are the techniques used

Anti-Debug for Java

Presence of JDWP in /proc/self/task/comm and in each of task /proc/self/task//comm is an indication that app is debuggable.

Anti-Debug for Native

Check for TracerPid != 0 in /proc/self/status and in each of task /proc/self/task//status

Anti-Memorydump

Anti-Memory dump is useful to protect the app from memory dumping via frida or Gameguardian or any other means. inotify watch of the following files

  1. /proc/self/maps
  2. /proc/self/mem
  3. /proc/self/pagemap
  4. /proc/self/task//mem
  5. /proc/self/task//pagemap

Any attempts to access or open these files is an indication of access to the memory. If you use the techniques in DetectFrida, inotify will be triggered. There is no way to filter if the access is by the same process or a different process. fanotify addresses the problem wherein it provides the pid of the process accessing the file. But seccomp filter in Android O filters restricts the usage by normal apps.

Bonus

Just listening on file opening of /proc/self/maps makes it a candidate for Anti-Frida. Just that it is mutually exclusive with other anti-frida techniques relying on the /proc/self/maps.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].