How to edit .asec or compare two .asec files witch are stored by app at location mnt/.android_souce/app name.asec. This file get updated whenever data connection is on / while using app to upload and download app data . This folder not able to access on non rooted Phone but can able to access on pc with usb . What are capable software that can read and writing easily .asec file ?

  • You really need to give more details about these files and about what you already tried. Just right now, your question is really really unclear. So, try to clarify it and explain what you already tried.
    – perror
    Jan 26, 2014 at 10:47
  • I am playing a online multi player game (example:- war),
    – raj
    Jan 26, 2014 at 13:52
  • I am playing a online multi player game (example:- war), this war game created a file at locagion Mnt/sdcard/.android_secure/war.asec. this file allwase update when i paly war game . i guess that war.asec file containtes my game data like my level.gold coins . etc. I want to know that can i read and edit this file? . thanks for yours in trust in my question.
    – raj
    Jan 26, 2014 at 14:00

1 Answer 1


The ASEC file is a TwoFish encrypted container which in turn is a dm-crypt volume that gets mounted by Linux's device mapper at /mnt/asec/[app_id] (The AppID is based on the package name). The 128-bit key to the container can be found in /data/misc/systemkeys but this file requires root access for reading. You can read exactly how the encryption works here. Moving on, the mounted volume will contain an unencrypted apk of the application. In order to change the desired data, it's necessary to understand where the data is stored and how it is done. For that, the application will have to be reverse-engineered by either decompilation - list of tools - or by disassembly to smali and posterior debugging using tools such as apktool and androguard.

Sometimes, these steps can be bypassed as the app uses a database file in it's directory (usually /data/data//) that you can edit with any SQLite editor, such as SQLite Debugger or using the sqlite3 set included by default in Android, or keeps the relevant information in memory in a way that is trivial to change it with a memory editor such as GameGuardian. However, the data can be stored server-side and transmitted through the network when app is started and then kept in memory in a not easily modifiable way so that in order to be able to change it, you will need to not only reverse-engineer the application but also to intercept and modify the traffic it receives in order to transmit the new information to the application.

  • Thanks sir for yours quick and valuable respons . 1st of all i want to tell you that i am a mechanical engineer so i don't have much knowledge about programming but i have common sens so i can do a lot if someone as like you guide me properly. I am sure that this the only file is changing all the time i have taken backup 2 times like when i wans haveing 10 money and 8 money file so how i can compare this 2 files to findout changing factor to modifiy it? Once again thanks to u
    – raj
    Jan 26, 2014 at 15:50
  • Would the unencrypted apk be any different than the apk downloaded directly from google play? (Assuming the apk wasn't a paid-for app)
    – aidan
    Mar 6, 2014 at 8:52
  • 1
    Technically, GooglePlay transmits the encrypted parameters and apk, thus the apk downloaded from the Play Store would be different from the one you retrieve using the method above (see last paragraph of reference number one - Encrypted Apps and Google Play). But if considering only the end result, the answer is no.
    – TDKPS
    Mar 7, 2014 at 0:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.